Friday, March 31, 2023

World Backup Day

"Better safe than sorry"

I recently learned that March 31st is World Backup Day.

If I were a cynical person, I might assume that this is just a fake holiday invented by Big Storage to sell us more hard drive space. And it's a tough sell to make backup strategies sound interesting. Certainly not "Ten thousand geek fists in the air" kinds of interesting, what with this pledge thing that they're asking people to take. Seems a little dramatic.

However... 

As a (very) small independent software shop, I need to have a plan in case something happens to my computer(s) or data. Malware, theft, fire, flood, laptop run over by a bus, etc. Even something as mundane as a hard drive failure. In a worst case scenario, how much time, money and anxiety would it cost to get back up and running? Could it put me out of business?

So, if this helps raise awareness, it's probably a good thing.




World Backup Day


Always give yourself options. Always have a plan B. And while you're at it, maybe a plan C. A little paranoia never hurt anyone.

Speaking of peace of mind, there are some things that aren't directly related to backups, but help me sleep better at night.


Virtual Machines

It's a controversial opinion sometimes, but I've used virtual machines for software development for almost twenty years. Before I do something risky, like installing new software, I can take a snapshot and have a known good point that I can roll back to if necessary. I also have different VMs with different operating systems and different versions of my development tools. Like a Windows XP VM with Delphi (FTW!) versions 1 through 7 installed.

One big advantage is that the entire virtual machine lives in a single folder on the host computer that I can back up simply by copying the contents. Now, if I replace my host computer, either because of a failure or an upgrade, I can be up and running in the time that it takes to install VMWare and copy my VM files back from a backup drive. No spending a whole day (or two) setting up a new computer and installing and configuring software and components.

I personally use VMWare Workstation. You could also use Parallels (Mac) and there are free options like VMWare Player, Hyper-V, VirtualBox, etc.

Highly recommended.


Source Control

If you're doing software development professionally (or are an enthusiastic amateur), you should be using some kind of source control or version control. And while zipping all of your source code and backing up the files is better than nothing, I think it's worth the time to learn and use a more formal source control methodology. Setting aside any technical benefits, this skill makes you immediately more marketable to potential employers.

Aside from all of the (very many) development benefits of using source control, if your source code is hosted on an external server, then it's protected against any kind of computer failure on your end. Even if you make frequent backups of your virtual machine, you could still lose any work since your last full backup. Get into the habit of making frequent commits and pushing these to the server, and it minimises how much work you could lose.

I use Git, myself. You could host free a server yourself (like Gitea), and there are any number of online hosting services with free options for small teams: GitHub, GitLab, Bitbucket (Atlassian).

If you have any other suggestions, please leave a comment.


Power

I live in a larger city, but we still get power interruptions. Usually they're really short, but if it's long enough to reset the clock on the microwave, it's long enough to shut down my computer without any warning.

At best it's annoying and disrupts my train of thought. At worst, I lose something that I'm working on but haven't saved. That's why I have a UPS (uninterruptible power supply) on each computer and one for peripherals like the modem and router. Short interruptions aren't a problem any more and if there's a longer outage (rare), I have time to shut everything down in a controlled manner.

They aren't necessarily cheap, but they're easy to find (thank goodness for Costco) and I never have to think about them. They're just like really big surge protectors (another benefit) until the power goes out and they do their thing.


Security Practices

I assume anyone reading this blog is fairly technical, so I hope I'm preaching to the choir when I write about the importance of recognising and avoiding malware and phishing attacks. These kinds of attacks are on the rise and they're getting more sophisticated. And they work.

I've done some work for a couple of different companies who required all employees to go through training for this and then randomly send carefully crafted "suspicious" emails to see how many people report them vs opening them or click on links. ftr, in an environment like this, it's fair game to report emails that you don't want to deal with right now as potential scams. But seriously, the training was eye-opening.

I'm not saying that you should go that far, but it's in your best interest to be aware of the risk and act accordingly.


Conclusion

Honestly, I don't want to spend a lot of time on what I consider to be "admin stuff", so I look at it as an investment to protect my livelihood. And then I try to automate a bunch of it so it doesn't take up much of my time day to day.


No comments: