Backing up your data is really important.
We've all heard too many stories of hard drives crashing or computers getting lost or stolen without having a backup and their owner's suffering a horrible loss of irreplaceable data.
So, if we all know that backing up data is so important, why don't we do it?
Well, some of us do, but I know that a majority of software developers I talk to are either not really doing good backups at all or are doing what I would call a half-ass job.
The reason for this is simple: Coming up with a good backup solution is difficult–or at least it can appear that way.
That's why I am writing this blog post. I want to make it as simple as possible.
I'm going to show you a simple approach to create a backup strategy–not just a solution–that you can easily implement.
The basic approach will be as follows:
- Reduce the amount of “stuff” that needs to be backed up
- Divide backed up data into two categories: critical and non-critical
- Have three copies of data, two local and one offsite
- Make everything automated
Step 1: Reducing the amount of “stuff” that needs to be backed up
The easiest way to simplify your backup solution is to start by reducing the amount of stuff that you need to backup. The less you have to backup, the easier it will be to manage those backups and to actually do the backups themselves.
What we want to do is go through all the data that we think we need to backup and try to get rid of as much of it as possible.
Most people I know, especially software developers and IT people, are storing all kinds of stuff that they will never need.
I used to rip all kinds of movies, video games and music to my computer and save them in a huge library so that I would have access to all this stuff digitally if I ever needed it.
Guess how often I actually needed some random movie I already watched, a video game I already beat or a book I already read?
Just about never.
Now, I realize that some people actually do use their huge libraries of media. For example, kid movies often get watched multiple times, but you have to admit that there is probably a lot of stuff that you will never ever touch again.
I tried to purge as much stuff that I know I will never likely touch again as possible.
I know you might be resistant to doing this, but let me try and convince you that this is a good idea, then you can ignore me and back it all up if you want to.
First of all, think about how easy it is to rent digital content on demand today or buy something off of Amazon or Ebay. Do you really need to store a copy of “A Night at the Roxbury?” Probably not, if you ever want to watch it again, just pay a few bucks and get it here.
If you watch a lot of movies, you'll be much better off having a subscription to Netflix than you will trying to store a copy of every movie you've ever had your hands on. Think about how many hours you are wasting ripping movies to disk and meticulously organizing them. How many of those movies do you actually watch?
The same goes for music, books and video games. Most things only get consumed once. Get rid of as much of this stuff as possible. You'll not only stop wasting time storing all this stuff, but your backups will be easier and you will find that a huge mental load is lifted from you.
Even huge music collections are mostly a waste of time. There are multiple music services you can subscribe to that will give you access to just about any music you want for a low monthly fee.
Plus, this trend is only going to increase. More and more stuff is going to be available from the cloud, on demand, for a small rental fee or monthly charge.
Stop saving all that crap.
Step 2: Divide backed up data into two categories: critical and non-critical
Backing up one terabyte of data to the cloud takes a long time and it can be expensive–that is why most people don't do it.
So, what do you end up with?
Well, if you are like most people, you end up having some kind of local backup and you don't really have a good cloud or offsite backup in place. It's just too much trouble to try and backup all that data to the cloud.
If you followed my first step, you should be well on your way to reducing your total data that you need to backup, but we can do much better and get that data to an even smaller amount.
Instead of trying to backup everything to the cloud or offsite, if you focus on backing up just what is critical, you'll find that it is much more manageable and you won't need gigabit internet to back everything up.
Take all the data that you want to backup and sort it into two categories: critical and non-critical.
Critical things are things that if you ever lost them, you would be very sad, because they couldn't be replaced or would cause you some great harm.
A good example of critical data for me is my wife's photos. If I lost my wife's photos, I would probably need to find a new wife.
Other critical data for me is current projects I am working on and past projects that I may need to access again at some point in the future.
My Pluralsight courses and other training courses are critical data. My source code for my applications is critical data.
The opposite of critical data is non-critical data–duh.
But what is non-critical data?
It's data that would suck to lose, but would not be the end of the world. Perhaps data that would be a small inconvenience to you to lose, but could be replaced.
Collections of movies, video games and music fall into this category. Yes, you'll be disappointed if you lose this data, but you can replace that data even if it might cost you some money.
Now, before you get all uppity about your movie collection, remember, I'm not saying we aren't going to backup your non-critical data–we will–it's just that we aren't going to back this data up to the cloud or offsite.
Other non-critical data might be an image of your computer or development workstation. If you lose that backup, you might have to re-install your operating system or waste some time re-installing other programs, but it won't be that big of a deal.
Most of your data should be non-critical. Unless, of course, you got rid of a large amount of that data, because you realized the futility of storing digital copies of stuff you won't ever use again. But, if I haven't convinced you by now, I probably never will, so we'll just call your “The Complete Matrix Trilogy (The Matrix / The Matrix Reloaded / The Matrix Revolutions) [Blu-ray]” non-critical data.
Step 3: Have three copies of data, two local and one offsite
Ok, now we are actually ready to back things up.
Most likely, you'll have a small amount of critical data and either a larger amount of non-critical data or almost none.
The critical data we don't ever want to lose. So, we need to make sure that there are three copies of that data at all times.
The easiest way to do this is to have:
- one working copy
- one local backup
- and one cloud backup
Today, this is actually quite simple to achieve.
For awhile I was doing this by using a service like CrashPlan. Crash plan allows you to specify folders on a computer to backup to another location and to specify some folders to be backed up to the CrashPlan cloud servers as well.
I was creating two backup sets. One that backed up my critical data to another hard drive in my computer and another backup that backed up to CrashPlan's servers.
This worked well for a while, but then I realized that I didn't really need to pay CrashPlan's monthly fee when I was already paying for extra storage space with Dropbox and also that I wanted to have a central place to backup data locally and not just back up from my one PC. My wife has data she needs to backup and I have a laptop and other devices as well.
Now, don't get me wrong, CrashPlan is great. I highly recommend it, but if you have a NAS (Network Attached Storage) and an account with either Dropbox or OneDrive, you might not really need to utilize a service like CrashPlan.
But, before I get into the specifics of what I am doing, let's talk about the strategy one more time.
We want to have three copies of our data. One working copy, one local backup and one offsite backup.
There are many ways to accomplish this; the easiest way is to have a cloud storage solution like Dropbox or OneDrive as an offsite backup and then to figure out some way to have a local backup as well.
The reason why we want an offsite backup and a local backup is so that we are covered in two possible scenarios:
- Your local backup fails and when you go to recover your data you discover this problem. In that case you can just get the data from the cloud.
- Your cloud backup either fails, goes out of business or loses your data. In this case, you can use your local backup to recover your data and move your offsite backup to another service.
If you just put your data in the cloud, it isn't good enough, because you are relying completely on someone else's service that you can't control.
If you just locally back up your data, it isn't good enough, because you could have a fire and your entire house could burn down, or you could be robbed, or your backup could just fail and you not know it.
How I'm backing up my critical data
So, how am I actually backing up my critical data now that I've gotten rid of my CrashPlan subscription?
Well, I invested in a Synology NAS, or network attached storage.
I bought a Synology DiskStation 2-Bay (Diskless) Network Attached Storage (DS213j) which I have attached directly to my network.
It allows any computer in my network to use it as a file server and it runs its own little operating system that can do all kinds of neat things like backup my data to Dropbox or even Amazon Glacier.
There are two big advantages of this kind of device versus having some hard drives in my computer that I am using to create a copy of data:
- The data is accessible by all the computers and devices in my house easily. I don't have to have my main PC on and connected to the network.
- The Synology devices very easily do a RAID style storage. So, I can have two hard disks in there and if one of them fails, the other one still has all the data.
A distant third, for me, would be that the Synology box can act as a full media server. I don't use that functionality that much, but I know some people with huge movie collections do.
The big key point for my solution is that the Synology device creates a very good redundant RAID. In my book that counts as two copies of local data.
I just attach my Synology box as a network drive on my computers and devices and I store any data that I want to make sure is backed up there.
Synology has a service you can install that hooks up your device with your Dropbox account (OneDrive support coming really soon.) So, I just share out that Dropbox folder on my Synology drive out to my network and I can drop any files I want backed up in that share and those files will not only be in double backup on the Synology drive, but also backed up to my Dropbox account in the cloud.
My wife can also do the same, so this is very convenient.
I also don't even worry about having a local copy of a backup on my computer anymore, because I know that the data in the Synology drive is backed up on two hard drives and in the cloud.
How I'm backing up my non-critical data?
What about the non-critical data?
Simple. I just copy that to a share on the Synology device that isn't backed up to the Dropbox account.
For example, right now, the only thing I really have that I am considering non-critical data is images of my computers. I just put those on a share on the Synology and I don't worry about them.
Why not just use a backup service like CrashPlan or Mozy?
Again, this whole thing could be done with a backup service like CrashPlan, but if I am already going to have a Dropbox account that I use, I don't see the point of paying for and managing another backup system.
In fact, I am probably going to switch over to OneDrive exclusively, because Microsoft just recently announced that Office 365 users get unlimited OneDrive storage.
If you want to use a backup service though, go ahead. Just make sure you have a local backup and a cloud based backup for your critical data.
Step 4: Make everything automated (and test it)
If you followed my backup plan or you are using a service like CrashPlan, then you probably don't need to do much here, because everything is already automated.
CrashPlan automatically backs up the data on your computer as it changes, so you don't really have to worry there.
And, if you are using a NAS and a service like Dropbox, that is automated as well, because you basically just drop files into the Dropbox folder on your NAS and it automatically syncs with Dropbox.
But, if you are doing something else, just make sure the entire process is automated. You might, for example, want to automate backing up images of your computer. Or you might want to automate getting photos off of your phone or camera and dropping them into a backup location.
Finally, make sure you test everything out.
A backup that has never been tested is worthless.
If you use a service like CrashPlan, try restoring data from it.
If your backup is going to be your Dropbox box and your NAS, test it out. Make sure you can retrieve any data that you need. If you are backing up databases or snap-shotting PCs, make sure you can restore all of those backups, otherwise don't bother backing them up in the first place.
Nothing is worse than trying to restore a backup and finding out that it was no good or wasn't working.
Are you backing up your data?
Let me know in the comments below.
And, if you liked this post and found it helpful, join the Simple Programmer community so that I can stay in touch and let you know when I have new posts or other free content you might be interested in.
Also, if you have some other suggestions or think there is something I missed or didn't consider, leave a comment and let me know.