ra2 studio - Fotolia

3 developer backup strategies for unplanned downtime

What should a developer do during downtime? These three housekeeping tasks should be performed regularly and will keep your data protected in case of an emergency.

Idle hands are the devil's playground. Keep important tasks on your agenda for when unanticipated downtime arises.

Developers should have some ways to remain productive when downtime starts. However, these tasks should get done before it's time to get back to the everyday grind, so don't take on too much.

Three crucial, often overlooked developer backup strategies are:

  • consolidate file backups;
  • maintain a golden computer image; and
  • implement performance upgrades on developer workstations.

1. Consolidate a backup of all local and cloud-based files

When was the last time you backed up all needed files? I'm not just talking about moving a folder or two from your desktop to your Dropbox account in the cloud. I mean consolidating critical resources onto a single external hard drive that's accessible if the network goes down. Copies of cloud-hosted files on your laptop aren't good enough either. Everything needs to be backed up to an external, easily accessible storage drive.

This developer backup strategy is simple, yet effective. A 10 GB external hard drive costs less than $200. Unless you're amid a serious financial crunch, pick one up and move every important file that resides in the cloud, in a virtual image or on a corporate laptop to a persistent datastore. And with 10 GB to fill, there will likely be enough space left over to back up any personal docs as well.

To take file backups to the next level, consider a complete archive. A backup is readily available, most likely connected to your computer physically or through the network and kept up to date. An archive is the file's most recent backup stored to a device that's disconnected and stored in a separate geographic area. If anything happens to the file or its backup, the archive can prevent loss. Archive data to an external drive and store it in a family member's attic.

Backup vs. archive

However, when you back up work-based files, be vigilant about any privacy protected files that may have been inadvertently obtained through work. And for extra protection, make sure you back up that hard drive just in case it falls into the wrong hands.

2. Update a golden computer image

Every developer should have a golden computer image at the ready.

The golden computer image is a fully configured operating system with the most essential programs and tools installed and ready. The golden computer image is there so a developer -- or any IT professional for that matter -- can connect the hard drive that hosts the image to a new workstation and begin a new assignment with a clean slate. There's no need to remember the important productivity tools on a project. The golden computer image has them ready to go.

The golden computer image is different from an OS backup. It doesn't contain any data, personal files or project-specific resources. It should only contain a select set of a developer's favorite software programs. Don't install any favorite IDEs, application servers or version control tools because they might not be the productivity tools of choice on the next project. However, things like a favorite text editor, media player and internet browser would be valid installs. Apache Tomcat, Eclipse and a JDK install are not.

If you haven't updated the dev computer golden image in a while, it might run on Windows 7, which reached end of life in January 2020. If this is the case, you could spend the day creating a new Windows 10 configuration. Or, make the switch to a Linux distribution, like Ubuntu.

The golden computer image isn't a backup of a current OS. Having said that, developers should back up their local operating system on a weekly basis as well. If someone spreads a virus through the office network which puts a Bitcoin ransom on every workstation, make sure you can roll the clock back a week to when the virus wasn't installed.

3. Performance upgrades

After the first two developer backup strategies are completed, it's time to start thinking about easy and affordable hardware performance upgrades.

There have been significant, recent advancements in the world of computer components that could easily triple or quadruple the speed of a system built only a few years ago.

I spent a few thousand dollars in 2015 building a blazing fast desktop that boasted an i7-6770 processor and mirrored SATA drive, and I never felt as though it underperformed. That is, until I saw how a workstation powered with a Ryzen processor and a PCI-express hard drive ate up and spit out enterprise software such as WebSphere Portal or a million-record NoSQL database.

According to cpubenchmark.net, a $350 Ryzen 3800X processor is almost three times the speed of my old Intel 6770, and more than 20% faster than an Intel i7-9800X which retails for well over $600. That's some serious performance at an easily digestible price point.

But processing power is rarely a performance bottleneck for enterprise developers. For many software development organizations, the biggest bottleneck tends to be the speed with which data can be fed from the hard drive into memory. An upgrade from an ATA drive to a SATA drive could make an old clunker of a laptop perform like an Olympic sprinter. But the speed difference between a PCI-express drive and a SATA drive is even more pronounced.

ATA speeds typically max out at around 100MB/s. SATA transfer speeds start at around 1GB/s and max out at six. But an SSD drive with a PCI-express interface can transfer data at a massive 16GB/s. That massive data transfer rate can significantly increase the startup times and ongoing performance of read intensive applications.

The nice thing about these developer backup strategies is that they're not excessively time consuming. They're moderately fun projects that can be completed over the course of a day or two, and they're meaningful enough that they're worthwhile doing. These backup strategies are for developers who find themselves with a bit of idle time on their hands.

Dig Deeper on Software development best practices and processes

App Architecture
Software Quality
Cloud Computing