微信扫一扫
1589
1591
4777
白银会员
注释 1 这里需要简单介绍一下红帽 RHEL 的开发过程的变化,在 CentOS Stream 之前,RHEL 用的还是传统的瀑布式开发模式,当一个合并请求(Merge Request)进来,审核通过以后,需要把这个补丁提交到发行版的代码仓库,进入到组合阶段再进行测试,如果失败需要重新进行测试和验证,如下图所示。 在以前这个周期会很长,原因在于 Linux 操作系统会包含数千个软件包,传统模式下,都是每隔固定的时间,将积累下来多次提交的代码集中进行组合。如果顺利通过还好,如果失败就需要将失败的部分返工,而其他的相关的组件需要等失败的组件提交新的补丁以后重新再次进行组合。 因此,其他测试通过的项目的开发者有可能会在很长一段时间后,为了配合测试失败的项目的代码更改,不得不从正在进行的其他工作中抽身出来,重新返工修改自己那部分的代码,开发人员通常都需要并行处理很多工作,打断正在进行的工作是效率非常低下的行为;此外,为了配合测试,有可能还需要重新搭建测试环境;并且,操作系统最终发布之前,多个项目之间也需要相互等待,彼此之间的协调性很差。所有这些都会对发行版的发布进度造成延误,在过去这样一个测试周期往往需要耗时 2~3 个月。 缩短这个周期最好的办法就是在补丁进入发行版代码库之前就完成补丁的测试工作,测试通过以后再提交到发行版代码仓库,完成发行版整体的组合工作和确认。在这种模式下,测试范围缩小到具体的某个软件包,也只会涉及到与之有关的开发人员,这就大大的提升了工作效率。 在对操作系统进行持续集成的关键在于,需要有一种控制机制,能够鉴别每个项目提交的代码在运行了 CI 系统的测试以后,能够根据测试结果判断这些代码是否可以进入到最终的发行版代码树中。这就是闸门的作用,当测试失败的时候,CI 系统可以防止这个中断影响到其他的包。它就像是机场或者火车站的验票口一样,只有持有有效票据的人才可以通过,对于代码来说,通过闸门的唯一途径就是拿到通过 CI 测试的结果。之后,就可以入库并进入到镜像打包的阶段。 基于测试结果,闸门可以根据开发者事先的定义,引导通过测试的代码进入到不同的代码仓库,比如测试版代码仓库或者是稳定版代码仓库。 以 RHEL 8 为例,已经实现了大部分操作系统的构建打包过程的 CI/CD。如下图所示,在图中实线是还需要人手工参与的部分,而虚线是已经实现了自动化的部分。因此以 CI/CD 的方式开发操作系统是“随时就绪的 RHEL”的基础。
注释 2 下图是 CentOS Stream 和 RHEL 的开发流程,两个发行版的源代码都是来自同一个源代码库。当有拉取请求进来,被项目负责人批准以后,会分别进到 CentOS Stream 和 RHEL 的发行版代码库;触发构建操作,根据不同的版本打上不同的标签,CentOS Stream 会被打上 koji标签,而 RHEL 会打上brew标签;同样的代码只有同时通过了 CentOS Stream 和 RHEL 的测试流程,闸门才会开启并让代码进入到下一个候选环节;在候选环节会做代码的验证,同样的,CentOS Stream 和 RHEL 中的代码都必须通过验证,才可以进入到发行版的组合阶段。 因此,从开发流程上看 CentOS Stream 和 RHEL,虽然可能在测试用例和规则上不同,但是考核的标准是“与”的关系,因此稳定性是一致的。
注释 3 在 RHEL 的每一个大版本中会有很多小的升级版本,比如 RHEL 7、RHEL 8 是大版本,而对应的像 RHEL 7.6、RHEL 8.4 这样的是 7 系列和 8 系列里对应的小版本。红帽内部称这种小版本为 RHEL X.Y。 在默认情况下,如果我们通过红帽官网在线升级以后,永远只能是获得大版本里最新的版本。比如,你现在有台系统的版本是 RHEL 8.2,而假设现在 8 系列最新的版本是 8.5,那么通过 dnf update升级以后,你被升级的系统版本将是 8.5。这通常不会有什么问题,然而对于一些有特殊要求的客户,比如有版本基线管理要求的,或者是出于特殊的兼容性稳定性考虑的客户,是不希望看到操作系统版本因为打补丁发生变化的。 针对这种需求,红帽有 EUS Addon 服务(即文中提到的 RHEL X.Y Errata,在红帽也被称为 RHEL X.Y.Z),如果有了 EUS 订阅,就可以把系统注册到某个小的升级版本,比如 RHEL8.2,因为 EUS 的生命周期是小版本发布之后维持 2 年,从下图可以看到,在 2022 年年中以前,RHEL 8.2 EUS 的生命周期结束之前,系统通过网络在线升级是可以一直停留在 RHEL8.2 这个版本的,之后你可以选择跳跃到下一个 EUS 版本,比如 8.6。 针对 EUS,红帽会向后移植主线版本中的红帽定义的级别为关键(Critical)和重要(Important)的安全勘误公告(RHSA),以及红帽选择的优先级为“紧急(Urgent)”的程序漏洞修复公告(RHBA)。其他勘误公告可根据具体情况发布。 因为 CentOS Stream 只有一个主线版本,没有小的升级版本,也没有 EUS 的服务,因此作者在其博文中说:“Stream 中唯一不能直接和立即看到的是我们在已经发布的 RHEL 的小版本扩展升级(EUS)中做的工作(即上图中显示 RHEL X.Y Errata)”。
注释 4 关于上文中提到的“不能被立即查看需要签署 NDA 以及禁止公开”的原因在于:修复安全相关等问题时,如果这些漏洞是社区未知的漏洞,出于对最终用户的保护,在修复补丁正式发布之前,红帽不会公开相关信息,以避免被别有用心的人利用。这些信息在红帽正式发布补丁之前,只能在和红帽签署了 NDA 的合作伙伴内部共享,在补丁发布之后红帽会公开补丁的详细内容。
注释 5 对于 RHEL 的小版本,在下一个小的升级版本发布之前会作为主线与 CentOS Stream 保持一致,但是当新的小版本发布以后,如果上一个小版本属于有 EUS 服务支持的,那么从这个时间点开始,上一个小版本将进入到 EUS 代码分支中。 以 RHEL 8.2 为例,它在 2020 年年底进入到 EUS 阶段。假设 2021 年在 CentOS Stream 8 和 RHEL 8 中向后移植了一个上游社区的一个重要更新,红帽也会将这个更新向后移植到 8.2,但是 8.2 的这个向后移植的操作在 CentOS Stream 中就体现不出来了,或者说从 CI 角度来看,这个向后移植操作与 CentOS Stream 的 CI 没有直接关系。
CentOS Stream 是 RHEL 稳定可靠的持续交付产品。
使用道具 举报
0
272
582
高级会员
284
502
1288
青铜会员
285
520
1327
312
626
280
545
1371
311
633
本版积分规则 发表回复 发新帖 返回列表 回帖后跳转到最后一页
查看:3805 | 回复:7
“荷”你在一起,便是
夏日傍晚的绚丽晚霞,如同一幅美丽的画卷,展示了碧幕下的霞光和一缕红光,让人陶醉在
8月28日,天气还是很热。不知是年岁长了的缘故,还是气候确实变热了,总觉得小时候的
邳州市教育局是市政府工作部门,为正科级。机关行政编制21名。设局长1名,副局长4名;
近日,四川峨边彝族自治县人民法院依法公开开庭审理了一起引发社会广泛关注的校园食品
8月22日至24日,由邳州市交控红色文化发展有限公司、邳州市交控远通旅行社携手邳
8月19日,2025年度“爱心助学 圆梦青春”助学仪式举行。市委副书记、政法委书记韩冬梅
刚刚 邳州市人力资源和社会保障局 邳州市教育局 发布最新公告 决定面向社会公开招
为进一步维护整洁有序的市容环境,消除道路交通安全隐患,近日,邳州市城管局开展流动
8月20日,交控慧生活社区店迎来周年店庆,标志着邳州交控集团以“快递进村”为核心
苏公网安备 32038202000401号
首页
论坛
登录
发布
资讯
扫一扫,关注我们
下载APP客户端