'(CentOS vs the Rest)

I’ve been hooked on CentOS for servers for a couple years now. We used to use
Ubuntu, but I see several advantages to choosing CentOS over Ubuntu and others.
Here’s why:

UPDATE 2017:

Smooth updates. Since starting all our servers out on CentOS 7.0,
they’ve all been cleanly upgraded to 7.3 without any fuss or
ceremony. Looked like any other daily update.

Our Consultancies use CentOS. We’ve been in a couple data centers
that encourage using their supported platforms based on CentOS. We
also work with a MySQL team that knows and prefers CentOS to any
other.

CentOS (and Fedora) have had Systemd in production releases for over a year.
This is probably the biggest reason. Ubuntu is getting it eventually, but CentOS
has had it and it’s working well. You’ll have to adopt it with Linux anyway, so
why not now?

CentOS is a first-class member of a strong Red Hat family. They were
recently acquired by Red Hat and now benefit from lots of company resources.

Vendors will install CentOS for you. It was EC2’s default OS for a while
(still?), and is found widely available on other VPSs.

More hardware is certified for Red Hat.

CentOS releases are good for 10 years. If you were totally stuck with not being
able to upgrade a system, this makes for a pretty good life span. Ubuntu LTSs
are only 5 years. :) So, minor win.

Fedora is a well-tested cutting edge distro and CentOS get the best of its
learnings. It’s solid as a desktop, so you can use it for development and have
a pretty consistent environment across your desk and servers.

Red Hat/CentOS have a well-defined focus. They embrace the fact that they
are a server OS. Compare this to Ubuntu’s focus on touch interfaces, display
managers, phones.

There are certifications for becoming a (so-called) Red Hat expert.

There is an upgrade path to RHEL if someone insists upon it. Some PHBs will
want to know that they can throw money around to buy “guarantees” about
stability/support.

CentOS is ubiquitous. Most cloud VPSs will offer it as an option.

Docker is in production. I don’t think Docker is a panacea, but it’s good to
see it’s being well tested in RHEL and CentOS.

Firewalld is new and in. It’s not terribly well documented, but it’s really
just a front end to iptables.

SELinux is more powerful than AppArmor. Though there is a bigger
learning curve. See
this comparison.

Arch is very similar. Arch is a popular and powerful development Linux OS.
It’s cutting edge, and the AUR is the easiest way to quickly install the widest
variety of tools. Hopping onto a CentOS server from the comforts of your Arch
setup is not much of a leap. Generally, you’ll find the same standard tools on
both.

Shortcomings

Not everything is perfect with CentOS, though. It does not always have the
newest versions of packages you might desire. I end up building my own versions
of Nginx, Redis, Ruby, and others.

The security update story is also a bit lacking. The simplest way I
have found to stay up-to-date on vulnerability patching is to watch
the daily mail list, and email myself every time a server sees
available updates (yum-cron). Then I can use Ansible to update the
fleet, and check if any updates will require reboots, though they’re
rarely needed: a few per year, when kernels or glibc updates.

Yum is the package manager and it is in flux, and essentially
pronounced dead.
Fortunately, dnf appears to have some backward compatibility with yum and should
provide a clean transition.

If you’re looking for a broader spectrum of OSs to choose from, particularly for
your desktop, read my article
on choosing an OS.

About Micah

Saluton! Welcome to my blog. I’m a developer, sysadmin, and
entrepreneur interested in education, functional programming
(Clojure, Racket, OCaml), Linux, FreeBSD,
Emacs, Ansible, and lots of other FOSS. Most of the content
herein takes the form of recipes and opinions. See the
README for more.