自 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 操作系统停止维护后的对应方案与技术实践》的相关技术分享。
1 CentOS 停更后,Linux 生态系统变化
很多开发者无法理清 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 用户提前行动起来,尽快选择一条适合的路径开始迁移工作。
2 迁移至新操作系统的关键因素
在开展迁移工作时,对于不同的用户,应采用不同的迁移策略。在企业用户迁移至新操作系统时,主要会考虑成本因素、平滑过渡和服务托底三个角度,进而拆分为八个关键因素来做出决策:
对于 CentOS 用户来说,可能考虑的几种转换策略包括:
如果用户只是想在操作系统环境上做一些功能验证和兼容性验证工作,或者准备以 CentOS 为基线开发自己社区的 Linux 版本,强调代码贡献和修复问题,那么转向 CentOS Stream 就比较合适。但考虑到该版本生命周期非常短暂、很难满足合规要求、未经安全认证、更新节奏不规则、缺乏商业支持等问题,红帽不推荐在生产环境中运行 CentOS Stream。
基于 2021 年后 Linux 社区新的上下游关系,对于桌面使用场景和操作系统开发需求,红帽推荐用户使用 Fedora 做测试开发版本基线,在 CentOS Stream 上做和红帽未来企业版 Linux 兼容的软件组件开发工作。生产环境关键业务负载推荐在企业级 Linux RHEL 上运行。另外,一个新的方向是容器打包、制作过程,需要基础镜像作为底座。为此红帽提供了基于 Linux RHEL 的统一基础镜像,即为 UBI,方便用户在标准的底层容器 OS 之上构建统一安全的企业应用并分发。
3 在亚马逊云科技上,体验全面升级的的 Linux 有何不同
亚马逊云科技从 2008 年就成为了红帽认证的全球云服务提供商(CCSP),在亚马逊云科技上可以通过多种方式使用红帽 RHEL 操作系统产品。第一种叫做 PAYG 方式(“随付随用”),直接在亚马逊云科技上面选择相应的实例订阅即可。另一种叫做 BYOS 方式,即用户自带的订阅上云,这种方式更适合已经购买了红帽订阅的客户,实现混合云部署策略。
亚马逊云科技红帽 RHEL 产品有三条主线:
此外还有 OpenShift 产品、红帽中间件、容器化存储都可以在亚马逊云科技上进行认证和测试。
红帽 RHEL 和亚马逊基础设施环境结合在一起,能够带来相较传统基础设施环境更高的性能优势和构建稳定性。用户在云环境上可以使用灵活、稳定、高效的运行环境,来构建面向未来的混合云基础设施,自由选择哪些应用部署在本地,哪些应用部署在公有云上,将两者更好结合在一起。
亚马逊云科技提供的 RHEL 环境经过优化,可以为用户提供开箱即用的最佳体验。企业级 Linux 特性也被带到公有云上,可以在云上运行计算负载。亚马逊云科技业务分析能力也能够与 RHEL 结合,帮助用户更好地了解环境运行状况。在一些比较弹性的使用场景当中,在云上安装应用能够节省资金和成本,同时保证应用最佳性能。
在亚马逊云科技上,RHEL 还能够提供高可用性(HA),为关键生产负载提供可靠性、可用性与可伸缩性。通过 HA 能够解决单点故障问题,自动将故障切到新节点上,保证灵活性和不间断服务。
用户在亚马逊云科技上使用企业版 Linux 运行关键业务应用会有很多利处,总结为以下几点:
对于广大 RHEL 用户,亚马逊云科技上的红帽 RHEL 提供了覆盖全面、非常灵活的订阅计划。尤其面向个人开发者和企业开发者,红帽都准备了 0 成本的开发者可用订阅。
4 转向红帽企业 Linux 迁移实践
如果用户选择从 CentOS 转向 RHEL,亚马逊云科技提供一些工具来帮助用户完成任务,确保用户享受到红帽订阅的价值。
主要的转换途径有两种:
这种切换方案将带来很多收益:
朱贺现场演示了通过 Convert2RHEL 快速将 CentOS 操作系统转换为 RHEL 的过程。
由于上层应用与操作系统的依赖程度不同,当升级系统对前者的影响比较大时,用户还需要一个实施迁移过程。例如迁移之前会对有些应用进行新环境的兼容性测试,应用在迁移过程中可能需要做拆分、聚合等重构过程。重构过程中可能做一些应用开发工作,做一些改造或优化,或者老旧硬件迁移到新硬件上,等等。实施迁移流程就是用来应对操作系统迁移所带来的各类问题。
红帽会帮助用户进行项目迁移引导或者规划,提供一系列帮助和全方位管理服务。红帽在数据中心运营环境基础设施方面会帮助用户做评估梳理,在运行时方面帮助用户考察应用兼容性、迁移方案可行性,在应用开发优化方面也有相应的咨询协助。
针对迁移过程中跨平台、应用程序回收、部署设计等问题,红帽都可以提供现场运维保障支持,保证用户平稳过渡直到迁移完成。
亚马逊云科技的环境也可以通过很多种方式使用红帽 RHEL 镜像,包括云市场 AMI、私有 AMI、自定义AMI 上云、官方发布的红帽金牌镜像、第三方合作伙伴提供的亚马逊 AMI 的版本等渠道获得。国内用户最直接的方式是云市场镜像、内置与构建镜像。如果没有适用版本或可用选项,RHEL 用户仍能通过红帽支持的自定义 AMI 镜像将 RHEL 迁移到亚马逊云科技。红帽支持标准商业订阅客户将数据中心的 on-promise 订阅直接部署到亚马逊云环境。
5 总结
综上所述,可以看到 CentOS 是源于 RHEL 的,企业迁移到 RHEL 可以获得最大程度的安全性、稳定性、可靠性保障,也是对已有资产的最大保护。通过红帽提供的订阅、产品、服务,结合亚马逊云科技在 CentOS 转换过程中提供的服务和支持,能够帮助用户很好地解决 CentOS 停更带来的种种问题。