What’s wrong with Ubuntu Server?
September 9, 2011
Nothing, if you ask me. It’s just as capable as any other Linux server distribution out there. In fact, I would rate it better than some other options. Nevertheless, some do not believe using Ubuntu for your server is the right answer to a problem. Why is that?
Let’s first differentiate between the Long Term Support (LTS) and Standard releases. An LTS release is certainly better suited for a server than a Standard release, mainly because of its stability. But in some situations a Standard might be better. Some things to consider are as following.
I would divide a server’s lifetime into three categories: short-term (6 months to 18 months), mid-term (18 months to 24 months), and long-term (24 months to 60 months). Next, I would divide an application running on these servers into three categories: trendy (e.g. web application like Wiki, Blog, CMS), stable (e.g. database, telecom application like IP-PBX), set-and-forget (core infrastructure e.g. DNS, firewall). Third, a server is not an island but a part of an ecosystem. For this reason a server can fit into one of three levels of service/function within the ecosystem: absolute core (e.g. database), core support (e.g. backup, management), and support (e.g. monitoring).
I will take various scenarios and try to decide if Ubuntu Server can be a good fit. The first scenario is a small- to medium-sized voice over IP (VOIP) services provider. The elements required in this ecosystem might be: core VOIP application, database, backup, web application, monitoring, file server, remote management.
A second scenario could be a small business with a good number of employees. This ecosystem may contain these elements: mail, wiki, file server, shared storage, backup, IP-PBX, CMS, VPN.
A third scenario could be an individual consultant or a team of consultants used by our telco and our small business examples. Their ecosystem may include: mail, wiki, file server, monitoring, IP-PBX, VPN, shared storage, backup, database, web application, CMS.
I believe in all these three scenarios, high-availability (telco), business-hours availability (small business), and support (consultant), Ubuntu Server can play a very important role. For each elements described above, let’s see where we can place it in the server lifetime, application, and service level categories described earlier.
Core VOIP application and IP-PBX
My experience working with VOIP providers is this: there’s constant change because new partners are brought in and current partners make their own changes. For this reason, a VOIP provider has to be open to accommodate these changes quickly and effectively. The core application may need updates, upgrades, fixes, etc. because a new partner requires them or an existing partner made similar changes at their end. Similarly, as business grows, this provider will have to bring in more hardware of different types and age. But typically, an investment made in a physical server makes it easy to use the hardware for the next three to four years, unless you planned really badly and need to update your hardware sooner. For this reason, a mid-term or long-term server is required. The VOIP application can be categorized in the ‘stable’ kind of application because it needs to work with very little flaws but since it requires periodic changes it can’t be classified as a ‘set-and-forget’ application. In the ecosystem, it’s in the ‘absolute core’ category. Same goes for IP-PBX.
The scenarios described above will use applications that need databases to function properly. Once an application has been created against a database, it’s very difficult (and inadvisable) to update your DBMS or schema unless the application requires it. So in terms of server life-cycle, it can be ‘mid-term’ or ‘long-term’, depending on the application using it. It is certainly a ‘stable’ application but may need to be ‘set-and-forget’ in some cases. I would classify it as ‘absolute core’ in terms of service.
File Server/Shared Storage and Backup
How many times do you have to tinker with your file server (other than user permissions, etc.)? Not many times. Similarly, if your backup server is up and running you don’t want to mess with it too much. So I can classify it as ‘long-term’ server, ‘set-and-forget’ application, and ‘support’ service.
Email is a very important, maybe one of the most important, parts of any ecosystem. It’s certainly a ‘long-term’ server. I term it as a ‘stable’ application because with all the threats out on the Internet you have to have an updated mail server. And it performs an ‘absolute core’ function.
A web application could be wiki, CMS, blog, or corporate web presence, etc. It certainly need to be highly-available. However, technology on the web changes so rapidly that if you want to keep up and utilize the new features, you need to update more often. So I would rate this a ‘short-term’ server, a ‘trendy’ application, and a ‘support’ function.
A server used to monitor you infrastructure needs to keep up with your changing ecosystem. Therefore, it’s a ‘short-term’ (maybe ‘mid-term’) server, ‘trendy’ application, and ‘support’ function.
VPN and Remote Management
Having VPN function flawlessly is required for any organization. But changing security requirements mean it needs to be maintained periodically. Therefore, it would be a ‘mid-term’ server, a ‘stable’ application, and ‘core support’ function.
These were some very common environments, ecosystem, and requirements that I have encountered. Sometimes your hands are tied as to which distribution to use because your application provider requires this or that. But if you are that application provider or have the ability to run hybrid ecosystems, Ubuntu is a great option. But I have still not answered the question: why Ubuntu?
A Standard release of Ubuntu Server is supported for up to 18 months. This makes it an ideal OS for ‘short-term’ servers. An LTS release is supported for five years, ideal for ‘mid-term’ or ‘long-term’ servers.
‘Trendy’ applications can use the up-to-date packages provided by Ubuntu with its quick releases. You may not want to upgrade every release but every other release or maybe even every third release could work very well. ‘Stable’ and ‘set-and-forget’ applications would fit very well in an LTS release.
‘Support’ function would certainly fit very well in either a Standard or an LTS release. ‘Core support’ can use every other Ubuntu release if you need upgrades for them but would fit very well in an LTS release. ‘Absolute core’ is just perfect for LTS. Of course, after five years technology changes so much that you would really like to upgrade your application and server by then.
When it comes to number of packages available in Ubuntu, it has one of the largest repositories available. For a developer, you can find libraries to develop against. For a user, you can find almost any application. For a system administrator, you will find all sorts of tools to make your life easier.
For each role you want to assign a server (and I recommend assigning a single role/function to a server), Ubuntu Server can individually handle it very well. Each role (server) is on its own life cycle and can be managed independently of other roles/functions/servers. This modularity is a strength in any ecosystem and Ubuntu Server is very modular because of its release cycles. Thus a very good fit for anyone’s server environment.
In short, I have tried to demonstrate that an Ubuntu Server is an excellent choice if you are willing to invest some time in planning on how best to use it. You have to take your application into consideration and place it in the three different families of server lifetime, application category, and service level. This will help you choose the best release of Ubuntu server for your purposes. I would use Ubuntu Server in a heartbeat, from a workgroup Wiki to a highly-available core VOIP application.