Cloud Native / Linux / Open Source

Back to the Future: A Look at CentOS Streams

1 Feb 2021 2:01pm, by

For years CentOS has been a darling of the corporate IT industry. As an open source operating system, it was as close to Red Hat Enterprise Linux in terms of stability as a Linux distribution could get without paying for an RHEL license. For some, CentOS was a vastly superior platform to much of the competition. Thanks to a glacially-slow release cycle, the operating system was always stable and rarely suffered from issues that often tripped up faster-moving platforms.

CentOS was also really secure. With the standard foundation of Linux enforced by SELinux, security was one of the main driving forces behind businesses selecting CentOS.

In December, Red Hat discontinued further support of CentOS, which left a vast number of admins wondering what to do.  In place of the tried and true distribution, a rolling release version would be deployed.

That rolling release is CentOS Stream, and it’s nothing like the original.

Although it might not sound like a drastic change, it is. But it very much is so. In fact, the shift from the standard CentOS to CentOS Stream has major players like cPanel looking elsewhere. Anyone that offers hosting services, is well-versed in the CentOS/cPanel combination, and have been left in the lurch with Red Hat’s decision.

What Is CentOS Stream?

First, let’s take a look at what, exactly, CentOS stream is. To be clear, CentOS Stream isn’t exactly a rolling release distribution as you might understand.

What is a rolling release? Simple: A rolling release distribution shrugs off the standard major released followed by minor point releases. For example, Ubuntu is about to release 21.04, which will then be followed up by 21.10. That’s how Ubuntu releases are, like clockwork, every year. A .04 major release is made available every April, and a minor .10 release is unleashed in October. Updates to each are released to the repositories, as they are made available.

With a rolling distribution, a major release is made available and updates are released as they are ready. So instead of minor point releases, a rolling release simply updates packages as soon as they are ready.

Many look at the rolling release as a way to always have the newest software packages on a system. However, others look at that as a way to introduce instability to a distribution. That is, generally speaking, not the case. In a rolling release distribution, the software is tested before it’s made available. The biggest difference between the point and rolling releases is that updates are continuously rolled out in the rolling release, versus software being held back until the next minor release in a point release candidate.

CentOS, however, isn’t exactly a rolling release. Well, it is. But it isn’t. The answer you receive depends on who you ask. According to Red Hat, CentOS is a “Continuously delivered distro that tracks just ahead of Red Hat Enterprise Linux (RHEL) development, positioned as a midstream between Fedora Linux and RHEL.”

So, if you’re looking at it from Red Hat’s market-speak, CentOS is a sort of hybrid. But that’s hard to apply in real-time applications. Any administrator who understands how Linux releases work will absolutely tell you that CentOS Stream is a rolling release. In fact, if you go back to the original Red Hat announcement of CentOS Stream, it clearly states that the CentOS Stream project sits between the Fedora Project and RHEL in the RHEL Development process, providing a “rolling preview” of future RHEL kernels and features.

Rolling preview sort of gives it away.

It’s also important to take a look at where CentOS Stream resides in Red Hat’s development lifecycle. As Red Hat stated, CentOS tracks just ahead of RHEL, so the stream looks like:

Fedora >> CentOS >> RHEL

So CentOS Stream is, effectively, the development branch of RHEL. This is a major shift, as an overwhelming majority of CentOS users deployed the operating system because it tracked after RHEL, which meant CentOS benefitted from a lot of development effort that went into RHEL. It’s hard to see if that will remain the same going forward. Now it seems RHEL will benefit from the development that goes into Fedora and CentOS Stream.

A Bit of CentOS History

How CentOS came about is very typical within the realm of Linux. It started as an effort by Gregory Kurtzer to maintain a build system around a project he was involved with at the time CAOS Linux. Eventually, the name CentOS was adopted and David Parsley joined Kurtzer and rolled his own project (Tao Linux) into the new distribution. Things continued on well, until July 2009, when co-developer Lance Davis disappeared, taking the CentOS domain name with him. It wasn’t until August that the CentOS team contacted Davis and managed to regain control of the centos.info and centos.org domains.

