自 1994 年面世以来,红帽 Linux 已经陪伴开发者们走过了将近 30 年的旅程。2014 年红帽吸纳了 CentOS 社区主要成员包括当时的项目领导者、核心项目贡献者。Red Hat 和 CentOS 项目联手,目的是开发用于企业 IT 的下一代 Linux 创新技术。这些年,我们看到开源模型继续蓬勃发展,推动了 Linux 容器、Kubernetes、微服务、无服务器等的兴起。鉴于社区推动的创新步伐迅速,社区领导层在 2019 年决定向 CentOS Linux 社区引入一个新模式:CentOS Stream,将社区工作转向上游。CentOS Stream 是一个面向开发者的发行版,旨在帮助社区成员、红帽合作伙伴和其他人在更稳定和可预测的 Linux 生态系统中充分利用开源创新。
对最终用户影响最大的是 CentOS Linux 7 和 8 逐渐停止维护和更新。现有 CentOS Linux 操作系统用户如何应对?有哪些策略和实践经验可以借鉴?面对广大用户和开发者的普遍问题,亚马逊云科技 Tech Talk 特别邀请红帽高级解决方案架构师朱贺带来主题为《CentOS 操作系统停止维护后的对应方案与技术实践》的相关技术分享。
很多开发者无法理清 Linux 生态系统中各种版本之间的关系。那么我们首先做一个回顾,从 2014 年开始,红帽企业级 Linux 生态系统形成了 Fedora、RHEL 和 CentOS Linux 协同发展的局面。社区上游通过 Fedora 面向广大开发工程师提供桌面操作系统的持续创新和技术架构整合,大约每 6 个月发布一个版本;中游是红帽企业级 Linux,主要面向广大企业和应用开发商,特点是稳定、安全和性能优化,产品迭代和发展节奏有条不紊;下游就是社区领导的 CentOS Linux ,面向成本敏感用户和生态开发者。CentOS Linux 版本,产品迭代节奏紧跟 RHEL,用户在零成本获取的同时,一样可以享受到红帽 RHEL 的产品优势。
7 年后, CentOS Linux 社区在 2021 年开始做出调整,逐步停更处于下游定位的 CentOS Linux 7、8 版本。CentOS 社区主要工作将转向 RHEL 上游,并开发维护新的 CentOS Linux 版本——CentOS Stream。
CentOS Stream 是一个 Linux 开发平台,来自 CentOS 项目,旨在增加透明度和围绕 Red Hat® Enterprise Linux®开发过程的协作。CentOS Stream 对任何人开放,所有人都可以免费使用。它主要面向开发人员、合作伙伴和最终用户。这些角色都能够通过 CentOS Stream 提前获得 RHEL 新特性,在此基础上来做诸如开发第三方组件等工作,拓展他们对于 RHEL 生态的影响。相当于 CentOS Stream 是 RHEL 的持续交付版本。在此过程中 Fedora 和 RHEL 的生态定位并未发生改变。用户可以从下面的地址获得 CentOS Stream 的安装介质:
https://centos.org/download
CentOS 社区由下游转到上游,发布的 CentOS Stream 也会给下游原来在使 CentOS 的用户带来一些影响。目前 CentOS 各版本的变化情况如下:
CentOS Linux 6 早在 2020 年 11 月就已停更;
CentOS Linux 8 在 2021 年底停止更新;
CentOS Stream 8 将在 2024 年 5 月 31 号停止支持,它继承于 CentOS Linux 8;
CentOS Linux 7 用户较多,这个版本将在 2024 年 6 月 30 日停止支持;
CentOS Stream 9 于 2021 年二季度发布,红帽正在 CentOS Stream 9 的基础上开发 RHEL 9 产品;
未来社区不会再有 CentOS Linux 的新版本,只有 CentOS Stream 不断向前发展。
考虑到上述情况,红帽建议广大 CentOS Linux 用户提前行动起来,尽快选择一条适合的路径开始迁移工作。
在开展迁移工作时,对于不同的用户,应采用不同的迁移策略。在企业用户迁移至新操作系统时,主要会考虑成本因素、平滑过渡和服务托底三个角度,进而拆分为八个关键因素来做出决策:
迁移转换简单,业务中断最少
运行稳定,奠定扎实的 IT 基础
生产级,稳定性、支持和安全性
专业支持为您 IT 团队保驾护航
庞大合作伙伴生态支持多种供应商选择
生命周期支持和版本灵活性的长期价值
清晰的产品路线图值得您信赖
主动分析环境减少企业的风险
对于 CentOS 用户来说,可能考虑的几种转换策略包括:
生命周期结束后直接下线,适用场景极少。
转向其他社区免费版本,如 Rocky Linux、Ubuntu 或国内的社区版本。但这条路径风险较大,因为这些社区版本与 CentOS 存在很多区别。
转向国内外发行版,如 SUSE、Amazon Linux 2。
转向红帽主导的社区或发行版,如 CentOS Stream 或 RHEL。
如果用户只是想在操作系统环境上做一些功能验证和兼容性验证工作,或者准备以 CentOS 为基线开发自己社区的 Linux 版本,强调代码贡献和修复问题,那么转向 CentOS Stream 就比较合适。但考虑到该版本生命周期非常短暂、很难满足合规要求、未经安全认证、更新节奏不规则、缺乏商业支持等问题,红帽不推荐在生产环境中运行 CentOS Stream。
基于 2021 年后 Linux 社区新的上下游关系,对于桌面使用场景和操作系统开发需求,红帽推荐用户使用 Fedora 做测试开发版本基线,在 CentOS Stream 上做和红帽未来企业版 Linux 兼容的软件组件开发工作。生产环境关键业务负载推荐在企业级 Linux RHEL 上运行。另外,一个新的方向是容器打包、制作过程,需要基础镜像作为底座。为此红帽提供了基于 Linux RHEL 的统一基础镜像,即为 UBI,方便用户在标准的底层容器 OS 之上构建统一安全的企业应用并分发。
亚马逊云科技从 2008 年就成为了红帽认证的全球云服务提供商(CCSP),在亚马逊云科技上可以通过多种方式使用红帽 RHEL 操作系统产品。第一种叫做 PAYG 方式(“随付随用”),直接在亚马逊云科技上面选择相应的实例订阅即可。另一种叫做 BYOS 方式,即用户自带的订阅上云,这种方式更适合已经购买了红帽订阅的客户,实现混合云部署策略。
亚马逊云科技红帽 RHEL 产品有三条主线:
标准的企业版 Linux 订阅,是技术标准 RHEL 版本。
针对 SAP Hana 的专有版本。
用于容器化应用的 RHEL UBI 产品。
此外还有 OpenShift 产品、红帽中间件、容器化存储都可以在亚马逊云科技上进行认证和测试。
红帽 RHEL 和亚马逊基础设施环境结合在一起,能够带来相较传统基础设施环境更高的性能优势和构建稳定性。用户在云环境上可以使用灵活、稳定、高效的运行环境,来构建面向未来的混合云基础设施,自由选择哪些应用部署在本地,哪些应用部署在公有云上,将两者更好结合在一起。
亚马逊云科技提供的 RHEL 环境经过优化,可以为用户提供开箱即用的最佳体验。企业级 Linux 特性也被带到公有云上,可以在云上运行计算负载。亚马逊云科技业务分析能力也能够与 RHEL 结合,帮助用户更好地了解环境运行状况。在一些比较弹性的使用场景当中,在云上安装应用能够节省资金和成本,同时保证应用最佳性能。
在亚马逊云科技上,RHEL 还能够提供高可用性(HA),为关键生产负载提供可靠性、可用性与可伸缩性。通过 HA 能够解决单点故障问题,自动将故障切到新节点上,保证灵活性和不间断服务。
用户在亚马逊云科技上使用企业版 Linux 运行关键业务应用会有很多利处,总结为以下几点:
红帽企业级 Linux 有长达十年的主要版本生命周期维护,包括更高级的安全功能、补丁、相关指南和技术支持工作。红帽还提供一些就地升级工具,使迁移工作可以顺畅便捷。
RHEL 有一个可以预测、对于生产环境友好的发布节奏,方便用户规划自己的版本升级策略和路径。同时 RHEL 会提供完整的文档和支持,帮助用户更好地规划更新。
RHEL 在安全性和合规性方面带来很多企业级内置功能,比如自动化工具、定期主动版本发布和更新通知、推送,还有可以方便查阅相关问题和资料的知识库。另外红帽订阅还有用于管理、自动化、和预测分析的红帽 Insights 工具。
红帽 Convert2RHEL 工具可以让用户在 CentOS 环境上做原地升级,简化升级路径。
对于广大 RHEL 用户,亚马逊云科技上的红帽 RHEL 提供了覆盖全面、非常灵活的订阅计划。尤其面向个人开发者和企业开发者,红帽都准备了 0 成本的开发者可用订阅。
如果用户选择从 CentOS 转向 RHEL,亚马逊云科技提供一些工具来帮助用户完成任务,确保用户享受到红帽订阅的价值。
主要的转换途径有两种:
公有云预构建镜像。客户在亚马逊云科技的虚拟实例上申请节点时选择 RHEL,安装的虚拟环境就使用了公有云预构建镜像。亚马逊在自己的云市场里提供了一些 CentOS 预构建镜像,所以在云上使用了 CentOS 的用户只需在云市场里面选择相应的 RHEL 镜像,部署新的实例,就可以快速切换到 RHEL 上。切换镜像需要重新部署相关应用、备份和导出数据,存在一些迁移工作量。
针对本地数据中心使用的 CentOS,红帽提供一些相关的迁移服务和工具支持,帮助用户通过自服务方式和现场实施方式迁移到 RHEL 上。如果用户同时要部署到亚马逊云科技,亚马逊云科技会提供一些自定义云的 RHEL 镜像应用工具和方式,帮助用户制作 AMI 的亚马逊云科技应用镜像,让用户可以自定义镜像上云,同时可以满足 RHEL 相关应用上云的需求,一举两得。
红帽引入了 Convert2RHEL 标准化工具来简化迁移工作,它也支持从 Oracle 的 Linux 迁移到 RHEL 上。Convert2RHEL 会自动根据 CentOS 版本确定转换路径,用红帽原厂 RHEL 工具包替换 CentOS 社区包。转换结束后操作系统会重启,完全替换成 RHEL 版本并激活,完成红帽 RHEL 订阅。对于 CentOS Linux 7 或 Oracle Linux 7,转换目标系统为 RHEL 7;对于 CentOS Linux 8 或 Oracle Linux 8,转换目标系统为 RHEL 8。
这种切换方案将带来很多收益:
无需重新部署操作系统或应用程序,可以原地升级;
原有环境配置都被保留;
内置故障安全和灾难恢复,支持版本回退;
迁移过程非常短暂,维护窗口较小;
转换后立即激活红帽 Linux 订阅,简化操作步骤;
通过此过程可获取最新的 RHEL 版本。
朱贺现场演示了通过 Convert2RHEL 快速将 CentOS 操作系统转换为 RHEL 的过程。
由于上层应用与操作系统的依赖程度不同,当升级系统对前者的影响比较大时,用户还需要一个实施迁移过程。例如迁移之前会对有些应用进行新环境的兼容性测试,应用在迁移过程中可能需要做拆分、聚合等重构过程。重构过程中可能做一些应用开发工作,做一些改造或优化,或者老旧硬件迁移到新硬件上,等等。实施迁移流程就是用来应对操作系统迁移所带来的各类问题。
红帽会帮助用户进行项目迁移引导或者规划,提供一系列帮助和全方位管理服务。红帽在数据中心运营环境基础设施方面会帮助用户做评估梳理,在运行时方面帮助用户考察应用兼容性、迁移方案可行性,在应用开发优化方面也有相应的咨询协助。
针对迁移过程中跨平台、应用程序回收、部署设计等问题,红帽都可以提供现场运维保障支持,保证用户平稳过渡直到迁移完成。
亚马逊云科技的环境也可以通过很多种方式使用红帽 RHEL 镜像,包括云市场 AMI、私有 AMI、自定义AMI 上云、官方发布的红帽金牌镜像、第三方合作伙伴提供的亚马逊 AMI 的版本等渠道获得。国内用户最直接的方式是云市场镜像、内置与构建镜像。如果没有适用版本或可用选项,RHEL 用户仍能通过红帽支持的自定义 AMI 镜像将 RHEL 迁移到亚马逊云科技。红帽支持标准商业订阅客户将数据中心的 on-promise 订阅直接部署到亚马逊云环境。
综上所述,可以看到 CentOS 是源于 RHEL 的,企业迁移到 RHEL 可以获得最大程度的安全性、稳定性、可靠性保障,也是对已有资产的最大保护。通过红帽提供的订阅、产品、服务,结合亚马逊云科技在 CentOS 转换过程中提供的服务和支持,能够帮助用户很好地解决 CentOS 停更带来的种种问题。
以下是红帽官方渠道相关的二维码,感兴趣的读者可以扫码加入:
点个在看少个 bug 👇