“停服”的说法本身并不准确
CentOS 起源于 CAOS Linux 的构建,是一种基于 RPM 的 Linux 发行版,与其上游源 Red Hat Enterprise Linux (RHEL) 兼容,由 Gregory Kurtzer 于 2002 年启动。
2014 年红帽吸纳了 CentOS 社区主要成员包括当时的项目领导者、核心项目贡献者。Red Hat 和 CentOS 项目联手,目的是开发用于企业 IT 的下一代 Linux 创新技术,但 CentOS 本身独立于 RHEL。
因此,自 2014 年开始,红帽企业级 Linux 生态系统形成了 Fedora、RHEL 和 CentOS Linux 协同发展的局面,社区上游通过 Fedora 向广大开发工程师提供桌面操作系统的持续创新和技术架构整合,大约是每 6 个月发布一个版本;中游是红帽企业级 Linux,主要面向广大企业和应用开发商,特点是稳定、安全和性能优化;下游是社区领导的 CentOS Linux,面向成本敏感用户和生态开发者,特点是无成本、易获取,大约在红帽企业 Linux 发布的几个月后发布。
2020 年底,红帽宣布 CentOS 8 将在一年后结束生命周期。CentOS Linux 社区逐步停更处于下游地位的 CentOS Linux7、8 版本,社区主要工作将转向 RHEL 上游,开发维护新的 CentOS Linux 版本——CentOS Stream。
虽说这不意味着立刻不可用,但安全性将无法保证,你很难想象有多少重要服务运行在该系统之上,比如欧洲核子中心和费米实验室就曾发布联合声明表示,这一决定可能对全世界的粒子物理界产生显著影响。
谈及这个决定,红帽全球副总裁兼大中华区总裁曹衡康表示,开发者之所以喜欢 Linux,创新是很重要的原因,红帽之所以开始投入到 CentOS Stream,也是为了在创新方面加大力度。过往,很多客户和开发者基于 CentOS 加了很多功能以后不会回馈上游社区,就变成了一个分支,久而久之这些分支因为无人维护又变成了社区里的“孤儿”,这是非常可惜的,红帽希望可以恢复社区上游优先的概念,把 CentOS Stream 放在 RHEL 的前面,生态伙伴可以将创新记录在 CentOS Stream 中,Facebook、英特尔等大型 IT 公司对此非常开心,因为这意味着他们可以提早将需要的功能放到 CentOS Stream 上。
从技术角度来看,“停服”这个说法本身也不够准确,红帽中国首席架构师张家驹表示,从 CentOS 到 CentOS Stream 可以理解为是一种升级,原来的 CentOS 用户只需要几条命令就可以轻松迁移到 CentOS Stream,CentOS 此前所有的安全更新,CentOS Stream 全部具备。从这个意义上来讲,并没有停服,红帽对全球用户的服务一直都在。
从下游到中游,CentOS 换了种方式存在
那么,新的 CentOS Linux 版本 CentOS Stream 是什么?
CentOS Stream 本身介于 Fedora 和 RHEL 之间,离 RHEL 更近,相当于 RHEL 上开发的所有功能都已经在 CentOS Stream 具备,该版本同样对所有人免费开放,可保证开发者提前获得 RHEL 新特性,在此基础上来做诸如开发第三方组件等工作,拓展他们对于 RHEL 生态的影响。相当于 CentOS Stream 是 RHEL 的试验田。在此过程中 Fedora 和 RHEL 的生态定位并未发生改变。(用户可以从该地址获得 CentOS Stream 的安装介质:https://centos.org/download)
CentOS 7 将在 2024 年 6 月 30 日结束支持,鉴于 CentOS 8 已经停止支持了,未来也没有所谓的 CentOS 9,CentOS Sream 将会成为整个社区的焦点,未来 CentOS 的功能将全部转移到 CentOS Stream,红帽的投资也已于 2021 年 12 月 31 日从 CentOS Linux 转向 CentOS Stream。CentOS 原有的 SIG 组也会将讨论逐步迁移至 CentOS Stream。对于 CentOS 7、8 的用户可以继续免费使用 CentOS Stream,不会受到影响。
更改之后的好处是 CentOS Stream 的版本更新相对更快,生态伙伴的功能更新全部会体现在其中,红帽通过 CI/CD 的方式让其变成立即可用的状态。CentOS Stream 与 RHEL 完全共用一套体系,一套代码基础,两个编译系统(一个是内部编译,一个是外部编译),所有编译及测试都均相同,只是 CentOS Stream 发布的时间点比 RHEL 提前的,这也体现了红帽上游优先的原则。
如果用一句话来概括二者的关系:CentOS Stream 的目标是像 RHEL 一样稳定,这是 RHEL 的一个持续交付的版本。
可能有开发者会问:既然一致,为什么会有两个版本?在 RHEL 版本正式发布之前,CentOS Stream 可以预先开放给红帽的生态合作伙伴,如果合作伙伴有开发第三方驱动等类似诉求,可以提早加到 RHEL 进行测试,这样可以确保赶上 RHEL 正式的发布周期。
对广大开发者,特别是操作系统领域的开发者而言,CentOS Stream 是有很大好处的。对普通用户而言,如果不探究创新直接使用也是可以的。至于如何选择 CentOS Stream 的版本,可以参照 RHEL 用户的行为模式,在你认为合适的时机,更新到当前最稳定版本。
现有 CentOS 用户如何选择适合的平台?
如果希望继续使用免费版本,可以继续用 CentOS Stream 的社区版本;如果希望使用一个安全、稳定、可靠的版本,可以选择订阅版;如果希望功能和服务同样稳定可靠,可以选择付费的企业版 RHEL,这与 CentOS 的功能几乎一致,差别在有红帽工程师的支持。
当然,自从红帽宣布 CentOS 8 停服之后,业内也出现了很多其他选择,每家都给出了自己的迁移策略,在做出抉择之前,开发者不妨多思考思考。曹衡康给出了如下建议。
第一,代码是否真的开源。既然要用开源,就需要确定这个代码是否真的开源。坦白讲,市面上有很多厂商挂着开源的标志,其实不做开源,CentOS 社区就有很多拿来主义者,基于 CentOS 进行加工或者直接打包售卖,如果不遵守开源法则,将增加的代码回馈给上游社区,坦白讲就不再是开源,而是闭源。
第二,代码权益保障。确定不会侵犯他人的代码,红帽 RHEL 绝对是确定这些代码没有侵权,一旦使用(侵权的代码)被控告,赔偿额是非常高的,所以这一点十分重要。
第三,交付方式。交付方式就是有一个非常好的服务,24 小时有人提供支持和服务,有补丁的时候自动帮你做补丁等,这些企业级的服务是需要具备的。
第四,响应时间够不够快。坦白讲,过去用 CentOS 的开发者大多是 DIY,自己服务自己,顶多雇佣一些外包人员,可这些服务可能并不是企业级服务,也没有人做补丁。
第五,产品生命周期 & 技术生态。红帽过去的传统是任何版本出来之后一定是非常长的生命周期。红帽 RHEL8、8.1 或者是 8.2、8.3,整个 kernel 生命周期会有长期支持,不用担心需要不断更新、不断重新配置和做一些改变,它是非常稳定的。
第六,产品稳定性。在选择 Linux 平台时,稳定、安全、可靠都是非常重要的决策因素。
过去,我们习惯了 CentOS 就是 RHEL 的下一个版本,但是没有想过 CentOS Stream 可能会是一个更好的方法。世界在不断变化,开发流程也需要不断创新和优化,如果你正在纠结 CentOS 8 停服之后该怎么办,不妨试试 CentOS Stream。
CentOS Stream 的安装介质:https://centos.org/download
了解更多软件开发与相关领域知识,点击访问 InfoQ 官网:https://www.infoq.cn/,获取更多精彩内容!