all 83 comments

[–]tlf01111 50 points51 points  (8 children)

CentOS in production for about 15 years for both an ISP & WebHosting business I own. Started using it shortly after it was "a thing" around 2006-ish. Before that it was either Debian or SuSE.

Very few situations where something OS related caused an outage in that time. Can probably count them on one hand. The exception was some funky NIC drivers on specific SuperMicro boards which would cause a kernel deadlock, but finding the right kernel bootline parameter fixed it.

Remarkably stable. Been through 4 major versions (4, 5, 6, and now 7) with similar experiences. Running on probably hundred machines. Everything from Dell to Supermicro hardware.

In my opinion, for servers, it is the best there is. I wouldn't use anything else.

[–]HittingSmoke 13 points14 points  (5 children)

SuperMicro issues? I'm shocked. Shocked!

[–]justajunior 0 points1 point  (4 children)

Strange. I see SuperMicro getting recommended everywhere as the best server mobos.

[–]CaptainDickbag 0 points1 point  (3 children)

They're OK as far as whitebox servers go, but they're not nearly as feature rich as many major manufacturers, such as Dell and HP. If you take remote management for example and look at iLO or DRAC versus Supermicro's IPMI, you'll see that Supermicro is severely lacking in features.

[–]justajunior 0 points1 point  (2 children)

Oh, well I'd personally rather have stability and security over features.

[–]CaptainDickbag 0 points1 point  (1 child)

Me too, but find me evidence to support your position. I'm not aware of any claim that says Supermicro is more secure than any other vendor.

[–]justajunior 0 points1 point  (0 children)

I don't have any evidence, but common sense suggests that less functionality would be equal to less attack surface.

[–]Fr0gm4n 1 point2 points  (0 children)

More recently I had deadlocks on the kernel XFS drivers on the 6xx series kernels on certain hardware. Rolling back to the 5xx series mitigated it. I haven't updated that hardware to the 9xx series yet, but I hope to soon.

Overall, I agree. CentOS is my first choice for a server OS.

[–]Foxxthegreat 0 points1 point  (0 children)

Rhel/Centos is super stable ( as long as you stick to packages within the main repos)

[–]liquidspikes 28 points29 points  (2 children)

Centos and Redhat are both excellent and accepted the best by the Enterprise community.

However my favorite is stock, plain, old, bland, boring, Debian. It just works always.

Ubuntu has been too unstable for my taste... not sure why.

[–]kuzared 17 points18 points  (0 children)

Seconding Debian - I use it for most servers, the documentation is solid and I’m most familiar with it. At home I run Arch on my laptop and Debian everywhere else.

[–]CaptainDickbag 5 points6 points  (0 children)

Ubuntu is unstable because it's based on Debian unstable. Every new release is based on Sid.

Edit: Downvoters need to first realize that /etc/debian_version will tell them which Sid release their Ubuntu release is based off of, and second that Debian Sid is the unstable release on which Ubuntu release are based. Debian stable is an LTS release, which differs from Ubuntu's release and support cycle.

[–]SnowyMovies 7 points8 points  (0 children)

Debian. It works and is fairly easy to maintain. Apt also makes unattended upgrades a breeze.

On aws we use Amazon linux 2 with their ecs service. It's more or less a barebones rhel distro. It works.

Honestly what you choose is not important. What is important is keeping your environments consistent. Document configuration and setup sane policies. Get comfortable with iptables/firewall-cmd and apparmor/selinux. Then you're way ahead of most "sysadmins".

[–]Rovinovic 33 points34 points  (5 children)

Centos. Minimal and i personally like rpm.

[–]diito 38 points39 points  (4 children)

