May 31, 2013

Why I don't care about backups and how you can too

Within the last few weeks, I've had quite a few friends lose their data. All their precious photos, videos, and other documents have vanished, forever. But here's the thing, you don't have to deal with this anymore. There are so many ways to take backups nowadays, that losing data is somewhat of an excuse and should not happen in the first place. Here's what I do on all of my systems/servers so I don't have to worry about backups... ever.

  • Clone your hard drive daily. On my main computer, my entire hard drive (or really two RAIDed SSDs) is cloned (not backuped!) every... single... day (I use the awesome Carbon Copy Cloner and schedule the clone out). If my drive ever crashes, I could care less as I have an exact clone. I can boot into it, and easily restore it and be up and running within minutes (as everything I do at home is on RAIDed SSDS ).
    • Wanna play devel's advocate? But what if that clone fails? Don't worry, luckily, all of my computers are running on exactly the same copy of OS X (read on how I do this). If the clone fails, I have multiple backups of my other computers. And, even if all my computers suddenly vanished, I'd still have a backup as the clone distributed to all of my servers in pieces every week, so no one can assemble it without getting in all my servers.

  • Don't store local documents. All of my files I use on a daily basis are stored in a Dropbox/Google Drive/BitTorent Sync (which I'm trying out on my servers). Any change I make will get synced up to the "cloud" and stay there (and even revisioned through a few programs I wrote). And with BitTorent Sync, I have my files be encrypted on my own servers, which is huge plus; I really don't want Google or Dropbox to have my personal data.
  • If you have multiple computers, sync parts the of OS. I personally have a program that sniffs out changed files on my "master" computer and syncs those changes to one of my file servers. After that is done, next time I log in to any of my other computers, it'll pull down those changes and switch out the files. I do this with my applications folder, my home directory, and a few other directories to keep everything in sync.
    • This is WAY easier to do on a Mac, as most of the applications data always reside in one of the library folders and the app itself... if you're on Windows, good luck with that.

  •  For servers, back them up at least daily! All of my servers are backed up to Amazon S3 and then put in glacier storage a few days later... this backup process for me happens every six hours and it backups everything I need (SVN/Git repos, MySQL databases, web directories, config files, etc). And as I take full advantage of my servers, I virtualize most of them and I gain the opportunity of easily backing up all VMs as well, which I do every two weeks... I keep this to a minimum as these backups are quite large.
    • A majority of my servers are also RAID mirrored, so if something does happen, I could care less. And if all my disks magically failed, that's the power of virtualizing. My most important VMs will automatically switch over to another node seamlessly.

  • And even with all these backups, I still do manual backups. I sometimes use my trusty home NAS and backup to that when I feel the need to. I have a private VPN spooled up so I can always go into my home system and access my files in a secure manner... this is usually where I keep my most important files, however, all my files get backuped to my servers some way or another. The most important ones are just encrypted and split up through various servers. :)

So that's how I do it.... it takes a while to stick to it, but after everything is set up, it makes things much easier. I do all of this because a good chunk of my data is super important. What's your backup strategy? Feel free to tweet me anytime.

Stalk me on social media! Any other way would just be creepy…