Plan Linux Deployments
December 12, 2008
Different linux distributions have their own release cycles. Support for these releases also varies. Decisions have to be made on how to manage these deployments so that you get support, stability, and newer technology. Please note that my concern is more on the server side in an enterprise setting.
There are three main types of deployments: long-term bread and butter, mid-term, and research and development. Long-term deployment would be anything which is absolutely required for operations. Applications remain relatively stable in terms of changes and updates, and there is very little need to get the latest and greatest technology. Once this deployment is complete, you basically go in maintenance mode and just run the server. A typical deployment, in my view, is about three to four years, maybe more. It could, of course, be less. But in an enterprise, it is often difficult to make changes to core infrastructure very often. It is my opinion that three years should be a safe time to consider upgrading. Of course, if it’s working fine and you don’t need to make changes, why make them? You must consider official and security support, though. I would include database servers in this category. Also included could be directory and mail servers.
Mid-term deployment would be something that is actually a very important deployment, but is updated more often than a long-term deployment. This could include web-based applications which are constantly being modified themselves, but may not require modifications to the server itself. But once you migrate your application to newer technology, you would need to upgrade your server. Typically, you might want to consider upgrading at the two-year mark. I would probably also include IP-PBX servers, such as Asterisk, in this category.
Research and Development deployments would be used to develop applications for the future, but also for exploring new technology. These would not go to production now, but could be evaluated for both long-term and production deployments. For example, if you are upgrading your application, you could get a newer version of the distribution and develop on it. By the time the application is ready for deployment, you will have evaluated both the server and the application.
I want to focus on two main distributions and their sister projects. These are Red Hat Enterprise Linux (RHEL) and Debian. They represent the commercial and volunteer wings of the Linux world. They have different release and support cycles, and can be mixed and matched to get the best of all worlds.
Let’s start off with Red Hat. A confession is due here: I do not have enough knowledge about support and releases on either Red Hat or Debian. Whatever information here is gathered from the web, and may not be reliable. But Red Hat announced in 2008 that they would support their releases for four years on average. This means that once you decide to use Red Hat, you could use it for long-term deployment without too much problem. If you are using it for development, you could spend maybe a couple years on development and then put it to production. You would still have a couple more years of production before needing to upgrade. Of course, Red Hat continues to provide minor updates and security fixes for much longer than four years so you could conceivably still use it much longer. You would do this for long-term but not necessarily for mid-term because they have their own requirements.
For cutting-edge technology, you could try Fedora. But I would not recommend it for development for production. If you get a Fedora release which would be used for the next RHEL release, then of course you can start evaluating the technology while Red Hat works on making it long-term ready.
Debian releases when it is ready to be released. This means it has no schedule or deadline. It also means that you may get an inconsistent release cycle. The good news, though, is that releases are as stable as can be. Generally, their support is about two to three years, from the release data on Wikipedia. This would be ideal for mid-term deployments. You could also use it for long-term deployments but I would be a bit hesitant doing so, unless you have a good team working on these servers. For research and development, you could use their testing version as that becomes the next stable version.
If Debian seems a bit too fast for long-term deployment, then Ubuntu can come to your rescue. They release a long-term support release every two years. This release is supported for five years. As Debian and Ubuntu are very closely related, our skills on one can be transferred quite easily to the other. Ubuntu would be the equivalent to Red Hat in that they provide paid support. Of course, Ubuntu usually has newer technology than Debian stable so you don’t miss out on that front.
I have also noticed that Debian is more supportive of older hardware than Red Hat. So if you have a long-term server running RHEL retiring soon, you could use Debian and repurpose the server for a mid-term deployment. You get newer technology on older hardware. It’s good for the environment, too.
There are many other distributions which I haven’t discussed. They all have their release and support cycles, and could fit your organization better. So check them out, too. But if you stick to Red Hat or Debian, my suggestion is to standardize. This way your team can become experts and there would be less need for outside support. Both Red Hat and Debian are doing great work for Linux, and we as customers and users of their hard work should support both of them equally.