2020-12-08
CentOS's switch to Stream is a major change in what CentOS is
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.