Ubuntu is currently the most popular Linux distribution. Using it on a server can be tempting, but is it really a good idea? After nearly 20 years as a system administrator, my opinion on this topic was strong (never do it). But let’s objectively analyze the pros and cons of using the latest version of Ubuntu Server in production.
As a whole, using Ubuntu Server in production has many advantages, including regular updates, a large community and long-term support. However, frequent updates can also cause stability issues and unexpected conflicts which can be a major concern on critical servers.
Whether you’re new to server management or an experienced pro, this post will provide valuable information on how to make the most of Ubuntu Server in your setup. Let’s dive in!
Ubuntu Server Overview
What is Ubuntu Server?
Ubuntu Server is a minimal version of the Ubuntu Linux distribution. It’s based on the same core packages and kernel as the main release, but without a desktop environment or graphic applications.
Ubuntu Server is the perfect choice to host any kind of server that doesn’t require a graphic interface for the end user or system administrator (typically: web servers, file servers, etc.).
It can also be a suitable option for low-end computers (like the Raspberry Pi), or to start from scratch and fully customize the experience by hand-picking each application instead of installing all the default choices.
What’s the difference with Ubuntu Desktop?
Ubuntu “Desktop” is currently the most popular Linux distribution for desktop usage, it looks like the image below by default:
As you can see on the screenshot, it comes with a nice desktop environment (GNOME) and all the default apps you might need for desktop use (a web browser, mail client, text editor, spreadsheet, etc.). It’s perfect for beginners or to use on a standard computer.
Ubuntu Server is a minimal version of this distribution, with only a black screen where you need to use command lines to interact with the system. It’s designed for a server environment and most likely for more experienced users.
On the same topic: Choosing the Best GUI for Your Ubuntu Server
Ubuntu Server release cycle
Before talking more specifically about the pros and cons of using Ubuntu Server in production, there are two things I need to introduce. Ubuntu has a strict schedule concerning the system versions.
Basically, a new Ubuntu version is released every 6 months, one in April and one in October. Ubuntu version numbers include the year and the month. For example, Ubuntu 22.10 was released in October 2022.
I’ll get back to this later, as it can be a good or bad thing depending on the situation, but just expect to have a major upgrade available every 6 months. You can choose to upgrade to the new release or not when it’s available.
The version released in April each year is flagged as “LTS”, meaning “Long-term support”. Regular releases are supported for 9 months (ex: 22.10) while LTS releases have their main packages supported for 5 years.
For a critical server in production, that would typically mean that you’ll install a recent LTS release, and only upgrade from one LTS version to another (once a year max then).
For example, you won’t install Ubuntu Server 22.10, but most likely Ubuntu Server 22.04 LTS. And then maybe upgrade to 23.04 LTS or 24.04 LTS if needed in the following years so that you always use the long-term support versions of your main packages.
Advantages of using Ubuntu Server
Ubuntu tends to release new versions more often than other Linux distributions, but it also includes package updates faster in its repositories. This means you generally get the security patches faster than with other alternatives.
For example, if a vulnerability is detected on a third-party application like Apache or PHP, the developer team of this project will generally fix it quickly (in a few days or weeks). But then, it will generally take time (weeks, months, years) for distributions like Debian to include the package in their stable repository.
Ubuntu has a faster cycle of approval, meaning you’ll generally get it available within the package manager way faster.
You can always install packages manually, without the package manager or by using custom repositories. However, you won’t necessarily be informed of each vulnerability, so having them integrated faster into your update process is generally a good thing to keep your servers safe.
This process of allowing new versions faster in the default repositories also means that Ubuntu will generally offer more recent versions of all packages.
As an example, I compared the PHP versions available with APT (the package manager) on the latest Debian version and the latest Ubuntu version:
- On Ubuntu, you can install PHP 8.1, which is approximately a year old at the time of writing (still recent enough to use in production, with support ending in one year).
- On Debian, you can’t even get PHP 8, it’s still PHP 7.4, which is about 3 years old, and not supported anymore by the PHP developers team.
If you have applications that required a recent version of PHP to run (or any other server packages), it’s something to consider. If tomorrow an app like WordPress decides to only support PHP 8 or more, Ubuntu will handle it directly while a Debian server will require some time to be updated.
It’s not always a good thing, as we’ll see later, but it’s something to have in mind when deciding between Ubuntu Server and other options for a production server.
If you’re new to the Linux command line, this article will give you the most important Linux commands to know, plus a free downloadable cheat sheet to keep handy.
I explained the long-term support offered with some releases of Ubuntu Server. You get updates for 5 years after the release date, which is a strong advantage. Most Linux distributions are not supported for that long.
For example, Debian releases have a total lifetime of about 3 years between the release and the end of the security updates (according to their wiki page).
Obviously, you can always upgrade a server from one version to another to receive the latest updates again (whatever the distribution you use), but it’s generally a risky and time-consuming process, especially on critical servers in production.
Finally, Ubuntu is currently the most popular Linux distribution in the world (by far), which means it’s easy to find tutorials, forums and general help about almost everything related to server administration.
According to Google Trends, Ubuntu is about 10 times more popular than Debian in Google Search.
This statistic includes desktop users, which is probably the biggest part, and this major difference can certainly be explained by the fact that Debian doesn’t have many desktop users. Overall, it will be easy to find Ubuntu users and to find help with almost anything.
Also, Ubuntu is based on Debian, which means that any tutorial or recommendation for Debian will likely work similarly on Ubuntu. Finding help for Debian or Ubuntu is generally not an issue, but it’s something to have in mind before considering more “exotic” alternatives.
Potential issues with Ubuntu Server
Even if using Ubuntu Server in production has many benefits, some of them can also become a nightmare for the system administrator.
The first key element when using Ubuntu Server is to understand that regular package updates and stability are not necessarily synonyms.
Sure, you’ll get the latest updates quickly, which often means that potential security issues are fixed early. But new versions of your packages can also come with unexpected bugs.
The more time you take between a package release and the installation on your system, the less likely you are to install a buggy version.
That’s why Debian is often recommended for stability. It takes so much time between the package release and the integration in the Debian repository, that many users have already tested it, and bugs have been fixed along the way.
Basically, there is a choice to make between using a recent version or a stable version. Maybe Debian is too slow, but perhaps Ubuntu is a bit too fast to accept new packages. You can always choose an LTS release and tweak the repositories you use, but just keep this in mind when making your decision.
Installing regular updates on your production server can also create conflicts, especially with third-party applications.
As Ubuntu will receive new versions of packages faster than with other Linux distributions, you should always keep an eye on your application’s prerequisites. It may stop working from one day to another because of a simple package update.
Previously, I gave the example of WordPress, saying that using Debian can be an issue if WordPress asks for a PHP 8 minimum tomorrow. Well, it can also be the other way around, if WordPress doesn’t support PHP 8.X yet, but Ubuntu received it and updated it automatically tomorrow.
You won’t necessarily have this kind of issue with WordPress or other applications with a giant user base, but it’s something to consider with smaller applications or custom-built software.
One last thing that I want to mention is the potential lack of control when using Ubuntu Server in production.
I already touched this point with the frequent package updates that can cause stability issues or conflicts. But there is also something else to have in mind: using snaps.
As explained in this article where I compare SNAP and APT, Snap is a convenient way to install new applications on Ubuntu that is not necessarily available with other Linux distributions. You basically install an isolated contained, with all the dependencies for your application.
But this can also cause major issues when using them on a production server: you have less control over what is installed on your system, and on the update process too.
Snaps are updated as soon as the developer or maintainer releases an update (checked 4 times per day). If your server applications are based on snaps, it won’t be possible for you to keep control of them. You are basically delegating your server maintenance to the developer.
Summary: Should you use Ubuntu Server in production?
While using Ubuntu Server in production has many advantages (regular updates, long-term support, advanced features and a large community) there can also be downsides when choosing the distribution for your next server.
Stability and control are the main concerns when deciding to run Ubuntu on a new server. And that’s why I’m still not in favor of using it all the time.
Ubuntu Server can be great for less critical servers that require recent package versions or can benefit from some of the Ubuntu features (like snaps), but it’s definitely not my default choice.
If you are installing a critical server that will serve many users in the daily work or host a consumer-based service, I would generally prefer another option, like Debian, when possible.
Big companies are using Ubuntu servers, but they have strict redundancy systems, which is not necessarily possible for everyone.
Also, some major organizations (like Wikipedia) have been using Ubuntu for a few years (2008-2019), changed their mind and moved back to Debian. I don’t know exactly why, but I guess it’s one of the reasons mentioned in this article.
Alternative to Ubuntu Server for production servers
Ubuntu Server is not the only Linux distribution designed for servers in production. Debian, Fedora and others also offer a minimal release, specifically built for system administrators.
For the end-user or system administrator, Debian is really close to Ubuntu. You’ll most likely use the same command lines and services on both distributions.
As explained previously, Debian is considered more stable, with a longer release cycle for package updates and system upgrades. Meaning, you’ll generally run on older versions that have been extensively tested before (so better stability and fewer bugs in theory).
There is a reason why NASA is using Debian and not some exotic alternatives :-).
Debian is very popular on servers, and finding help online will be easy. Some features, like snaps, are not available directly on Debian but can be installed if needed (not necessarily recommended for a server, but it’s possible).
You can visit the official website to grab your Debian image and give it a try.
An alternative if you prefer Red Hat-based systems is to use Fedora. Fedora is also a popular Linux distribution, with Desktop and Server releases, and similar goals to Debian (security, flexibility, performance, etc.).
All Fedora versions are available on the official website, where you can also find the official documentation and more details about this operating system.
In the past, CentOS was the recommended alternative to Fedora to be used on servers (a bit like Ubuntu and Debian, with CentOS considered more reliable/stable). But recently, CentOS has been discontinued, and it’s not clear yet how will things go over time.
Rocky Linux might be the new CentOS, but it’s still a new project, so I would wait a bit before installing it in production. Using Fedora looks like a safer choice for now.
A ton of other distributions are available, with most of them offering a lite edition for servers. You can definitely test them if you like, but I would still rely on something that is well-supported and has been around for a long time.
You don’t want to install a new server today, see the project abandoned in a few months once everything is set up, or even have issues finding help for anything after the installation.
Here are a few projects you can check for your servers:
- Manjaro: Arch Linux-based distribution (Website, Tutorial).
- FreeBSD: Made for servers, but slightly different from what you may be used to (Website, Tutorial).
- OpenSuse: Another reliable alternative for Linux servers (Website, Tutorial).
If you are looking for exclusive tutorials, I post a new course each month, available for premium members only. Join the community to get access to all of them right now!
Overwhelmed with Linux commands?
My e-book, “Master Linux Commands”, is your essential guide to mastering the terminal. Get practical tips, real-world examples, and a bonus cheat sheet to keep by your side.
Grab your copy now.
If you just want to hang out with me and other Linux fans, you can also join the community. I share exclusive tutorials and behind-the-scenes content there. Premium members can also visit the website without ads.
More details here.
Need help building something with Python?
Python is a great language to get started with programming on any Linux computer.
Learn the essentials, step-by-step, without losing time understanding useless concepts.
Get the e-book now.