“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

被称作 CentOS 未来的 CentOS Stream 是个啥?

  • 2022-06-09
  • 本文字数:4000 字

    阅读完需:约 13 分钟

被称作CentOS未来的CentOS Stream是个啥?

2020 年底,红帽宣布 CentOS 8 将在一年后结束生命周期。自此,开发者圈子里围绕这件事情就出现了很多不同的声音,有主张立刻迁移的;有观望不决的;有转而付费版的;也有质疑红帽是不是准备割韭菜的,这件事情的热度与 CentOS 的受喜爱度成正比,以至于这个决定公布一年多了还在被讨论。

00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    本期《极客有约》,我们邀请到了红帽首席架构师张家驹和我们聊聊“停更”事件始末以及被称作 CentOS 未来的 CentOS Stream 到底是什么。

     

    InfoQ:红帽当时为什么决定结束 CentOS 8 的生命周期?

     

    张家驹:CentOS 8 的停更实际相当于是把 CentOS 改了一个名字——CentOS Stream ,这类似于好多开源项目在运作过程中也经常改名字。比如红帽 OpenShift 的社区版 origin 现在叫做 OKD。事实上,CentOS Stream 继承了 CentOS 的衣钵,与 CentOS 同源。我们认为这就是一个正常的版本迭代,或者说是社区项目的迭代,没想到在市场上造成了这么大的反响。

     

    InfoQ:为什么红帽没有在决定公布之初做出来回应?

     

    张家驹:2000 年之前,大家对红帽的印象还停留在卖软件安装光盘。2000 年左右,红帽开始做企业级 Linux,至今已经 20 年。在这之中,我们发现企业的诉求主要是稳定,比如需要一个长生命周期的产品。相对闭源,开源之所以有这么多创新很大程度上是因为包袱小,可以快速将创新的想法加进来,达到更完美的实现,这也是微软、英特尔 X86 架构中寄存器等设计看起来没有那么完美的原因,主要是历史包袱较重,更新时需要保证兼容性。

     

    在红帽提出做企业级 Linux 之前,很少有人将 Linux 直接用于企业生产,企业对于安全、稳定等还是有担忧的。红帽提出将 Linux 送进企业生产环境,主要做法就是反向移植,基于社区某一版本拉出一个分支,在该分支上不断优化和工程化改进,如果有一些创新的想法也加进来,类似 SUSE 等做企业级 Linux 的基本都是这样的思路。这让我们的开发模式在很长一段时间内类似瀑布式开发,我们在这个过程中不断地将整个版本做稳定,这是一种传统的开发方式。

     

    2017 年左右,我们认为这个传统的开发方式有点不合时宜,因为这种方式的迭代周期比较慢,现在都讲究 DevOps、微服务,开发周期越来越短,我们也在思考操作系统内核包含其上软件的开发速度有没有可能提升,我们在开发流程中加入了 CI/CD,且每天晚上都对当天的提交用例做自动化测试(Nightly Builds),第二天就发布一个新的版本,我们将这个过程叫做 Stream。


    2018 年左右,CentOS Stream 的雏形就已经有了,但并没有在 CentOS 社区里面公布这种流式的开发模式。随着这几年的孵化并综合考虑了各方面因素,我们认为 CentOS Stream 可以更快捷稳定的发布 Linux 版本,所以相对于我们把 CentOS 升级到 CentOS Stream。


    在我们看来,CentOS Stream 的稳定性不输于 CentOS,很多人对此有疑问,认为这是给小白鼠用的,其实不然,Fedora 才是 RHEL 的实验场。从正常的逻辑来说,我们也不需要两个实验场。

     

    InfoQ:非瀑布式开发会影响版本的稳定性吗?CentOS Stream 在企业级 Linux 生态系统中的地位是什么?

     

    张家驹:内核确实是比较讲究稳定性的。早些年,Linux 内核的补丁贡献人数较少,相对来讲企业级的 Linux 系统更新不会太快。如今,越来越多的开发者加入 Linux 内核贡献的队伍,为了让新特性进入主流版本的速度更快,我们需要采取更加快速的方式进行开发,否则很难跟上这个节奏,这对红帽来说是一件棘手的事情,我们需要优化流程让其更加快速,从 RHEL 8 开始就逐渐采用这种新的开发模式,至于这种方式是否一定比传统的瀑布式开发更好是一个更大的话题,我们认为通过更优的流程和更高程度的自动化可以实现稳定性。

     

    不管是否推出 CentOS Stream,如今操作系统内核的开发方式都已经是 CI/CD 的方式,红帽的 RHEL 8 和 9 都是按照这种方式做的,稳定性不需要太过担心。

     

    至于 CentOS Stream 在 Linux 生态中的位置,一般来说, Fedora 是中上游,RHEL 是下游,CentOS Stream 是中游。事实上, Fedora 完全从社区里来,红帽做的更多是打包和简单测试,对其稳定性及可靠性方面的工作做得是比较少,遵循滚动更新的方式,每半年发布一个新版本,新版本与旧版本之间保有基本的兼容性,也可能会丢弃一些老版本中不好的地方,这恰恰是企业级开发不能接受的。

     


    RHEL 则是基于 Fedora 某个特定版本拉取分支,逐渐在这个版本上做增强,保证新旧版本之间的兼容性,并保证最终版本的稳定性。CentOS Stream 则与 RHEL 的版本相对应,其 Git 提交记录完全一致,二者通过同样的构建流程、同样的测试用例。简单来说,只有通过全部的测试用例,CentOS Stream 新版本才会发布,这些测试用例与 RHEL 可能重合,也可能不重合,但我们认为只有全部通过才是稳定的,才可以进入下一步,RHEL 也是如此,二者在稳定性上保持一致。



    那么,既然二者一致,为什么还区分中游和下游呢?所有在 RHEL 做的改动都会先进到 CentOS Stream 里面,方便社区生态伙伴一起共建,并让所有开发者第一时间享受到最新版本。

     

    InfoQ:CentOS Stream 与 RHEL 版本之间的对应关系是什么?

     

    张家驹:CentOS Stream 8 和 RHEL 8 是对应的,不过 RHEL 可能还有 8.1、8.2、8.3......这其中的区别是 CentOS Stream 永远只对应 RHEL 最新的稳定版。一般来说,我们的更新节奏是每六个月会更新一个小版本,假设当前 RHEL 的最新稳定版是 8.3,那么 CentOS Stream 一定是和该版本对应的。



    很多传统企业可能基于闭源软件的认知,觉得新版并不是最稳定的,但其实 CentOS Stream 是最新、最稳定的版本。这其中还有一个问题是对已经将 CentOS Stream 部署在生产环境的企业而言,半年更新一次太过频繁,那应该怎么办?

     

    大部分企业会一直沿用上线之初选择的版本,除非出现安全问题才会想到更换,即便是这种模式,使用 CentOS Stream 同样行得通,企业可以自主选择在需要的时候更新版本。

     

    至于二者的区别,RHEL 会对单个版本提供长系统更新支持,最长可持续两年,以保证旧版本的安全可靠。虽然新版本在安全、稳定以及一些新特性方面的支持更到位,但企业不是一个人的企业,一旦因为更新发生问题很可能结果是不可逆的,所以很多企业在这方面会选择偏保守的方案。

     

    InfoQ:兼容性是有保证的吗?

     

    张家驹:兼容性肯定是有保证的,但用户的应用因为是闭源的,所以我们无法确定其到底调用了内核中的哪些模块,一个大的版本范围,比如 8 这个大版本内肯定是保证兼容的,红帽也做了很多工程上的工作,让社区可以没有包袱的往前冲,红帽在背后提供支持,最长可以到 13 年。

     

    InfoQ:据了解,Facebook、英特尔等厂商已经参与到 CentOS Stream 的社区共建中了,他们主要在做哪些事情?

     

    张家驹:英特尔对开源项目一直是非常拥抱的态度,特别是 Linux 内核相关的,总体代码贡献量超过红帽,Linux 主要基于 X86 架构起家,英特尔在其中有很重要的贡献。Facebook 则主要是做一些满足自身业务发展的特色化服务,并回馈给社区。

     

    对 Linux 发行版厂商而言,我们做的事情更多是为了满足大众的诉求,而互联网厂商基于各自的业务特点对内核有更高要求,往往会通过更改上层应用的方式达到内核与上层应用的高效协同,或者通过设计一些专有硬件的方式提升效率。在 CentOS Stream 发布之后,Facebook 第一时间就进行了切换,并逐渐把自己的一些能力开放出来。

     

    InfoQ:原 CentOS 用户如何切换至 CentOS Stream?

     

    张家驹:简单来说只需要通过两条命令就可以迁移至 CentOS Stream,但不同企业对生产环境、准生产环境、研发测试环境的定义不尽相同,切换时需要结合实际的业务场景来判断。



    这是两条核心命令,但企业要进行迁移肯定不是这么简单,数据备份是最基本的,必要时可能需要回退,红帽也公布了非常详细的迁移步骤,有需要可以自行查看。而且从理论上他也不应该有区别的,因为这个东西本身都是一样的,它怎么可能有区别?即使你说定义参数,这不是一个编译系统,编译参数可能会有变化,但是真的会有变化吗?应该没有多大,因为你的代码都是一样的,应该是没有什么区别的,本质上和软件更新没有任何区别,并不会引入更多风险。

     

    从客观角度来看,CentOS Stream 在很多场景均可稳定运行,如果切换过程遇到问题依然可以在红帽的知识库检索答案,只要是 CentOS Stream 中出现的 Patch,RHEL 中肯定也会有。如果是系统 Bug,可以提交一个 Bug report,我们会针对性的解决问题。

     

    InfoQ:CentOS 社区的开发者、项目管理委员会、SIG 组目前主要在做什么样的事情?

     

    张家驹:对这个开源项目而言,社区没有那么复杂,主要是董事会和 SIG 组两部分治理机构,董事会基本都是像红帽这样的独立董事。技术方面的决策则通过 SIG 组的方式进行,红帽的工程师也会参与讨论,在社区里面和大家一起交流。

     

    如果开发者对这些 SIG 组的讨论感兴趣,可以通过 CentOS.org 了解现有的 SIG 组分布,有针对新技术的、也有针对特定行业的,比如汽车行业,也有如何跟社区沟通的 SIG 组。如果大家有更好的想法也欢迎提交申请。


    InfoQ:CentOS Stream 为什么不直接从红帽的企业版编译?

     

    张家驹:无论是红帽的企业版还是 CentOS Stream,代码和走过的测试用例都是一样的,无非最终一个包打了红帽企业级产品的签名,我们更想表达的意思是 RHEL 里面所有的内容都可以在 CentOS Stream 里面看到,如果反过来,用户难免觉得红帽是不是自己留了一部分。

     

    InfoQ:对开发者而言,如何选择在红帽的哪个平台开发?哪个平台部署?

     

    张家驹:开发层面,很多发烧友可能习惯采用 Linux Destop;桌面开发可以选择 Fedora,里面的所有包都是最新的;大部分情况下,服务器端开发,CentOS Stream 是很好的选择,因为它不像 Fedora 那么激进,包也很全,又具备 RHEL 的稳定性,更新又足够快,特别是 8 之后的版本,不同语言的库包括容器化应用开发所需的镜像都是存在的,是很省心的选择。当然,这些都是免费的。如果需要红帽提供一些服务,也可以选择我们的企业级版本。

     

    InfoQ:CentOS Stream 未来维护和持续更新方面的规划?

     

    张家驹:CentOS Stream 是一个长期维护更新项目,毕竟 RHEL 也依赖于此,因此 CentOS Stream 会一直存在,大家不用担心生命周期相关的问题。

    2022-06-09 10:467733
    用户头像
    赵钰莹 InfoQ 主编

    发布了 870 篇内容, 共 598.4 次阅读, 收获喜欢 2669 次。

    关注

    评论

    发布
    暂无评论
    发现更多内容

    AppLink结合金蝶云星空作订单信息同步流程

    RestCloud

    零代码 APPlink

    透过一台电视,看到万家星闪

    脑极体

    通信

    PDF转Word,1行Python代码就够了,免费用

    程序员晚枫

    Python PDF word 自动化办公

    当前各类厂商纷纷入局低代码赛道,关于低代码未来的发展前景如何?

    代码生成器研究

    乌卡时代确定性稀缺,企业多云战略最需看中什么?

    轶天下事

    2024广州国际热流道系统及应用技术展览会

    吹吹晚风

    测试人员在 Scrum 中的角色是什么?

    敏捷开发

    项目管理 Scrum 敏捷开发 自动化测试 bug管理

    2024年企业软件定制开发必须了解的4大趋势

    SoFlu软件机器人

    数字化转型 企业 定制软件开发 技术服务

    前言 | AI工程化部署

    AIWeker

    AI AI工程化部署

    2023 CCHIO | 共襄盛会,为肿瘤防治创新发展贡献觅健力量

    联营汇聚

    2024深圳国际新能源汽车功率半导体技术展览会

    吹吹晚风

    程序员指南|学会与大模型相处,提升个人开发效率

    SoFlu软件机器人

    程序员 软件开发 人工智能「 ChatGPT

    以太坊铭文聚合交易平台 Scorpio,铭文爆发的新推手?

    股市老人

    还在为考试重题、错题而头疼?大可不必!时习知新功能了解一下!

    轶天下事

    如何打破资产盘点壁垒,用友BIP资产云来支招!

    用友BIP

    资产盘点

    编程新手如何提高编程能力?

    代码生成器研究

    2024深圳国际触控面板及技术展览会

    吹吹晚风

    做好数据治理,推动国有企业数据资产化加速落地!

    用友BIP

    数据治理 数据资产入表

    提升编程效率:软件工程师必备的10个Git命令

    南城FE

    git 前端 软件工程 后端 代码

    2024深圳国际电子薄膜开关及面板展览会

    吹吹晚风

    低代码究竟能干什么?

    代码生成器研究

    2023中关村论坛系列活动——英特尔智能医疗健康创新合作论坛在京成功举办

    E科讯

    让公有云服务“宁安如梦”的“定心丸”在哪里?

    轶天下事

    2023-11-22:用go语言,给你一个长度为 n 下标从 0 开始的整数数组 nums。 它包含 1 到 n 的所有数字,请你返回上升四元组的数目。 如果一个四元组 (i, j, k, l) 满足

    福大大架构师每日一题

    福大大架构师每日一题

    国际版Amazon Lightsail的功能解析

    穿过生命散发芬芳

    AWS Lightsail 轻量级服务器

    SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示

    小万哥

    MySQL 数据库 sql 程序员 后端开发

    编程到底难在哪里?

    代码生成器研究

    Docker常见指令以及常见容器安装。

    百度搜索:蓝易云

    Docker 云计算 Linux 运维 云服务器

    阿里云崩了:企业未来该怎么选择云厂商?

    轶天下事

    华为数字治理经验,首次披露!

    轶天下事

    Kubernetes中的重要概念。

    百度搜索:蓝易云

    云计算 Kubernetes 运维 云服务器 linux\

    被称作CentOS未来的CentOS Stream是个啥?_语言 & 开发_赵钰莹_InfoQ精选文章