>首页> IT >

红帽首席架构师:揭秘CentOS继任者的代码来源与迁移细节

时间:2022-04-20 17:48:43       来源:腾讯网

智东西(公众号:zhidxcom)

作者 | ZeR0

编辑 | 漠影

智东西4月20日消息,从今年起,知名Linux发行版CentOS 8停更,继承CentOS衣钵的CentOS Stream将在未来会承担CentOS的功能。

CentOS Stream是红帽在2019年9月推出的企业Linux(RHEL)的上游开源开发平台。红帽称这一版本可缩短生态系统开发人员的反馈回路,使开发者抢先体验到RHEL新版本,增强迭代时效性,以及下一个小版本RHEL做贡献。

近日,在直播栏目《八点一“课”,红帽企业开源讲堂》第二期中,红帽首席架构师张家驹解读了CentOS Stream代码来源、编译构建、持续集成和测试验证等诸多细节,讲解如何使用容器基础镜像RHUBI,并回答了一些业界普遍关心的CentOS相关疑问。

一、CentOS Stream:RHEL的持续交付版本

“CentOS Stream取代CentOS是技术、社区以及生态发展的必然趋势。”红帽首席架构师张家驹说,CentOS Stream的定位是RHEL的一个持续交付的版本。

张家驹分享道,红帽最早提出企业级Linux的概念,企业级Linux的一大特点是要实现一个操作系统长生命周期的维护管理,也就是说在上游社区,没有历史包袱、不断向前发展、可以自主的实现新功能,而不用过多考虑与老版本的兼容性的情况下,企业级产品既要保证遵从上游社区,同时又要考虑兼容性、长期稳定的应用程序接口安全性等等。

如图,Fedora是上游,更多面向桌面或个人用户场景,开源社区有新的特性,会先出现在Fedora上。RHEL是下游,CentOS Stream是RHEL的持续交付版本,CentOS Stream和RHEL的功能集是相同的,只是CentOS Stream向社区开放了,提供了广大开源社区向RHEL贡献的路径。

RHEL的全职开发者也会把代码提交到CentOS Stream。无论是CentOS Stream还是RHEL,都要经过相同的质量保证体系,才能被发布。

张家驹认为,相比中游,CentOS Stream更接近于下游,将它称作“滚动更新的版本”的表述也是不准确的。

每次滚动更新可能导致新老版本不兼容,比如基于开源做二次开发,要在社区上游版本选择一个版本作为基线,之后如果发现不满足业务需求,就要针对客户需求做一些改动。而当过段时间要发一个新版本时,之前作为基线的上游发生了很大变化,这时需做一个抉择,是丢掉自己的改动、基于新的上游版本把原来做好的东西再重新做一遍,还是基于自己的版本,把上游社区新的东西反向移植回来?

红帽的CentOS Stream和RHEL是后者,而滚动更新既不是前者,也不是后者,相当于直接把上游版本拿过来用。

二、CentOS不存在断供,CentOS Stream稳定性不输RHEL

对于许多用户关注的CentOS是否存在“断供”风险问题,张家驹回应称:“不存在断供。”

“CentOS Stream的稳定性实际上是跟RHEL是一致的。”他谈道,CentOS Stream和RHEL代码最初是从Fedora里面拿下来,早期bootstrap阶段两条线交错,到pre-release阶段就变成两条平行线了,此时代码完全一致。

进入开发流程,RHEL和CentOS Stream用的是同一份代码。也就是同一份代码进到了两个不同的git,一个是CentOS Stream的,一个是RHEL的,经过一系列的测试后,最终产生成品。

2017年前,RHEL研发流程类似于瀑布式开发,整个过程可能要经历2~3个月,有很多弊端,开发人员经常因为要满足大版本的协同,而影响了他当前正在做的一些开发工作。

红帽在RHEL研发中引入了CI/CD、DevOps的开发方式。红帽研发内部有一个DevOps团队,负责为内部搭建这种平台、框架,让它能够很好的支撑红帽不同的产品线以DevOps的方式进行开发。

这种快速迭代的开发方式也类似于开源社区倡导的勤发布、早发布,只要做提交,不能是随随便便把代码提交上去,而要经过很多严格的、预设好质量保证的测试,并不断完善测试集。

gate可以被理解为质量保证的一个关口,只有经过gate这一关,质量才满足RHEL产品发布要求,只有满足了RHEL的质量标准,代码才可以被提交到CentOS Stream的git tree。

可以看到,CentOS Stream和RHEL走过了相同的质量保证步骤,因此它们的质量、稳定性、可靠性是一致的。

CentOS Stream不是RHEL的beta测试版,其开发方式已经从传统转向敏捷。beta测试版如果有些功能不稳定,这些功能会被最终拿掉。而CentOS Stream里的东西要经过RHEL的CI/CD,是和RHEL同步发展的,RHEL的每一次更新与版本迭代,都通过CentOS Stream向大家开放。

基于RHEL的UBI容器基础镜像是免费的,使用该基础镜像打包应用时,这个基础镜像已经配置了默认可免费使用的软件包源,里面的软件包都来源于RHEL,而不是CentOS。

结语:迁移低门槛,两条命令即可平滑迁移

CentOS 8停更了,怎么办?对此,张家驹展示了两条命令。只要敲这两条命令,就能实现无缝迁移,将CentOS操作系统变成CentOS Stream 8。

当然,如果此前系统运行着非常关键的企业级应用,在迁移前做备份、快照等操作不足为过。对于此类客户,红帽也提供有一套完整的迁移方案。比如一旦某个地方出问题,系统可以回溯到之前的版本。

随着更多用户迁移至CentOS Stream,这个平台将开始继承CentOS的衣钵,为RHEL生态系统提供持续的创新动力。

关键词: 红帽首席架构师揭秘CentOS继任者的代码来源与迁移细节