10.28.2008
@lab held a discussion towards exploring the implementation of popular software methodology practices in its day-to-day activities.The discussion was geared towards Agile Methodology and Extreme Programming in particular. The material for discussion is [here]. As a pilot project to implement XP, the backup project was chosen. Main goal of backup project is to address the backup needs of @lab and how to achieve this. As a first step in implementing XP, user stories for the backup were discussed. The list of user stories:
1. The backup system should be a system that grows - is scalable.
2. It should be simple.
3. It should be possible to use it without an army of IT people.
4. If a disaster occurs at UAB or this lab, we should be able to bring our work back up from another location from our backup.
5. It should allow a user to recover his/her own file without talking to an IT person - should be easy for a user to recover.
6. It should allow us to back up anything we want, by treating all backup items as objects.
7. We will not let the wire dictate the design. We won't worry about how much data is being pumped over the wire.
8. It will possibly allow users to back up their own items as they wish someday.
9. It should be cross-platform.
10. It should provide a web-based interface.
11. The first iteration should be done by December.
12. Someday we hope that the daily backup stuff can be dumped right into the peer network.
13. We will have to decide how often data is backed up and what is backed up daily.
14. We will have to decide what we are going to back up.
15. We will have to decide:
- What we need to back up
- Why we need to back up
- How to back up our websites
Modified list of user stories:
1. The backup system should be a system that grows - is scalable.
2. It should be simple to use, i.e., even non-IT people should be able to perform backup and recovery tasks easily.
3. It should be possible to backup our data in different geographical location and also recover data from that location.
4. It should allow us to back up anything we want, by treating all backup items as objects.
5. It will possibly allow users to back up their own items as they wish someday.
6. It should be cross-platform.
7. It should provide a web-based interface.
8. Someday we hope that the daily backup stuff can be dumped right into the peer network.
9. User should be able to view only his/her backup data for recovery.
10. It should be possible to verify the backup data.
Things to decide:
- What we need to back up
- Why we need to back up
- How often we need to backup
- Open file backup policy?
- How to back up our websites
Notes:
- The first iteration should be done by December.
- We will not let the wire dictate the design. We won't worry about how much data is being pumped over the wire.
Release Planning and Unit Testing In our first standup meeting, we decided that the first release will be a simple backup of our Home directories, and the due date is Friday, November 7th. We then had a release planning meeting and looked at Amanda and Bacula. One unit test we could do is this:
- Back up home directory.
- Rename a file or folder in the home directory.
- Restore that file or folder from backup.
- Verify that the restored file or folder is correct.
- Verify that permissions, ownership, and modification dates are preserved.
Links to Puppet recipes/information we may be able to use:
http://blogs.cae.tntech.edu/mwr/2007/08/02/the-new-file-server-puppet-and-modules/ Puppet recipe(s) for using Amanda