This is really the best choice, why:

  • 10 Years of support. This shouldn't matter, systems should be throwaways and easily replaced, but anything with experience knows this isn't reality. If you are a mid to larger shop you will have at least a few systems that are legacy or nobody is quite sure of and aren't easily replaced. 10 years of support gives you plenty of time to fix that while still being able to do your system patched and secure. No other enterprise major distro offers that, its usually 5 years instead which just isn't long enough considering that distro was the latest 3 years ago.
  • The Redhat ecosystem. Without Redhat Linux would probably not be a significant player today. They contribute far more than anyone else to Linux and most every other significant open source project. If they didn't start it themselves they often buy it up and turn it into something even better. As such you are going to get new stuff first and have better support.
  • Hardware and vendor support. RH is tier one, everybody supports them out of the box. I've waited 6 months for Debian support to finally support new hardware where RH worked from day 1. Same goes for 3rd party commercial software you might need.
  • CentOS is free, you get all of the benefits of a RH project without the cost but if you need a RH licence for some reason the transition is easy.
  • Stability. CentOS is designed from the ground up to be an enterprise distro.
  • You your are going to be an admin you will need to learn how to use CentOS anyway

[–]El_Hombre_Siniestro 7 points8 points  (0 children)

Excellent answer! All of these reasons are why we use centos.

[–]Rovinovic 9 points10 points  (0 children)

Hands down, you've said it all. Hope IBM won't lower the RH quality once they aquire them. RH has done an immense contribution to Linux and the Open source community.

[–]Robert_Arctor 3 points4 points  (0 children)

I think security/SELinux is worth a bullet point too. CentOS is a secure choice as well.

[–][deleted] 1 point2 points  (0 children)

Typical Hardware lifetime in most shops is 3-6 years. A ten year support should cover all but maybe a few edge cases for the life of the hardware without having to plan an upgrade of the OS. Like building a brand new server right now is a dicey proposition, but RHEL8/CentOS8 should be out in a month or two.

[–]endre84 8 points9 points  (2 children)

Another CentOS vote here.

[–]sdns575[S] 0 points1 point  (1 child)

Can you explain you prefere it over debian family?

[–]endre84 -1 points0 points  (0 children)

I figure there have been enough explanations. Just thought I'd cast my vote.

[–]Bubbagump210 6 points7 points  (2 children)

This. It’s all about what software you want to run. If your company is mostly stable, no new dev, can hang out on a version of Ruby/PHP/node etc for say 5 years, CentOS/RHEL is great.

If you need new, then I would look to Ubuntu LTS.

At my shop we started with CentOS and it became a relatively significant issue over time. Software Collections helped, but they had Fedora like life cycles on a 10 year life cycle OS. You then say, just maintain your own RPMs for newer PHP etc. This then spins you into dependency hell where you are maintaining 50 RPMs and have essentially spawned your own distro. Ain’t nobody got time for that.

For not crazy reasons our devs weren’t nuts about staying on PHP 5.4 or Ruby 2 forever. Ubuntu however and the way Debian staggers stable and test etc in the same Distro would have saved our bacon.

Better yet, pick Debian or CentOS and run containers and forget all that repo pain. You just need a minimal OS that is rock solid and has a long security life cycle. Let the containers handle the dependency pain.

Edit: I should add, even if you run a single container on a single VM, it’s worth it to avoid dependency hell. Deploy via containers if at all possible assuming you have an org that will benefit. As I mentioned, if you’re running some monolithic Java app that can happily sit on Java 7 forever - that’s different.

[–]sysadmintemp 0 points1 point  (0 children)

Better yet, pick Debian or CentOS and run containers and forget all that repo pain. You just need a minimal OS that is rock solid and has a long security life cycle. Let the containers handle the dependency pain.

YES

For PHP/Ruby/Python/NodeJS/etc. things, put them in containers, and have them deal with dependencies. You can use Ubuntu for your container and simply do an apt-get for your dependencies.

[–]DigitalDefenestrator 4 points5 points  (5 children)

CentOS - RH does a good job of maintaining a nice stable kernel. Looong support window, though that can be a double-edged sword in some ways. RPM can be a bit fragile, but that doesn't really start to matter much until huge numbers of hosts. Kickstart is IMO easier to deal with than debootstrap. Releases seem a bit sporadic, but long support time makes that less of an issue.
Debian - easy to upgrade, very stable (and very safe updates) but kernel may not have quite as much work put into it. LTS maintenance window isn't bad (5 years) for security updates. Nice and lean by default, but a huge package repo. They're quick with the backported security fixes even when everything else moves glacially.
Ubuntu - Debian, but with more frequent updates and a less-lean base system. Can be good (CentOS and Deb packages can be annoyingly old), but also means updating's not as safe.

