Sysadmin: Why CentOS?

centos_icon Why CentOS as our main server farm Linux distribution? I really want this article to be pure technical, but there are some emotions attached to the question so please forgive me if I might break into rant somewhere down the road.

There were so many times when I was asked by young men with bright eyes and too much free time on their hands “Why do you use Centos for your server farm? Why not (debian,ubuntu, gentoo, insert your favorite distribution here)?” And I am so tired of explaining this decision over and over so I decided to put it together in this article and get it over with once and for all.

Don’t get me wrong – I am all for latest and greatest, and I am playing with Arch Linux at home and used to play with Gentoo for a few years (even contributed some).
But I can not even start to imagine using these distributions on 300+ servers – too much time will go wasted on “making things work predictable” or even just “making things work” which I’d prefer to spend more productively – like troubleshooting real customers problems or living my life, thank you very much.

Now, that I am almost done with emotional part let’s switch to technical part –

The answer as usual is partially in the question itself – CentOS where ent stands for Enterprise, i.e. work, business, not-much-fun-at-all. And business doesn’t like surprises, and expects reliability, stability, and support, not “the latest and greatest version of everything” that usually creates much more problems then it solves.

  • Support – from business standpoint 10 years of support looks very attractive (while the record got somewhat spoiled with the broken upgrade path from Centos5 to Centos6, however remaining few years of support still leaves some room for maneuver) as well as some commercial support options availability.
  • Don’t forget support from major server hardware and software manufacturers. Drivers
    (I mean RAID controllers that could easily cost more then your average high end gamer videocards), and Software (Oracle choosing CentOS derived distro for their own, not Debian or whatever else, and Cisco using CentOS for their first Linux based Call Manager).
  • Stability – package management is pretty straightforward and reliable, not to mention well defined rules for building and supporting your own packages. I would like to say that meaningless dependencies are almost gone, however ImageMagick (command line graphic files manipulation package very popular among web software developers) still drags whole bunch of Gnome packages along it, when you are trying to install it, but even that is minor inconvenience, considering that packages naming are very well understood (and yum package manager can serve all your needs – no need to remember some cryptic library package name that is not resolved by package manager on its own). Yes, call me lazy and unimaginative but I just like to know that “somepackage”-devel will fetch me all headers and libraries associated with it, and if there is no somepackage installed then installing -devel part of it will bring me the package also.
  • Adherence to standards – yes, however laughable that sounds in the Linux world where everybody his own master and commander, in large installation base this is rather critical and time and nerves saving.
  • User base – this is also major contributing factor (for these who are paying too much attention to exact numbers – CentOS is Red Hat source based distribution, and Oracle, Scientific Linux and Blue Quartz are CentOS based, so that should add up to some quite significant market share).

And for those of you what decided to take a look and may be try using the workhorse distribution that gets the job done I will refer to the excellent post from OpenLogic Wazi technical blog on how to migrate your server from Debian to CentOS.

Now I’ve got it off my chest and can just refer all new enthusiasts to this post.

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">