CentOS's switch to Stream is a major change in what CentOS is

December 8, 2020

The news of the time interval is that CentOS is making a major change in what it is that make it significantly less useful to many people, although their blog entry CentOS Project shifts focus to CentOS Stream will not tell you that. I had some reactions on Twitter and this is an expanded explanation of my views.

What CentOS has been up until this change is people taking the source code for Red Hat Enterprise Linux that Red Hat was releasing (that was happening due to both obligation and cultural factors), rebuilding it to essentially identical binaries (except for trademarks they were obliged to remove and, these days, digital signatures they could not duplicate), and distributing the binaries, installer, and so on for free. When RHEL released updated packages for a RHEL version, CentOS rebuilt them and distributed them, so you could ride along with RHEL updates for as long as RHEL was doing them at all. If you did not have the money to pay for RHEL, this appealed to an overlapping set of two sorts of people, those who wanted to run machines with an extremely long package update period (even if they became zombies) and those who needed to run (commercial) software that worked best or only on RHEL.

(We are both sorts of people, as covered in an older entry about why we have CentOS machines.)

The switch to CentOS Stream makes two major changes to what CentOS is from CentOS 8 onward (CentOS 7 is currently unaffected). First, it shortens the package update period to no more than five years, because package updates for the CentOS Stream version of RHEL <x> stop at the end of RHEL's five year full support period. In practice CentOS Stream for <x> is not likely to be immediately available when RHEL <x> is launched, and you won't install it immediately even if it was, so you will get less than five years of package updates before you must switch or operate machines without someone providing security updates for you.

(It's unclear if there will be a way to upgrade from one version of CentOS Stream to another, or if the answer will be the traditional RHEL one of 'reinstall your machines from scratch'.)

Second, CentOS is no longer what RHEL is except for those required trademark changes. Instead it “tracks just ahead of a current RHEL release”, to quote the blog entry (emphasis theirs), which currently appears to mean that it will contain versions of packages that are not released to RHEL yet. The CentOS distro FAQ is explicit that this will sometimes mean that CentOS Stream has a different ABI and even API than RHEL does, and it's unclear how stable and bug-free those packages will be. If CentOS Stream is intended to be an in-testing preview of RHEL updates, they will probably be less stable and bug-free than RHEL is, and there will be more risk in using CentOS Stream than in using RHEL. But perhaps this is too pessimistic a view. Right now we don't know and the CentOS project is pretty vague and is not making any promises. On the one hand they explicitly say that CentOS Stream will be “serving as the upstream (development) branch of Red Hat Enterprise Linux” (in the blog post); on the other hand they also say that “we expect CentOS Stream to have fewer bugs and more runtime features than RHEL” (in the FAQ in Q5).

(Also, it seems very unlikely that commercial software vendors will conflate the two the way they currently often say 'supported on RHEL/CentOS <x>', although I would expect the software to work on CentOS.)

All of this significantly reduces the advantages of using CentOS over something like Ubuntu LTS and increases the general risks of using CentOS. For a start, CentOS no longer gives us a longer support period than Ubuntu LTS; both are at most five years. Since using additional Linux distributions has a cost all by itself, and since CentOS no longer appears to have significant advantages over Ubuntu LTS for us, I expect that we will be migrating our CentOS 7 machines to Ubuntu 22.04 LTS in a couple of years, thereby reducing the number of different Linux distributions we have to operate.

There is a bit of me that regrets this. CentOS is at the end of a long line of my and our history with Red Hat, and it's sad to see it go. But I guess I now have an answer to my two year old uncertainty over CentOS's future (and I no longer need to write the entry about what things CentOS was our best option for).

PS: It's possible that another distribution will arise that does what CentOS did until now. But I don't know if there is enough interest there any more, or if all of the organizations (and people) who might care enough have moved on.

PPS: Oracle is trying to attract CentOS users, but like plenty of other people, I have no trust in Oracle. We are extremely unlikely to use Oracle Linux instead of Ubuntu LTS, even if we would get (much) longer package updates if all went well; the risks just aren't worth it.


Comments on this page:

PS: It's possible that another distribution will arise that does what CentOS did until now. But I don't know if there is enough interest there any more, or if all of the organizations (and people) who might care enough have moved on.

Gregory Kurtzer, the original founder of CentOS, showed up in the comments:

I am considering creating another rebuild of RHEL and may even be able to hire some people for this effort. If you are interested in helping, please join the HPCng slack (link on the website hpcng.org).

He created a new repo called "Rocky Linux" on 2020-12-08 15:56 EST:

Rocky Linux is a community enterprise Operating System designed to be 100% bug-for-bug compatible with Red Hat Enterprise Linux now that CentOS has shifted direction.

It's unclear if there will be a way to upgrade from one version of CentOS Stream to another, or if the answer will be the traditional RHEL one of 'reinstall your machines from scratch'.

I believe the answer is 'reinstall', although if in-place upgrades come to RHEL, they'll be in Stream first.

It's unclear how stable and bug-free those packages will be.

If we do it right, they'll be about as stable and bug-free as RHEL packages today. CentOS Stream is Red Hat developing RHEL in the open, embracing our "upstream first" philosophy. That means a lot of the CI and other testing starts in CentOS Stream instead of inside the Red Hat firewall. Of course, bugs found in Stream will hopefully be fixed before the RHEL release, so this should end up resulting in fewer shipped RHEL bugs.

Importantly, this is not like Fedora Rawhide where we're pretty cavalier about what we put there.

(Dsclosures: Red Hat employee, CentOS Stream program manager, not involved in the CentOS Linux decision)

By Miksa at 2020-12-14 10:44:53:

RHEL added a supported upgrade option from 6 to 7. Compared to Ubuntu's 'do-release-upgrade' it seems quite picky, but also polished and quite complete. You run a preupgrade tool that checks if there are any blocking issues or other potential problems and lists operations you may need to do afterwards.

For example if you have a separate /usr-partition it's complete blocker for the upgrade. And if it sees signs of MySQL it informs that it won't be an upgrade, MySQL will be removed and MariaDB installed in it's place and you need to manually move the my.cnf.rpmsave left afterwards.

There are in place upgrades for RHEL, so they they will be in stream. Each subsystem team (mine is containers) has their own upgrade plan. Going from 7 to 8 was sort of optional, but I don't believe it will be for 8 to 9. Podman will definitely have an upgrade plan and most/all other subsystem teams will too. RHEL as a whole already had an inplace upgrade from 7 to 8 that covered booting and basic packages.

Long story short, yes, there will be in place upgrades. Part of why we went to a three year RHEL lifecycle was to force this to happen (and make it easier).

Personally, as a product manager for RHEL, I'm quite excited about Stream.

Written on 08 December 2020.
« Exploring when the network is up on a machine
A probable benefit to enabling screen blanking on LCD displays »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Tue Dec 8 18:54:43 2020
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.