Gordon Messmer
2020-Dec-11 01:25 UTC
[CentOS] I'm looking forward to the future of CentOS Stream
Personally, I think that changing focus on CentOS Stream is going to make CentOS (and maybe even RHEL) better in the same way and for the same reasons that Fedora is a better distribution than Red Hat Linux was. CentOS Stream should fix the biggest problems that CentOS has had in the past, providing a reliable, free LTS distribution with community participation. Having read the announcement, along with hundreds of reactions in blogs, forums, and mailing lists, I am of the opinion that all (or a reasonable approximation thereof) of the vocal concern is the result of the overloaded term "stable" as it applies to software distributions. If we imagine a spectrum of individuals in which one end of the spectrum is individuals whose primary occupation is in release engineering for software distributions and the other end is individuals who primarily consume software distributions, I would expect that individuals on one end to mostly use the term "stable" in the sense of compatibility and semantic versioning, and the other end to use the same term in the sense of having fewer bugs. The use of that word causes people at one end of the spectrum to infer a completely different message than people at the other end intend to communicate. If we never use the ambiguous term "stable" and instead use the terms compatibility and reliability (the two common meanings of "stable" at different ends of the spectrum), I think that various aspects of CentOS Stream will be better than CentOS, or the same as CentOS. With respect to compatibility: I think most developers are familiar with semantic versioning. Semantic versioning is used by some applications and libraries to indicate the nature and extent of changes. The version is presented numerically as Major.Minor.Revision. When new interfaces are added, the minor number is increased. Those changes don?t affect backward compatibility. When individual interfaces are changed or removed, the major number is increased. Those changes aren?t backward compatible. That allows consumers to infer that if an application is compatible with 8.1, then it is also compatible with 8.2 and later, but might not be compatible with 9.0. Red Hat Enterprise Linux applies that concept to the entire software distribution, providing independent software vendors a convenient means of communicating their compatibility. If they?ve tested their application on RHEL 8.2, then any RHEL 8 host patched to at least that release is expected to run the application. Moreover, Red Hat will continue to publish security patches to each given minor release?s channel, allowing consumers to "pin" a host to a minor release. Those hosts will not receive feature updates, but will mitigate vulnerabilities. CentOS Stream isn?t going to feature minor releases, and isn?t going to provide semantic versioning of the distribution. The same application that the vendor has validated on RHEL 8.2 will run on a fully patched CentOS Stream 8 host, but might not run on a host that isn?t fully patched. On the surface, it appears that CentOS users will lose the convenience provided by semantic versioning. I would simply point out that the CentOS developers have never supported running CentOS in any state other than fully patched. They don?t publish security information in the package repositories, and they don?t support any means of pinning a host to a minor release. For practical purposes, CentOS Stream will need to be fully patched for compatibility purposes, just like CentOS is, and will be equally suited for production purposes. To put a really find point on that: Semantic versioning is only meaningful for hosts that are not fully patched. A fully patched host is expected to be compatible with any application validated for that major release. With respect to reliability: Many of the people concerned about the change in focus refer to CentOS Stream as a "beta" for RHEL. That is not how Red Hat or the CentOS maintainers describe CentOS Stream( anywhere that I've seen), and I think it ignores most of the development, testing, and distribution pipeline. At the risk of oversimplifying that pipeline a whole lot, in the future Free Software will pass through several stages on the way to RHEL: Stage 1: (Software Development) The majority of development and testing is done in individual upstream projects, outside of Red Hat. Stage 2: (Release Development, aka Rawhide) The initial work to build and integrate individual packages with the rest of the software distribution is done in what is essentially a development branch of the software distribution. Stage 3: (Stable[1], aka Fedora) Packages that have passed through review and QA are published for general use. There is no minor release, as major releases occur every 6 months and are supported for only 13 months, anyway. Compatibility is maintained by prohibiting significant version changes for applications and libraries "whenever possible." Users expect no new features during a release, but no breaking changes either. Stage 4: (Long Term Support, aka CentOS Stream) Packages that CentOS Stream includes from Fedora have proven reliable in a variety of workloads managed by many users of Fedora. These packages are expected to be very reliable as a result of testing by their developers, by package maintainers, and by real-world users. They are included in CentOS Stream when they are ready. Stage 5: (Long Term Support with Semantic Versioning of the OS, aka Red Hat Enterprise Linux) Packages that RHEL includes from CentOS Stream have a similar level of QA, but package updates that introduce new features and interfaces are accepted only once every six months when Red Hat publishes a minor release. There?s a lot of concern that CentOS Stream will offer less reliability than RHEL, but there?s currently no reason to believe that will be true. There is no evidence that the minor releases that are part of the RHEL lifecycle improve reliability, and as far as I know that's not the reason they're used. Their function is to offer semantic versioning of the OS. CentOS Stream will probably offer the same level of compatibility and reliability that CentOS does today, and should be equally appropriate or inappropriate for production use in the future as CentOS is now in that respect. And that brings me to the one aspect where I think CentOS Stream will resolve the one major, glaring problem that CentOS has today, that most users ignore: Security. With respect to security: Today, CentOS is a release stage after Stage 5 described above. The CentOS maintainers begin work on a minor release after that release is available to RHEL consumers, and the process of rebuilding those packages is often very time consuming. CentOS maintainers have to reverse-engineer the exact order in which packages are built, with the exact set of installed and available packages in the build environment in order to ensure that the resulting package actually uses the same interfaces that RHEL?s packages do. All packages require that ordering and build environment matching, but most packages are published in small sets and ordering is much easier to identify than it is when they are published in a large batch. As a result, security updates can?t be published for CentOS while the maintainers are rebuilding the minor release, because the build dependencies aren?t available yet. Those windows occur every six months, and are typically a month or more in length. [2] Today, CentOS users accept the risk that for roughly two months out of the year, their systems may have known vulnerabilities with no patch to remediate the problem. Personally, I think that?s a huge risk that needs to be weighed against the costs of RHEL licenses whenever CentOS is used in production. The good news is that CentOS Stream looks like it won't have that problem. CentOS Stream updates still won?t be prepared early, while vulnerability details are embargoed, but there aren?t any windows in which CentOS Stream can?t immediately begin work on preparing updates once the embargo ends. That means that CentOS Stream will be as secure as CentOS is today in between minor updates, and significantly more secure than CentOS is today while its maintainers prepare minor releases. The trade-off of significantly improving security in exchange for giving up semantic versioning of the OS is a huge improvement for production purposes. In addition, the announcement of the change in focus indicates that Fedora maintainers should have much better visibility into work going on within the RHEL release engineering process, and more opportunity to participate in that work, and I look forward to that. CentOS?s big security problem has always been compounded by the lack of any external visibility into the process. Based on the information available today, I expect CentOS to be a very reliable, reasonably secure distribution of GNU/Linux with Long Term Support. And judging by Red Hat?s mention that Facebook?s internal groups either are already using an internally curated OS built from CentOS Stream, or will be using it soon, I think I?m not alone in believing that. 1: I?m using the term "stable" here because I expect it to have both common meanings: compatibility isn?t broken within a release, and the software is expected to be reliable. 2: https://en.wikipedia.org/wiki/CentOS#CentOS_version_8
Konstantin Boyandin
2020-Dec-11 02:28 UTC
[CentOS] I'm looking forward to the future of CentOS Stream
On 11.12.2020 08:25, Gordon Messmer wrote: [...]> For practical purposes, CentOS Stream will need to be fully patched for > compatibility purposes, just like CentOS is, and will be equally suited > for production purposes.Allow me to disagree. We both trust Chris Wright's words, don't we? CTO won't lie. Citing him: "To be exact, CentOS Stream is an upstream development platform for ecosystem developers. It will be updated several times a day. This is not a production operating system." [...]> Based on the information available today, I expect CentOS to be a very > reliable, reasonably secure distribution of GNU/Linux with Long Term > Support.? And judging by Red Hat?s mention that Facebook?s internal > groups either are already using an internally curated OS built from > CentOS Stream, or will be using it soon, I think I?m not alone in > believing that.I do not wish to argue with all your statements. Mostly they look reasonable. However, there's an unpredictable variable in this equation, namely RH. The major problem here is the breach of trust. A year ago RH's CTO is singing charming songs that CentOS won't go, now we see an abrupt direction change. This time, CTO keeps silent (I wonder why). Also, there's change in patterns. With CentOS, I reduce updates to minimal ones. That's significant: the management doesn't like the idea that updates can be applied daily, and glitches may happen at any moment. The management prefers the known devil. With current CentOS life cycle the number of upgrades is typically small. And even if I reduce the number of CentOS Stream upgrades to minimal one, the base advantage of CentOS is lost: predictability. At any given moment I could be sure that it has the same quirks and bugs the matching RHEL has. CentOS Stream has its advantages and use cases. The problem is, no one cared to estimate what use cases of majority of current CentOS users are. Damn, RH could at least bring formal apologies for changing the promised lifecycle. Instead we see the typical marketing blah-blah-blah of how that would benefit everyone. Nothing shows better the actual RH attitude towards the CentOS community. -- Sincerely, Konstantin Boyandin system administrator (ProWide Labs Ltd. - IPHost Network Monitor)
Nicolas Kovacs
2020-Dec-13 08:15 UTC
[CentOS] I'm looking forward to the future of CentOS Stream
Le 11/12/2020 ? 02:25, Gordon Messmer a ?crit?:> Personally, I think that changing focus on CentOS Stream is going to make > CentOS (and maybe even RHEL) better in the same way and for the same reasons > that Fedora is a better distribution than Red Hat Linux was.Using Fedora on production servers is like climbing without a rope. It's possible. I've even seen some folks do it. :o) Cheers from a climber -- Microlinux - Solutions informatiques durables 7, place de l'?glise - 30730 Montpezat Site : https://www.microlinux.fr Blog : https://blog.microlinux.fr Mail : info at microlinux.fr T?l. : 04 66 63 10 32 Mob. : 06 51 80 12 12
Skylar Thompson
2020-Dec-17 15:33 UTC
[CentOS] I'm looking forward to the future of CentOS Stream
On Thu, Dec 10, 2020 at 05:25:16PM -0800, Gordon Messmer wrote:> ... snip ... > Today, CentOS is a release stage after Stage 5 described above. The CentOS > maintainers begin work on a minor release after that release is available to > RHEL consumers, and the process of rebuilding those packages is often very > time consuming. CentOS maintainers have to reverse-engineer the exact order > in which packages are built, with the exact set of installed and available > packages in the build environment in order to ensure that the resulting > package actually uses the same interfaces that RHEL???s packages do. All > packages require that ordering and build environment matching, but most > packages are published in small sets and ordering is much easier to identify > than it is when they are published in a large batch. > > As a result, security updates can???t be published for CentOS while the > maintainers are rebuilding the minor release, because the build dependencies > aren???t available yet. Those windows occur every six months, and are > typically a month or more in length. [2] > > Today, CentOS users accept the risk that for roughly two months out of the > year, their systems may have known vulnerabilities with no patch to > remediate the problem. Personally, I think that???s a huge risk that needs > to be weighed against the costs of RHEL licenses whenever CentOS is used in > production. > > The good news is that CentOS Stream looks like it won't have that problem. > CentOS Stream updates still won???t be prepared early, while vulnerability > details are embargoed, but there aren???t any windows in which CentOS Stream > can???t immediately begin work on preparing updates once the embargo ends. > That means that CentOS Stream will be as secure as CentOS is today in > between minor updates, and significantly more secure than CentOS is today > while its maintainers prepare minor releases.While I agree with your entire post, Gordon, this specific point I think is the most critical. In our environment, we already need to look to the Continuous Release repos to get critical security updates during this embargo period. I'm betting Stream will be no less well vetted than the CR repos, and likely will be better. In any case, the burden for tracking down the updates will be much less with Stream: we'll just get the packages through our normal channels, rather than going on a hunt through CVEs and Bugzilla, then temporarily enabling the CR repos for just the period of time when we need to get the updates before disabling them again.> ... snip ...-- -- Skylar Thompson (skylar2 at u.washington.edu) -- Genome Sciences Department (UW Medicine), System Administrator -- Foege Building S046, (206)-685-7354 -- Pronouns: He/Him/His