Monday, June 1, 2020

Why use CentOS

CentOS is a robust community-driven operating system that runs on millions of servers and desktops.
Photo by Alex Braga on Unsplash
While the enterprise has elected Red Hat Enterprise Linux (RHEL) as its operating system, CentOS, its community-driven sibling keeps shining. According to Datanyze's, CentOS's market share is second only to Ubuntu. There a multitude of reasons to run CentOS. Let's review some of them below.
With the news that Red Hat is shutting down the CentOS project and moving to CentOS Stream, I definitely cannot recommend CentOS for your server anymore.

What's CentOS?

CentOS is a Linux distribution that provides a free, community-supported computing platform functionally compatible with its upstream source, Red Hat Enterprise Linux. In 2014, Red Hat announced that the CentOS Project would join the RH family but would remain independent from RHEL and Red Hat itself.

Why CentOS

So why consider CentOS? CentOS is a very stable, predictable, secure and free Linux operating system. It's one of the most deployed OSs on the server and most stable operating systems out there. Let's review some of the reasons why you should run CentOS on your servers, containers and potentially your desktop.

Stability

When we talk CentOS, the first thing that comes to mind is stability. But that's not luck. The community runs extensive regression and automated tests on new releases, security fixes and updates. This guarantees that your server will be running stable software.

10-year support

CentOS comes with 10 years support. That's huge, especially for enterprise software. They also come with stable ABIs meaning that packages built today with will still run 10 years from now.

Extensive Software Selection

CentOS also provides a robust software repository. There are three primary repositories (also known as channels) containing software packages that make up the main CentOS distribution:
  • base - contains packages that form CentOS point releases, and gets updated when the actual point release is formally made available in form of ISO images.
  • updates - contains packages that serve as security, bugfix or enhancement updates, issued between the regular update sets for point releases.
  • addons - packages required for building the packages that make up the main CentOS distribution, but are not provided by the upstream.
As of this post there were more than 75 thousand packages available for quick install:
Apart from a very wide selection from the package repository, CentOS also offers AppStreams channels, which allows you to choose between a stable (but older) or newer packages one without breaking the system. The CentOS project also provides several additional repositories that contain software packages not provided by the default base and updates repositories. Those repositories include CentOS Extras, CentOSPlus, CentOS-Testing, Software Collections and more.

AppImages and Flatpacks

Still on software selection, there's still a third option to install software via AppImages and Flatpaks which include stable versions of popular software such as Firefox, LibreOffice, video driver and multimedia capabilities.

Modules

Besides individual RPM packages, AppImages, Flatpacks, the AppStream repository contains modules. A module is a set of RPM packages that represent a component and are usually installed together. A typical module usually contains packages such as applications, dependency libraries, documentation for and related helper utilities.

LTS Kernel

CentOS is always released with a LTS Linux kernel. That means you also get stability at the kernel level including a decent and reasonable up to date access to hardware, good support for latest features without breaking-changes.

Backported every 6 months

The Kernel, the desktop and the graphic stack are also backported every 6 months. That means you'll be running recent and stable server and desktop software like GNOME and KDE, similar to what Ubuntu does with their LTS releases.

Solid Updates

CentOS is updated no more than twice a month. That means stable and more up to date software than Debian stable for example.

Reliable Upgrades

In case you need, CentOS upgrades are also very reliable. Releases essentially follow RHEL (usually every 2 years) and count with extensive testing from the community so that the upgrade is smooth with as little downtime as possible.

Security

Apart from up to date packages, CentOS also ships with SELinux, a mandatory access control (MAC) security mechanism implemented in the kernel. SELinux was first introduced in CentOS 4 and significantly enhanced in recent releases. Hardening a CentOS server is also very well documented. Please check this page for for more information about how to secure your system's filesystem, packages, users, networking and more.

CVEs

Identified CVEs are usually released very quickly by Red Hat and integrated as soon as possible on CentOS. Patches and bugfixes should follow closely Red Hat's Security Advisories and are usually released on the RH family earlier than on other distributions.

Stable Upgrades

