Picking a linux distribution can be an extremely daunting task. Wikipedia lists at least several hundred of them, although many of them are targeted for very specific hardware architectures or embedded devices. In the PC world, there are still a ton to choose from. The most popular we tend to see deployed at customer sites however are Ubuntu and RedHat.
In this article, I’ll be discussing the specifics around which distribution makes sense for a given server environment. Linux on the desktop is a whole different can of worms, and it deserves a separate discussion.
Before we consider either distribution, we first have to define what a distribution is. A linux distribution is essentially the linux kernel, supporting core packages, 3rd party software, and a set of scripts that glue everything together. Different distributions will provide different sets of 3rd party software, and they will maintain (provide updates & bugfixes for) the core packages & scripts. Now let’s look at one of the most influential factors:
Cost. This is obviously a huge factor unless the company you work for has unlimited budgets. Ubuntu is freely available, as are the package updates. Red Hat however, uses a subscription based model. There are essentially two server subscription tiers — one supporting 2 CPU sockets, the other supporting an unlimited number of sockets. Pricing for the former starts at $349 per server, per year. One of our smaller clients have over 50 machines in their simulation lab. This would equate to $17k per year — a significant cost year over year. What does that buy you exactly, and is it worth it?
One item it buys you to some extent is security. This can be a game of cat and mouse. As new vulnerabilities are constantly being uncovered, developers are hard at work patching existing ones. The question is, will a vulnerability be patched by the vendor, and if so, how soon? Redhat offers a “Standards of Service” whereby they pledge to analyze each security threat and if necessary, provide a software update. With Ubuntu on the other hand, I’m unsure if anyone is really on the hook. As a “community” distribution, if the individual package maintainers do not provide a fix, then who will?
Another item that the Redhat subscription provides is support. Have a question or issue? Simply open a case with Redhat and they’ll assist you towards a resolution. With Ubuntu, you are on your own. You can attempt to post a question on a forum or mailing list, but again, no one is really on the hook except you.
If you work with a large 3rd party software vendor, you’re likely familiar with certifications. For instance, IBM notoriously has very strict guidelines on which operating systems it will support for use with its own products. Typically, software vendors will say that their application version A works with database version B, but only on operating system version C — otherwise you’re on your own. While this can be quite a pain at times, I can appreciate it. It means that someone took the time to test this very specific combination of items together, and they can vouch that it works. I’ve personally supported IBM, Oracle, Cadence among tons of other software vendors, and Redhat is often times the only linux distribution that many of these vendors support.
With all of these potential pitfalls, where does Ubuntu on the server fit in? I find that Ubuntu is suited well for custom software development shops. In other words, groups where software is developed for their own purpose, or for an appliance type of product for instance. Ubuntu’s package versions are cutting edge, whereas Redhat releases are much less frequent. Here’s an example — try getting Python 2.7 installed onto Redhat 4. Upgrade to Redhat 6 you say? Well not so fast or easy. However in Ubuntu, do a few successive “do-release-upgrade” commands, and you’re now up to date.
In short, if you’re setting up a standard web server with a well known application server and a well known database server, stick to Redhat. If your environment consists of lots of proprietary development, and you have sufficient IT resources on hand, Ubuntu is definitely the way to go.
Sr. Systems Integrator
SPK & Associates