Bit rot is a concept familiar to a lot of people. Usually, it refers to the slow degradation of data storage. Magnetic devices, over time, can lose their charge in places that can cause data holes to appear. Lose a few bits from a file and the file can become useless.

But there’s another form of bit rot that just as insidious and can be far more dangerous. It’s the bit rot that comes from keeping old systems on line and in production with no plan for an upgrade path. Let enough time pass and it could become impossible to upgrade the system.

I have a client that has a production system running an older version of Linux. The version of this particular distro is so old that file repositories are no longer maintained and security patches are no longer offered. Furthermore, this particular server is running a commercial piece of software that has been end-of-life’d by the vendor. Not only does the vendor no longer support the software, it’s impossible to get distribution media for the software. If this system were to blow up somehow, the client is basically screwed. We cannot reload the OS because we no longer have the original install media. We cannot reload the application for the same reason. The vendor might offer an upgrade to the software or we could just pay for the package all over again, but there’s no guarantee that the latest version will be backward-compatible with the existing system. Like I said—screwed.

The good news in this case is that we were able to uplift the entire system into a virtual machine. We can now back up the virtual machine image. In a worst case scenario, we can recover from backup and restore the virtual machine to be the same as the current hardware system. The process of uplifting such an old system was not trivial, and we were lucky that we were able to get it done. The client is now “protected” much more than he would have been had he continued down the same path.

Whenever you put a system in place, you need to plan for the eventual upgrade of that system. The reality is that software, and especially operating systems like Linux, matures. You need to plan for that. Distribution choice matters. Any of the Ubuntu LTS distributions are guaranteed to be supported for 5 years. Commercial distributions like RedHat and their Open derivatives like CentOS have long term support options available, too. Using Open Source tools makes the software path more favourable to upgrade.

Don’t let systemic bit rot happen to you…

I’ve picked up 3 short contracts in the last week to optimize websites. The real goal here is not so much optimizing the website as it is optimizing the web server. In every case, the web server was Apache, the most popular and widely used web server on the Internet.

Invariably, the client has set up a server using Ubuntu server edition or CenOS or some other Linux distribution. The base server choice is invariably a good one, but problems start to appear after going live and coming under load. These problems occur because the sysadmin who set up the server ignored a few simple rules:

  1. Package managers are good for setting up generic systems. For small loads, packaged Apache is fine. But once you start to play with the big boys, you must be prepared to build Apache from scratch. Apache needs to optimized to your hardware and needs to be stripped of cruft that you don’t need.
  2. Apache is a powerful server and is great for serving dynamic content. But if you have a lot of traffic, it can be overwhelmed trying to do too many things at once. Split the tasks and have a specialized, light-weight server like lighttpd server up your static content and leave just the heavy lifting for Apache.
  3. Optimize your database, too. Don’t focus on just the webserving. If you’re getting data from MySQL, look carefully at how it’s set up. I’ll be covering this as a separate note soon.

In short, you need to look at all of the processes and individual components. Often, when I’m called in, decisions such as hardware and server software have already been made and I’m required to work within those constraints. But even with hands tied, there’s a lot of things that can be done to improve website performance.

I did. And you should, too.

Although Watchmen is over 2 1/2 hours long, it really doesn’t seem like it. The pacing is very well done and the movie just flows. Action sequence are very well done, if a little graphic in places. Characterization is outstanding.

Watchmen is a based on a graphic novel and translates well to the big screen. I personally don’t understand why reviews appear to be so polarized. I have to wonder if there’s a correlation between good reviews and reviewers who read the graphic novel and vice versa.

Based on some early feedback, I was prepared to be let down. I’m happy to say that I was not. If you’ve read and enjoyed the graphic novel, you should enjoy the film. A couple of the folks that went in our group had not read the novel. All of us enjoyed the film.

Go watch Watchmen.