Backups, backups, backups
I’ve always been fanatical about backups, based on the mantra that in the computer age, one should never have to do the same work twice. My standard policy is that I keep all project files in a version control system, back up my computer daily, and make an offsite backup monthly. This works great with the development model where I create all the files in a website on my computer, then upload them to the remote server. My computer is, essentially, the master copy and the server files are secondary.
When my favorite hosting company had an incident recently, losing data for two of my clients’ sites, I realized that this model is quite outdated. Modern websites consist of much more than the developer’s files. With a content management system, my clients are adding content and files from different locations that are only collected in one place on the server. And with a social networking site, users are adding content constantly, without which the site would be worthless. Without an automated backup of the site’s database and root directory, replacing content added by the clients is time-consuming, and replacing content added by users is impossible.
My solution is a new system I’ve created for my clients. It allows me to configure automated backups of the database and the root directory, at different intervals if needed, as frequently as once per hour. I and/or my clients can receive email notifications of every backup, and every backup failure. The backup files are saved at a different datacenter than any of the sites, and are available to clients any time at a password-protected web page. Clients can even log in and run a manual backup at any time.
This should bring my backup strategy up to the level of my current website development. I can’t say I’m looking forward to using it, but I do like knowing it’s there!