Upgrades are pretty stable so you most likely won't need to reinstall or perform major upgrade from scratch in existing instances. Keeping the maintenance to a minimum is a very important premise for the enterprise as they usually run fleets of thousands millions of nodes.

Friendly Community

CentOS is also built by a very competent and low profile community. Everyone is invited to be part of the community and contribute. The channels for doing so are also very well documented.

No Customizations

CentOS also ships with software as close to upstream as possible - a big difference from utter-customized distributions such as Ubuntu. That guarantees a more stable environment and standard tooling for sysadmins and developers.

Widely Used

According to Datanyze's, CentOS, with 15.65% of the market, second only to Ubuntu at 25%. It's popular because CentOS is a Red Hat Enterprise Linux (RHEL) clone with most of RHEL's top-tier business server Linux benefits but without RHEL's costs.

Multiple Architectures

You can run CentOS in a multitude of architectures including x86-64, POWER8 and 64-bit ARM.

Validated on mission-critical environments

CentOS has been validated on mission-critical environments. For example, CentOS is Facebook's choice for its datacenters. The company runs it on hundreds of thousands of servers (btw, they also run Fedora on the desktop).

Extensive Documentation

There are a lot of well documented tutorials and how-tos in the internet. Plus, all the material for Red Hat certifications apply to CentOS too!

SELinux

CentOS also comes with SELinux (Security-Enhanced Linux), a mandatory access control (MAC) security mechanism implemented in the kernel. SELinux was first introduced in CentOS 4 and significantly enhanced in later CentOS releases. These enhancements mean that content varies as to how to approach SELinux over time to solve problems.

Virtualization

Virtualization is also a very important requirement these days. CentOS offers easy access to modern virtualization technologies such as Xen and KVM. Please check the extensive documentation on the topic for more information.

Free RHEL Alternative

CentOS provides most of RHEL's top-tier business server Linux benefits without RHEL's costs. As previously mentioned, it also brings 10-year support, security, virtualization and a fantastic software repository. It's tool that definitely developers and aspiring sysadmins should learn, use, test, study at home.

Container-Friendly

As with virtualization, CentOS is also ready for the container world. Being available as a base image on Docker Hub, it also ships compatible open source alternatives to Docker such as Podman and Buildah. with which you could build, deploy and run your custom containers too.

Ready for Public Clouds

CentOS is very widely deployed on public clouds such as AWS, Azure and Google Cloud offering a complete set of infrastructure and application services that enable you to run virtually everything.

Ready for Private Clouds

CentOS is also well positioned to run on private clouds such as Docker, CloudStack, OpenStack and OpenShift.

Kubernetes-Ready

CentOS is also a very popular and sound choice for Kubernetes, the leading container orchestration platform.

CentOS Stream

Apart from the traditional CentOS server, the community recently announced CentOS Stream. CentOS Stream is a rolling release distribution that sits as a midstream between upstream Fedora Linux and downstream RHEL. CentOS Stream includes more up-to-date software, giving developers the opportunity to weigh in on planning, and making it easier to ensure compatibility between applications. CentOS stream benefits developers writing software for RHEL and improves the integration between Fedora, CentOS, and RHEL.

CentOS on desktops

Yes, CentOS also runs on desktops. But should one use it on the desktop? The answer is obviously - it depends. For most people, I still recommend Fedora Linux. Fedora is an excellent distribution and shares its roots with both CentOS and RHEL. But, there are indeed cases in which running CentOS would be better. For those seeking a more stable system with less frequent updates, CentOS would definitely be an excellent option too!

Conclusion

On this post, we reviewed some of the reasons why run CentOS on the server. CentOS is an excellent, community-driven stable, robust and resilient enterprise Linux operating system. You should also try CentOS Stream which lives in-between Fedora and RHEL. CentOS Stream also will make contributing to future versions of RHEL much simpler and more direct.

With the news that Red Hat is shutting down the CentOS project, I definitely cannot recommend CentOS for your server anymore. 😌 However, it still has its value if you're developing for RHEL.

Btw, don't forget to consider Fedora Linux as your desktop operating system.

References

See Also

About the Author

Bruno Hildenbrand      
Principal Architect, HildenCo Solutions.