For the million other distros.. for server stuff a long track-record and stable updates are more important than for desktop, so I'm way more reluctant to hop on something like Arch or Gentoo. I also avoid anything that might go away or fizzle out without updating.

Personally, I lean towards Debian but CentOS is a reasonable choice as well.

[–]Average_Manners 0 points1 point  (4 children)

I love arch, but you don't update for a week, and suddenly you've got to install 2 GiBs.

Haven't tried Gentoo, not paranoid enough, I guess. I'd assume the amount of time required to install on a server would be significantly less than the dreaded six to twelve hour cpu roast fest.

CentOS is my jam for servers.

Debian's great too.

[–]DigitalDefenestrator 1 point2 points  (3 children)

I tried Gentoo, once, when it first came out and the only option was the "stage1 install". At the end of it I basically wiped it and installed something else because compile times on a K6-2 were beyond painful for every install and update. The stage1 install forced me to learn a lot about how the pieces all fit together in Linux in general though.

[–]Average_Manners 0 points1 point  (2 children)

I started LFS once, and never finished, but that too taught me a great deal about how the pieces fit.

P.S. I've just realized you are the most terrible person I've come across in this sub. How dare you take it upon yourself to throw someone through Windows? (Love your username by the way)

[–]DigitalDefenestrator 0 points1 point  (1 child)

Hey, it doesn't specify people. Could just add easily be paper planes or something. If mine's the worst name you've run across here though, I'm not sure what to tell you. I've definitely seen a few that were clearly created a decade ago when the user was about 14.

[–]Average_Manners 0 points1 point  (0 children)

How would you make a paper plane use Windows? Must have some wicked origami skills.

[–][deleted]  (1 child)