Travel forward to 2014, when Red Hat announced it would officially sponsor the CentOS Project to help establish a “platform well-suited to the needs of open source developers.” Ownership of the CentOS trademarks was transferred to Red Hat and it looked like a perfect marriage of open source and business.

But then 2020 came along and wreaked its special blend of havoc on the distribution, with Red Hat initiating the shift to CentOS Stream.

Many feel that the stream-based distribution doesn’t offer the same resilience as the old model. Enterprise Linux support company OpenLogic noted that:

Running package upgrades against the public CentOS Stream will result in multiple package updates per day and may open the user to non-stable builds of supporting Linux packages. Businesses who rely on the CentOS community to curate stable package versions will need to consider this in their test plans.

If you choose to continue to adopt CentOS Stream, in general, the less continually you currently deliver your software, the more risk you will incur at release time.

The latest version of CentOS, CentOS 8, will be supported through December. It was supposed to be supported through the end of December 2029.

A Bit of CentOS Future

This is where the murky waters start to clear up a bit. Even after the open source and business communities offered up some rather strong reactions to Red Hat’s move, the biggest open source business in the world made absolutely zero signs it intended to recant the move.

So what happens?

Forks happen.

In fact, there are two projects that will certainly draw the majority of CentOS users away from the Red Hat stream. The first of those projects is Rocky Linux, which is a new drop-in replacement for RHEL that is 1:1 binary compatible.

What’s really important about Rocky Linux is that it was created by none other than Kurtzer (who, as you now know, developed CentOS in the first place). In fact, according to the Rocky Linux website, Rocky Linux is a community enterprise operating system designed to be 100% “bug-for-bug” compatible with America’s top enterprise Linux distribution now that its downstream partner has shifted direction.

Rocky Linux will be a downstream build, exactly as CentOS once was. This means that third-party applications, such as cPanel, will most likely support this new distribution and what’s to come with CentOS Stream will no longer matter to a continuously growing user base.

The next fork of CentOS comes from CloudLinux, which has over a decade of experience building hardened Linux-based platforms and infrastructure. Their offering will be another 1:1 RHEL binary compatible distribution and will be free, open source, and community-driven. This new distribution, named AlmaLinux, will be released in Q1 of 2021 —  so keep on the lookout.

What Do You Do with CentOS 8?

If the idea of a rolling release distribution doesn’t sound all that bad to you, and you’re worried about what’ll become of your current CentOS 8 deployments, fear not. With just a few quick commands, you can migrate your CentOS 8 installments to CentOS 8 Stream, without even having to reboot. Here’s how.

Log into your CentOS 8 server. You’ll find have to install the CentOS Stream repositories with the command:

sudo dnf install centos-release-stream -y

Next swap out the original repositories, so your release defaults to Stream with the command:

sudo dnf swap centos-{linux,stream}-repos

Next, sync your current release with CentOS Stream using the command:

sudo dnf distro-sync

When this completes, you can verify the shift has been successful with the command:

cat /etc/centos-release

You should see CentOS Stream release 8 in the output.

If you’re not okay with using a rolling release in production, your other option would be to continue on with CentOS 8, until either Rocky Linux or AlmaLinux has been released. When that happens both Rocky Linux and AlmaLinux have plans to make it possible to migrate from CentOS to Rocky Linux, by way of a user-friendly script (for Rocky Linux) and a single command (for AlmaLinux).

In the end, CentOS admins and users need not fret about the future of their platform. Thanks to forks in the stream, a little back to the future action will have their CentOS deployments heading to a time prior to Red Hat making the change, but one that’s clearly geared for a wide-open future.

Feature image by Ryan Hafey on Unsplash.

A newsletter digest of the week’s most important stories & analyses.