Sunday, June 3, 2012

Is Ubuntu an acceptable distro for running a production server?

I'm not a great Linux expert, but I'm comfortable running my Ubuntu desktop. I've also got a little experience running Ubuntu as a server as well, for my home network.

At work, we're considering switching away from our current Solaris based setup to something Linux based. Our sysadmin is pushing for something like RedHat Enterprise or CentOS. However, at the same time, he's pushing for the developers (like me!) to take more of a role in running the machine.

I've tried to push back by suggesting that we go with Ubuntu for the server. The majority of the development team has Ubuntu experience, as opposed to very little with RedHat. However, the sysadmin tells me that Ubuntu is not really suitable for a production server.

Our scalability needs are not that high, probably low double-digit requests per second max. For security, we need it to be "reasonably secure." In other words, we're not storing credit cards or medical records, just emails and such. Essentially, we'll be serving Ruby on Rails and PHP web apps from it.

What exactly disqualifies Ubuntu as a candidate for a production server?

Source: Tips4all


  1. If Wikimedia can use Ubuntu, then with your requirements you should be ok as well.

    But, if your team has Ubuntu experience, maybe Debian would be better choice for server infrastructure, if you do not need the bleeding edge set of applications.

  2. Ubuntu is very well suited to running servers.

    Normally a sticking point is the lack of paid support options, but Ubuntu has them:

  3. Nothing strictly disqualifies Ubuntu as a server distro. If I recall, Ubuntu even has a server-oriented variant (Ubuntu Server). The thing that makes Ubuntu less production-ready is that there isn't as much rigorous testing of the software packages and the packages themselves aren't "owned" by someone who is directly responsible for their maintenance. Also, Ubuntu basically just grabs the existing versions in Debian Unstable and polishes them a little before releasing them.

    In short: higher chance of buggy unstable software.

    I strongly recommend Debian Stable or Testing (Lenny should release next year). The management tools are the same, but there is a lot more care put into making sure released software is reliable. Debian gets a lot of criticism for releasing infrequently, but it is extremely reliable.

  4. Speaking as somebody who actually has to get serverfarms to play nice, and has actually uses redhat enterprise and ubuntu LTS, I can tell you that Ubuntu is far and away the better and best supported system.

    That said, for audit purposes, suits prefer actual vendors, so even though redaht is the inferior system, a lot of corporate infrastructure requires that if Linux is to be used, then that linux must be redhat.

    Therein lies the rub.

    I know that this was probably not very helpful...

  5. System administration is like plumbing. You don't really want to buck the trends. You want any plumber to be able to look at your pipes and figure out the problem.

    I'm sure Ubuntu works great as a server, but it's more important that your SA is comfortable with it than you. How you manage 10, 100 or 1000 is different between distros. Your SA probably already has infrastructure (LDAP, NFS, package management, config management, etc) set up. Plus there should be plenty of documentation to help you along the way.

  6. The question is whether you need commercial support; in many organizations, being able to buy support is a prerequisite for using software in production. This might disqualify Debian, as you can't buy support from the debian project. For Ubuntu, it's different, as you can buy support from Canonical.

  7. I've seen many people recommend CentOS, and it does seem like a good server distro, but I'm not a big fan of rpm/yum. I also tried Debian, and ran into problems installing some server software (dependency problems). I just never needed anything different than Ubuntu so far.

    Here are a couple things I look for in a server distro:

    Good package manager and default repositories - I think this is very important - it significantly decreases the amount of time you need to spend setting the server up
    File/directory organization that I'm familiar with - I try to stick to either Debian or RedHat based systems
    Has lots of users - The more people use it, the more documentation you can find online
    Decent release cycles - Ubuntu Server LTS has 5 years, which is great
    Stable software
    Quick, responsive, secure

    And I think Ubuntu Server fits all this criteria. I've been using Ubuntu Server 6.06 for the past 2 years, and I've been very happy with it so far.

  8. We use the Ubuntu Server LTS releases for production servers (Ubuntu 6.06 LTS, and some servers upgraded to Ubuntu 8.04 LTS). The 6 month release cycle for the ordinary releases is too fast for a production environment - the Long Term Support versions with 18 months between releases and 5 years support is better.

    One thing to consider regarding Ubuntu: Look if the server packages you plan to use are part of the ubuntu main repositories - then they deliver full security support, and the packages gets more testing by ubuntu.

    But if they are in the universe repositories they doesn't guarantee any security upgrades (but most often, they will get security updates as well)

  9. I personally prefer RHEL/CentOS for servers. The focus is on servers, and I have more experience with it.

    Up through even the latest release (Intrepid Ibex), and the last LTS release (Hardy Heron), they've been focused on the desktop. Focusing on the desktop means their server support has been behind.

    Is Ubuntu a good candidate for servers? Maybe, maybe not yet. If it's what you know, though, it could be well worth your time and effort.

  10. Under a competent sysadmin, both the Distros can become great servers.
    A competent sysadmin should also be able to switch between a few unixes/distros instantly.

    I think if you intend to install software from Oracle/IBM or other big vendors, they may require you to use RHEL or SuSe for support. Fewer companies support Ubuntu or CentOS.

    Assuming you do not want to use 3rd party or big vendor software, then you should take advantage of your familiarity with Ubuntu (or Debian) and stick with it.

    If your Sysadmin is any good, he should be able to learn Ubuntu/Debian in no time.

  11. I have been using Ubuntu since 7.04 and nothing else since. I'm using it with my next vserver (slicehost).

  12. We use Ubuntu on a couple of live servers and commented just the other day how lovely it was working on those machines. Our developers run Ubuntu on their own machines, so when it comes to the live server we know where everything is and how it all works. This can be a big advantage in itself. We also run RHEL4 and RHEL5 and Centos4 servers, but I always find it a pleasure working on the Ubuntu machines due to using Ubuntu day in and day out.

    As far as stability goes, worth bearing in mind that the main software you are running on a server doesn't tend to change rapidly and radically. For example, I don't think that the Ubuntu Apache install is a radical, hot new version, but pretty much the same version as is installed on RHEL or CentOS.

    So for my two penneth, given a choice we'll be picking Ubuntu servers in future.

  13. Development is going to be pretty much the same on either Red Hat or Ubuntu. I'd go with whatever the sysadmin prefers.

  14. Underneath it all, it's almost (and I say this with a million buts) always the same Linux under the distribution name. If you're going to be doing this all via command line only, then almost any distro will work for you. It all depends on the packages you install and how willing you are to manually do things. You can turn Ubuntu into the most hardened, efficient piece of software if you can muck right up into the core and edit a lot of stuff.

  15. Your choice should really depends on the amount of customization and support you want. Ubuntu is very well supported but also has a rather large footprint. I personally use Arch and Gentoo for my servers, but because of their DIY nature, finding support can be difficult. I would personally recommend Debian. It has the ease of Ubuntu and a strong support community.

  16. There are other issues besides available support that make a distro suitable for a server environment. The two (interrelated) biggies are (1) How cutting edge is the software, and (2) What is the release cycle?

    Ubuntu (like Fedora) tends to have more cutting edge software, and newer releases of software also available in "server distros". There's a certain amount of risk in running releases that haven't been beaten on mercilessly yet. In this respect, Ubuntu is less desirable on a server than RHEL or Centos, which stick to more mature versions.

    Some Sysadmins prefer distros with longer release cycles, and Ubuntu tries to handle that with its LTS releases.

  17. The answer to this question is pretty subjective. Your SA is probably more comfortable with CentOS, so that is likely the best choice in this situation. If there were more than one SA with a diversified skill set with different distributions, I would say go for whatever the majority feels comfortable with. Debian/Ubuntu are good distros for servers (with the right packages installed), and CentOS is great, too.

    I believe CentOS is probably best for security purposes. However, that, again, is quite subjective.

  18. Let me share my experience: I jumped to be a server admin from being a humble Ubuntu desktop user, and I don't regret! I started with a tiny VPS with Ubuntu installed and now I am on a big dedicated servs tens of thousands of pages per day, but still with Ubuntu! (and also tahnks nginx)

    As for Debian being more stable than Ubuntu for using as server, it can be true in very rare occasions where the package is very obscure. Throughout these years, I have encounters only one instance (in case of a great dns server called nsd3) where Ubuntu has a tiny difficulty to install the package, while there was no such problem in Debian.

    Despite this, I still prefer Ubuntu because of shorthand commands e.g. 'service blabla restart' instead of '/etc/init.d/blabla restart'.

  19. This is a case of one person adapting(your admin), since almost all of your team has working knowledge of Ubuntu. Push for Ubuntu harder.