Red Hat, CentOS & Fedora: Which Is Best for You?
Among the hundreds of Linux distributions out there, a small number stand taller than the others. These are the distributions on which others are built. Of those, one of the most well-known and well-regarded is Red Hat Enterprise Linux. But Red Hat doesn't exist by itself. It lives in a symbiotic relationship between CentOS and Fedora. Call it a Linux love triangle if you will. These three complement each other, but they also kind of compete for your attention. So of the three, which should you use?
I'm going to apologise for something in advance here. I'm almost certainly going to use the name "Red Hat" to refer to both the company "Red Hat Incorporated" and the product "Red Hat Enterprise Linux". Sorry about that. Hopefully it doesn't confuse you too much!
Now we're comparing three distributions within the Red Hat family, so the obvious place to start is with the big dog - Red Hat Enterprise Linux.
As the name suggests, Red Hat Enterprise Linux is serious Linux for serious business, and that's firmly where it's aimed. Unlike most Linux distributions, Red Hat isn't free - you have to pay for it. Now wow, hang on, isn't Linux supposed to be free? Well... sort of. I mean there's a difference between the Linux kernel, and a Linux distribution like Red Hat; but even so, Red Hat is completely open source. You can go and download the entire source code for it and it won't cost you a penny.
When you install the Red Hat software though, you also get access to enterprise grade support. You can think of it that the software itself is free, and what you're really paying for is that support that comes bundled with it.
Red Hat is designed for the needs of large enterprises where downtime means lost revenue. That readily available access to professional support? That mitigates the risk of lost productivity due to a software problem. The other thing large enterprises tend to demand is rock-solid reliability in the first place; and Red Hat delivers that. It is an incredibly stable platform.
There is a little bit of a trade-off for that stability. Red Hat doesn't tend to be the most up-to-date Linux distribution. A lot of vendors these days are taking a "move fast and break things" approach. Red Hat on the other hand seems to take a "take your time, and do it properly" approach. Now that means the updates might be a while until they get there, but when they do arrive they should be pretty reliable.
On the opposite end of the scale you've got Fedora. It is very much the "move fast and break things" child of the Red Hat family. Fedora gets a new release every six months, and its releases only get thirteen months worth of updates. Compare that against Red Hat's ten years of support.
Fedora is managed by Red Hat, but it's something of a community effort and it's completely free. Fedora is for the benefit of the community, but it's also for the benefit of Red Hat.
With Red Hat focusing on stability over shiny things, there is a risk they get left behind. That's where Fedora comes in. Fedora focuses on having access to the absolute latest Linux technologies. After six months it's too old, so let's have a new one.
When it comes time to develop a new version of Red Hat, they start with Fedora. They don't take their existing operating system and try and bolt on newer technologies. They take whatever shiny but rough-around-the-edges version of Fedora happens to be around, and they start working on it to bring its security and stability up to Red Hat standards. Over time, that version of Fedora will slowly morph into the next version of Red Hat Enterprise Linux.
So Red Hat is slow-moving, very stable, and expensive. Fedora is fast and free, but not necessarily that stable. What if you want stable and free? Red Hat is open source, right? So you can download its source code. What's stopping you just downloading all of Red Hat's source code, compiling it yourself, and having Red Hat for free? Well, that's pretty much what CentOS. Is it's a Linux distribution built from Red Hat's source code, and it's completely free. You just don't get the support, obviously.
There are a few tweaks, but the main one is they have to remove Red Hat's branding; because it might be open source, but that doesn't mean you can use their trademark. Other than that, it's pretty much Red Hat.
You might be wondering what Red Hat thinks of that. I mean, they're a commercial company and CentOS are basically ripping off their product, right? Well... Red Hat got in touch with CentOS, and they said... How can we help? That might seem strange - especially if you come from a commercial, proprietary software point of view; but hey, this is open source. Open source projects live or die with their communities. And Red Hat didn't release the source code and expect nobody to use it! CentOS is now the semi-official, free, community version of Red Hat Enterprise Linux. In fact, several of CentOS' governing board members actually worked for Red Hat. CentOS is good for Red Hat.
Let's face it, there are plenty of free Linux distributions. If Red Hat had tried to crush CentOS, they'd have lost the support of the community, and they wouldn't force anyone to buy Red Hat - they've just went and used a different free Linux distribution. This way everyone who uses CentOS is joining in the Red Hat community; and if one of those people goes and deploys a critical application that warrants professional support, where do you think they're going to go? They know CentOS, so they know Red Hat. They know their application works on CentOS, so they know their application works on Red Hat.
CentOS is good for Red Hat, and Red Hat is good for CentOS.
As of the release of Red Hat Enterprise Linux 8, there's a new distribution called CentOS Stream. This warrants its own section, because it has a different purpose, and it's arguably closer to Red Hat than it is to CentOS.
CentOS Stream is the next version of Red Hat Enterprise Linux that's still in development. Hang on, isn't that what Fedora's for? No. Fedora's more of a technology playground. Whilst' it's true that Red Hat is based on Fedora, they do follow their own development paths.
Take Red Had 8 for example. It was based on Fedora 28, but by the time it was actually released, Fedora was already on version 30. Red Hat 7 was based on Fedoras 19 and 20, which means that between Red Hat 7 and Red Hat 8 there were seven versions of Fedora that weren't used by any version of Red Hat.
So where does CentOS Stream fit? When a version of Fedora is selected as the basis for the next version of Red Hat, and work starts to improve its security and it's stability; that development path from Fedora to Red Hat - that is CentOS Stream.
In terms of currency and reliability it should sit somewhere between the two. As time progresses it will move away from Fedora and closer to Red Hat's standard.
So which of these distributions is best for you? Well, as always it depends; so let's run a few scenarios.
The default answer for business is going to be Red Hat Enterprise Linux. If I'm looking at this for work, that's where I'm gravitating unless there's a reason to make me look elsewhere. If you're deploying something critical that gives you the rock-solid reliability and professional support.
If it's maybe less critical and you're willing to take a risk on the support, or if you simply can't afford Red Hat; then CentOS is a good bet that won't cost you a penny. CentOS inherits Red Hat's rock-solid reliability. You don't get any support other than from the community, so if it's something critical you might be better off with Red Hat; but if you've got really a strong in-house Linux team then CentOS might be fine.
If you just want to play with the latest technologies then Fedora is where it's at. Now bear in mind you're going to be upgrading a lot, and being a cutting-edge distribution it does come for a few more niggles. So don't expect as easy a ride as you might get with Red Hat or CentOS. I wouldn't recommend Fedora for production. The relative lack of stability compared with Red Hat and CentOS coupled with that short lifespan? That's asking for trouble.
A while back I ran a Fedora server at home. The idea was it give me something shiny to play with, and if it went down it only really impacted me. Now that server (after the initial issues) did run fairly well... until I ran
yum update. And basically every time I patched that thing, there was a 50/50 chance of it collapsing in the burning heap. Now once I fixed it, it would run well again... until I patched it; and the cycle would start over. After a year I just got fed up with it, and I replaced it with CentOS. Since then, I've not had a single issue. It gets patched every single week as part of an automated schedule, and it's never once gone down unless I've chosen to reboot it. Now I don't know if that experience is representative of everyone else's, but that is the risk you take with bleeding edge software.
If you're using Fedora in production, then feel free to comment below and let us know how it's going. The closest I've got to seeing it in proper production was at University. That was a while ago and, yeah, that wasn't a great experience either. On the upside, it didn't work with the print management software, so I get free printing. "Yay" for silver linings.
If your R&D needs are a little bit more specific than just playing with the latest shiny thing, then CentOS Stream is probably a good idea. If you want to see what the next version of Red Hat is going to be like, or you want to test that your application is going to work on it; then that is exactly what it's there for. Unlike most versions of Fedora, CentOS Stream will become the next version of Red Hat; so that's where you should be looking for your roadmap. Should you use it in production? Well... I wouldn't unless there was a very, very specific reason. It's intended as a development build, not a production one.
Hopefully that gives you an idea of where to use each of the different Red Hat distributions. Feel free to comment below with your own thoughts - I'm sure some of you have more experience than I do, and Linux is about sharing, right?