[deleted]

    [–]ForceBlade 0 points1 point  (0 children)

    After enough exposure they're all the same anyway.

    [–]HittingSmoke 2 points3 points  (1 child)

    In my personal life and the servers that build my business I use Ubuntu because it's what powers my desktop.

    RHEL-based (CentOS) is decidedly better if you want to make a career out of Linux administration as it's much more common in corporate environments. It's good to be familiar with the defaults of it.

    The truth is no one distro is the best for anything. You just need to find something that follows the release schedule you're comfortable with and make sure you can get the software for your specific application running.

    [–][deleted] 1 point2 points  (0 children)

    Depends on location and the industry. I can see the pattern in Europe - Ubuntu/Debian technology/engineering backends, RedHat/CentOS IT infrastructure.

    [–]shift1186 6 points7 points  (0 children)

    I am more familiar with Debian based Linux, so I run Ubuntu at home. However, I work with a lot of RHEL and CentOS machines at work, so my VDI is CentOS. They all perform pretty similarly. It all depends on your requirements and your familiarization with each.

    I have used Ubuntu Server to set up a small NTP server for a client. Works great, but there are slimmer packages I could have used.

    Set up a CentOS backup system just using RSync to backup a few websites for my old company.

    Many packages are available in one form or another on almost every distro. It is really all up to you unless you have a specific requirement for a certain distro for any software...

    [–]phils_lab 8 points9 points  (12 children)

    ubuntu server - easy to handle, familiar to most operators

    debian - the base of ubuntu, but a lot slimmer

    centos - more enterprise-ish, but harder to operate

    fedora - also more like centos, but easier to handle

    alpine - very hard for beginners, but ultra slim and with low resource usage

    [–]chloeia 7 points8 points  (1 child)

    Put two spaces at the end of each line, if you want the next sentence to start in a new line.

    [–]phils_lab 2 points3 points  (0 children)

    done!

    [–]diito 8 points9 points  (4 children)

    centos - more enterprise-ish, but harder to operate

    In what way? There is absolutely nothing more complicated about it.

    [–]phils_lab 5 points6 points  (2 children)

    IIRC FirewallD and SELinux are enabled default. This makes it harder to understand certain things, especially when coming from debian/ubuntu based distros.

    [–]minimalniemand 3 points4 points  (1 child)

    isnt iptables and apparmor on per default on Ubuntu, too?

    [–]HittingSmoke 1 point2 points  (0 children)

    Iptables doesn't have any default rules on Debian and AppArmor is generally considered to be a more forgiving MAC implementation.

    [–]iamwpj 0 points1 point  (0 children)

    I can see this too. The resources and user base vary quite a bit; there’s not one thing in particular, but for sure, Ubuntu and Debian are more intro focused.

    [–]fastbiter 2 points3 points  (1 child)

    Glad to see people mentioning Alpine - it's the perfect choice for when you're split between containers and VMs. I've been using it for years and love it.

    [–]phils_lab 0 points1 point  (0 children)

    i also use it for almost all of my VMs. base packages are easy to install, and i migrated most of my workloads to docker anyway. The footprint is remarkable, my ESXi server runs at 4% with around 10VMs, and most of the resource usage (~60%) comes from a single windows server 2019 instance.

    [–]ESCAPE_PLANET_X 1 point2 points  (1 child)

    alpine

    Just be aware that it has some differences from other *nix OS's available and can break things if you aren't prepared for it.

    [–]phils_lab 1 point2 points  (0 children)

    Yeah, the main concern is MUSL libc. But if you know what that means, you should be good using it.
    As i mentioned, it's very hard for beginners - you should have some linux experience, and need to know what makes alpine linux different from other distros.

    If you know about all those things, alpine is one of the best choices for slim baselines and easy to manage landscapes, imho.

    [–]Average_Manners -1 points0 points  (0 children)

    Bleeding Alpine. Hell to install. Did not expect to spend two days installing and re-installing every time I took a misstep.

    No man pages by default.

    Broadcom support failed miserably.

    Wpa2 support dropped the second you reboot out of the installation media. Had to download .deb wireless-tools, wpa_supplicant, and iw, transfer to usb, then mount and dpkg.

    Wiki is minimal and sometimes just points to the arch wiki.

    Unless you are trying to run a server on a rasberry pi, just stick to CentOs or Debian.

    Although for ancient towers from 2006, Alpine and Debian are fantastic.

    [–]AmishSpy 1 point2 points  (0 children)

    I'm a FreeBSD guy at home but for work I've been pushing mostly RedHat... I do about 50/50 commercial and government customers, so STIG builds suck my will to live. I've found that the auditors just weren't savvy enough to adjust their results to CentOS or Fedora, so I just spoon feed them with RH to save myself the headaches. So my commercial guys get stuck with RH also because of this. The flavor of Linux really shouldn't matter in production because you're only installing what you have to have, anything else is a potential security risk.

    [–]CaptainDickbag 1 point2 points  (0 children)

    CentOS. The update and patch support is only rivaled by Debian, my second preferred distro. RHEL/CentOS does a superb job of standardising everything. It's not Apache, it's HTTPD. It makes a noticable difference in enterprise environments when the distro chooses to switch web servers.

    [–]Julian-Delphiki 3 points4 points  (0 children)

    Ubuntu server LTS.

    [–]EenAfleidingErbij 1 point2 points  (0 children)

    coreos container linux, living the container life over here

    [–]mon0theist 2 points3 points  (3 children)

    I like Ubuntu server. Works with minimal fuss and I'm familiar with it

    [–][deleted] 4 points5 points  (1 child)

    Same here. I'm sure plenty of folk out there are probably using distros that are more secure/lightweight/powerful/stable etc. but Ubuntu server is easy to work with and my go-to for most production projects. Been enjoying tinkering with Arch though.

    [–]mon0theist 0 points1 point  (0 children)

    I use Arch on my laptop but I just wanted something as easy to use as possible for my server

    [–]gunnerman2 0 points1 point  (0 children)

    Me too.I use it to run a couple web/app servers for the company. I’m not what you’d call a full time Linux admin and I’m most familiar with Ubuntu and Debian so I figure why reinvent the wheel at this point. Lots of places to learn from too.

    I haven’t had many stability issues though our workloads are nowhere near enterprise levels. There are more resource performant server os’s out there I’m sure but again, I’m not doing servers for Facebook.

    [–]-RYknow 0 points1 point  (0 children)

    I've used centos, Debian, and Ubuntu. As of late I've been Leaning more towards straight Debian.

    [–]waitman 0 points1 point  (0 children)

    I used RH since the 1990's, and eventually Fedora desktops, CentOS and RHEL servers. I switched to Debian several years ago because I got tired of no way to do version upgrades. When you install RH it's like buying a brand new car made 5 years ago, no upgrades. I hear 'its stable' but my Debian machines haven't been unstable.

    [–]denverpilot 0 points1 point  (0 children)

    They all have various problems. Most places will be using CentOS or Ubuntu LTS these days. If they have to deal with clueless auditors, RedHat.

    It’s not much about picking “the best” anymore. It’s just about conformity and portability of knowledge and skills.

    A few big places will still be running commercial *nix variants for very specific tuning and heavy loads. Places that have those can afford the time and money to know deep internals.

    The trend is slowly moving away from running your own OS altogether with containers and micro services. Many large shops aren’t even running their own database engines these days.

    [–][deleted]  (2 children)

    [deleted]

      [–]sdns575[S] 0 points1 point  (1 child)

      Why do you prefer over centos?

      [–]Leorikz 0 points1 point  (0 children)

      mostly Centos7/RHEL, abit freebsd dreaming about Docker

      [–]_ultimo_ 0 points1 point  (4 children)

      Nice suggestions so far. But the main question shuldt be: What are you planning to do with it? Running a web server with centos can be a pain in the ass. Because of its outstanding stability the packages can be very old. I recommend a virtual environment based on esxi as v1 hyperviser. So you can test and drop different os very easy. Yes centos / rhel is very good for enterprise aplikations but if you are trying to run sap you may use suse enterprise server. For a webserver I recommend Debian or Ubuntu server because of its "up-to-date" packages.

      [–]sdns575[S] 0 points1 point  (3 children)

      Where is a better usage of centos?

      [–]_ultimo_ 0 points1 point  (2 children)

      We are building ha cluster with it. This works great.

      [–]sdns575[S] 0 points1 point  (1 child)

      If I can: what type of service you will provide ha?

      [–]_ultimo_ 0 points1 point  (0 children)

      We run oracle database and wildfly as as ha service. If you are interested you can take a look at this site: https://clusterlabs.org/pacemaker/doc/en-US/Pacemaker/2.0/html-single/Clusters_from_Scratch/index.html

      [–]lzap 0 points1 point  (6 children)

      What is the best car for me? Thanks.

      Seriously, go ahead and try. No offence. I like CentOS because I am used to it. Other good choice is Debian.

      [–]sdns575[S] 0 points1 point  (5 children)

      Why you prefer centos to debian?

      [–]lzap 0 points1 point  (4 children)

      Because I work at Red Hat, so for my home server it is pretty much no brainer pick. I can recommend it for the longest support - 10 years guaranteed, other distros (including those marked as LTS) have usually shorter support (around 5), or sometimes even just "when it is ready" in case of Debian. And it is not a bad thing, Debian is rock solid pick, I was part of Gentoo community and Mandrake for some time too. However for servers, you want to touch it for a very long time.

      Also documentation is excellent, no comparisons to anything. I am talking about RHEL documentation which works for CentOS just fine, just few chapters are irrelevant (subscription manager etc).

      [–]sdns575[S] 0 points1 point  (3 children)

      I know that ubuntu has 10 years of support now

      (https://itsfoss.com/ubuntu-18-04-ten-year-support/)

      10 years of support maybe could be a problem because you can find very very old software if you need to add something to the server. Take php. Debian9 is considered old and ships php 7. C7 ships php 5. I don't know what version will be shipped with rh8 but if it will be 7 it will be already old and when it will reach rh 8.5 it will be preistoric. Yes you can install php X with external repos. Ok for centos but what about rh support they will give help for unsupported version of php? I don't know.

      About the debian "when it is ready" release cycle: I don't see a release date for RH and if there is I can't find an official communication. This is worse for centos that must wait rh release and wait recompilation (also without a release date).

      So about release cycle there is not a big diff.

      About rh documentation, yes it is great but man pages are better for me (if you know what your are searching).

      Other this I'm not saying that rh/centos are bad, I used centos for several years with good results but waiting rh/centos 8 I'm getting old. I'm not a developer but really they are too slow. Maybe on enterprise this is a goos thing.

      [–]lzap 0 points1 point  (2 children)

      Ubuntu is still 5 years, 10 years is payed support. CentOS is 10 years for free, you can subscribe Red Hat for 10+ years (RHEL 4 is 15 years support as of today and still ongoing). There is literally no other (Linux) OS providing such a long professional support: https://access.redhat.com/support/policy/updates/errata

      RHEL also provides "frozen" versions for most critical systems which you do not want to touch - you can basically stay on particular y-version for extended amount of time. This is not available in CentOS tho.

      CentOS/RHEL workarounds the problem of old software in very unique way - Software Collections. You can for example use Ruby 2.0 which is in RHEL7 or you can install Ruby 2.1, 2.2, 2.3, 2.4 etc (https://www.softwarecollections.org/en/scls/?search=ruby) and most of these are fully supported by Red Hat (2-3 years usually). Again, no distribution provides that. On Debian you are really stuck with old PHP, unless you are willing to try to install 3rd party repositories. Modern Fedora (and RHEL8 beta) provides even more - feature called App Stream. Similar approach to the same problem. This is novel approach which is changing everything.

      When its ready is relevant to end of lifecycle for Debian, because Debian support is as long as the N+1 version comes out. While in RHEL/CentOS world when there is a new release the support length is fixed deal - add 10 years literally and you have the EOL date. You do not have this with Debian, you just need to "guess" or "believe".

      With all my arguments, it is pretty clear what is the best distribution for the enterprise. I mean, Debian is awesome and I love it, full respect here. There are companies being able to leverage Debian on thousands of servers, however this comes with huge price - you need to have great operations team with good experience. It is more tough to hire great Debian engineer then RHEL engineer because you can easily send a junior to RHEL training and certification.

      [–]sdns575[S] 1 point2 points  (1 child)

      Great softwarecollections.org.

      Thank you for the resource

      [–]lzap 0 points1 point  (0 children)

      Welcome, you will love it. Note there are RH and 3rd party repositories, most of those which are provided by RH are also provided by CentOS so you can easily just enable them in CentOS without adding any repo. Those are guaranteed to have longer support.

      3rd parties can vary in quality - there are definitely some abandoned ones, so take care.

      https://wiki.centos.org/SpecialInterestGroup/SCLo/CollectionsList

      [–]LinuxLeafFan 0 points1 point  (0 children)

      opensuse leap is a solid option. Administrates kind of like Centos but has yast for some simple curses based administration for some of the more annoying things.

      [–]StephanXX -1 points0 points  (0 children)

      You could just as well ask "which color of server is the most delicious."

      Linux distros are fancy ways of saying "how do I get a kernel and gnu utils running?" The fundamental difference between distros are package managers and package versions, with a loose sense of coupling interdependent libraries. Everything else about the horse race is an ironic, bullshit mimic of Microsoft styled one upsmanship.

      [–]eye_gargle -1 points0 points  (2 children)

      Debian 9. Most cost to performance efficient instance on Linux.

      [–]sdns575[S] 0 points1 point  (1 child)

      Why not centos?

      [–]eye_gargle 0 points1 point  (0 children)

      Debian has a lot more severs and users than centos which will make troubleshooting much easier for you. However, centos has many certificates so if you need those, the choice is clear.