亚马逊AWS官方博客

亚马逊云科技上在CentOS在停止维护后的几种选择

为了协调硬件资源的分配与访问,在硬件与应用软件之间存在着操作系统。因为有了操作系统,应用软件开发人员只需要专注功能实现,不需要关注硬件差异性。在构建应用系统之前,操作系统该如何进行选择,往往会取决于以下几个因素:

  • 业务软件的运行环境

业务软件的运行环境往往是第一优先考虑的,比如基于ASP运行的网站会选择Windows操作系统,运行在移动端的软件会选择Android或者IOS操作系统,而基于PHP语言以及MySQL数据库的网站通常会选择Linux操作系统;

  • 安全与稳定性

业务软件的运行需要安全稳定的运行环境,不管是运行环境被攻击还是瘫痪,都会可能导致业务停机造成损失,所以安全与稳定性在操作系统的选择上也至关重要。这部分往往是在根据业务软件运行环境确定某一类操作系统后,在操作系统的系统版本或者发行版本上的选择,比如Windows的版本、CentOS还是Redhat等;

  • 官方/社区支持性

由于操作系统本身介于硬件与应用软件中间,所以涉及很多底层技术,大多数使用者并不具备操作系统底层研发的能力,所以操作系统是否具备官方或者社区的支持也是操作系统选择上需要考量的重要因素,这里面往往涉及补丁的更新、支持库包的覆盖以及售后支持等。

CentOS操作系统

在众多的操作系统中,CentOS无疑是一个广泛被认知和被选择的操作系统,这和CentOS自身的特性以及国内运维团队发展有着不可分割的关系。

在国内互联网IT技术发展的初期,更轻量级的开发语言与中间件开始逐渐被IT人员选择,所以更适合运行这种环境的Linux操作系统被大家广泛用于服务端操作系统,在那个时期,国内的运维团队基本以Redhat为主,Redhat作为针对企业应用的Linux为了将性能最大化留给应用系统,基本是基于命令行进行管理,同时当时构建网站主流的apache、mysql等都有基于Redhat的优化版本。

在Redhat逐渐转向订阅级别的企业级操作系统后,Redhat Linux也从开源分化为面向企业的收费版本Redhat以及面向社区的免费版本Fedora。很多Redhat用户仍希望能免费使用曾经开源、稳定并带有支持的Redhat Linux,在这个背景下就诞生了CentOS。

Gregory Kurtzer创建了CentOS项目(全名是Community EnterpriseOperating System),CentOS项目的目标是在红帽不再提供免费的技术支持和产品后对红帽的重构,基于红帽的源代码对RHEL进行翻版,在重新编译的过程中去仅去除了RHEL源代码中红帽的LOGO、商标或者其他会可能会造成商业纠纷的部分并替换了主题。由于Redhat的知名度以及CentOS对自己发行版清晰的定位,所以CentOS一经发布就被众多红帽用户追捧。CentOS是一个完全非盈利性质的开源项目,而开源软件诞生的初衷之一是让那些用不起昂贵商业软件的人可以用上免费或者廉价的替代品,CentOS同时具备Redhat的稳定性以及免费特性,这也是CentOS在国内拥有大量用户的重要原因。

在2014年,CentOS宣布加入红帽,红帽出资对CentOS项目进行赞助,出人直接参与CentOS项目的开发,并占据了CentOS社区当时9个常任董事中3个名额。

CentOS加入红帽后完善了红帽的整个开源生态系统,最大的好处就是红帽所有产品对应的社区发行版本有一个比Fedora更理想的体验和开发平台,形成了完整的有一一对应关系的企业开源产品和社区开源产品。

Centos停止维护消息

2020年12月08日,CentOS官方宣布了停止维护CentOS Linux 8的计划,并推出了CentOS Stream项目。具体信息,请阅读CentOS官方公告。其具体规划如下:

  • CentOS Linux 8作为RHEL 8的复刻版本,生命周期缩短,于2021年12月31日停止更新并停止维护(EOL)。
  • 基于以上官方变更计划,CentOS Linux 8用户将无法获得包括问题修复和功能更新在内的任何软件维护和支持。CentOS官方建议停止维护后:对于开发或测试环境,可以将环境迁移至CentOS Stream版本; 对于生产环境或部署关键业务的系统,建议使用稳定的Red Hat Enterprise Linux。对此,用户需评估以下问题:
  • CentOS Stream是一个滚动发行的版本,仅为RHEL前置测试版,运用于生产环境时,可能存在一定风险。

目前最常被选择的3个版本CentOS的EOL如下图:

在CentOS停更后的几种选择

随着CentOS更名为CentOS Stream,它在生态链中的位置变成了Fedora、CentOS Stream、RHEL,CentOS反过来成为了RHEL的试验场,它仍然是一个可用的操作系统,却不再有以前那样能与RHEL比肩的稳定性了。红帽官方建议CentOS用户升级到CentOS Stream,但也声明了并非为生产环境设计。

CentOS在每个大版本的维护期间,会有软件的更新和安全补丁的推送,这些安全性的加强在网络犯罪频繁的互联网时代是非常重要的,尤其是核心应用以及数据保存的服务端,CentOS的目前应用最广泛的CentOS7本身的维护期只剩下两年,而前几年发布的CentOS8则直接在2022年停止维护个更新,所以对于企业来说,为了业务稳定性与安全性,可能会对CentOS的操作系统进行替代,由于操作系统的选择与企业要求和IT团队的方向有密不可分的关系,所以下文将会为大家介绍几种可能选择,仅供参考。

  • CentOS6-8

企业应用所涉及的方方面面都会求稳大于求新,所以IT人员在操作系统的选择上也会遵循选择经过了市场验证较为稳定的版本。对于CentOS的替代大多数情况下都会涉及到系统的迁移,虽然替代操作系统也为Linux-base,但迁移的过程与更换操作系统的风险仍然是存在的,尤其是在CentOS7还有2年的维护周期的背景下。

在企业的安全性要求允许的情况下,可以考虑继续沿着这些经过市场验证较为稳定的CentOS版本。但这仍是一个短期的应对措施,因为CentOS在8之后不会再有9,10等新的版本,企业始终会面临替代操作系统的选择,所以在新业务上线的时候,仍需要在是否替换CentOS上进行抉择。

  • SUSE Liberty

1992年,也就是Linux操作系统诞生的第二年,三个德国大学生创立了SUSE,并在两年后发布了全球第一个企业级Linux操作系统。

2004年,SUSE进入中国,开启了18年的征程。按照个人的理解,我们可以把SUSE中国这18年划分为从1.0到3.0的三个阶段。

前8年是SUSE中国的1.0时代。在这个时期,SUSE在国内成立了研发中心,推出了Linux中文输入法,开始为中国培养开源人才。2012年,开启了SUSE中国的2.0时代。在这个阶段,伴随着软件开源的大趋势和数字化的大潮流,SUSE中国的业绩高速增长,创造了10年增长10倍的奇迹。自2020年开始,SUSE中国进入了全新的3.0时代。在这一年里,SUSE收购了开源企业级Kubernetes管理平台供应商Rancher Labs,随后又收购了容器安全平台供应商NeuVector。

借此,SUSE完成了对全线产品的强化升级,形成了企业级Linux、企业容器管理平台和边缘解决方案三大产品线,成为企业级开源解决方案的领导者。

值得注意的是,伴随着这一系列的收购,SUSE仍然坚持100%的开源。SUSE大中华区董事长江永清表示,“开源”一直是SUSE的精神内核,在公司发展的众多历史性时刻,SUSE始终专注于开源并持续投入。这一点,是说到做到的。NeuVector原本是一家闭源软件公司,被SUSE收购后,即将源代码完全开放,变成了彻底的开源软件。

在面对CentOS停更上,SUSE给出的解决方案是SUSE Liberty。SUSE Liberty Linux是在SUSE Expanded Support基础上,为用户的混合Linux环境提供企业级的支持服务,包括SUSE Linux Enterprise  Server (SLES),Red Hat Enterprise Linux (RHEL) 和 CentOS,SUSE还可以帮助企业从CentOS 顺利过渡。

SUSE Liberty其实提供了一种不需要企业进行操作系统迁移就可以应对CentOS停更的解决方案,企业可以在原CentOS的操作系统基础上订阅SUSE Liberty的服务,并更新CentOS的内容库地址,就可以获得SUSE基于CentOS提供的维护与更新,并可以配备SUSE Manager进行统一的管理,相当于一种无缝迁移的解决方案。

  • Redhat

       

如果是CentOS的企业用户,Redhat其实并不需要过多的介绍,Red Hat Enterprise Linux (RHEL)是Redhat面向企业推出的订阅制收费操作系统,也是目前CentOS、Fedora中最稳定的商业操作系统。如果企业用户希望购买订阅服务来保证操作系统的稳定性与安全性的话,RHEL是与CentOS关联性最强的替代选择。

 

  • Debian

 

        提起Debian也许有的IT人员并不熟悉,但是Ubuntu却在中国有很高的认知度,曾经很多互联网人员为了方便对操作系统进行维护,会将Ubuntu用于自己的桌面操作系统,Ubuntu有着非常友好的GUI同时具备Linux的底层。Debian就是一个与Ubuntu有着密不可分的操作系统。

Linux发行版本虽然众多,但是真正属于原始构建的Linux版本可不多,只有少数几个,而大多数大家熟悉的或使用比较多的诸如CentOS,还有Ubuntu这一类属于再构建版本,简单来说就是这些版本是基于原始构建版本的基础之上再次修改及构建而来,我们可以简单的把CentOS基于Redhat构建而成,而Ubuntu就是由Debian构建而成。但相对于曾经Redhat的CentOS的关系,Ubuntu在Debian的基础上修改的要多一些,因为Debian是完全开源的社区版本操作系统,其软件源中的软件也都是免费的,所以如果企业IT团队更希望选择免费开源同时可定制性强的操作系统,那Debian也是一个非常好的替代选择。

  • Ubuntu

 

在上一段落已经介绍了Debian与Ubuntu的关系,Ubuntu Linux是由南非人马克·沙特尔沃思(Mark Shuttleworth)创办的基于Debian Linux的操作系统,于2004年10月公布Ubuntu的第一个版本(Ubuntu 4.10“Warty Warthog”)。Ubuntu适用于笔记本电脑、桌面电脑和服务器,特别是为桌面用户提供尽善尽美的使用体验。Ubuntu几乎包含了所有常用的应用软件:文字处理、电子邮件、软件开发工具和Web服务等。用户下载、使用、分享未修改的原版Ubuntu系统,以及到社区获得技术支持,无需支付任何许可费用。

Ubuntu的背后是Canonical公司,Ubuntu也有许多分支以适应不同的工作负载,同时Ubuntu也有非常庞大的社区组织,如果企业对Ubuntu社区有一定的经验,或者有对GUI的需求,Ubuntu会是一个比较好的选择。

  • Rocky Linux

Rocky Linux可以说是与CentOS停更相关性最强的操作系统了。CentOS宣布停止开发后,CentOS的原创始人Gregory Kurtzer在CentOS网站上发表评论宣布,他将再次启动一个项目以实现CentOS的最初目标。它的名字被选为对早期CentOS联合创始人Rocky McGaugh的致敬。

2021年4月30日,社区发布第一个候选版本,Rocky Linux 8.3正式发布。截止至今,Rocky Linux最新的操作系统为9.0版本,同时由于Rocky Linux的诞生经历,在全球CentOS的社区呼声也是最高的,所以如果要替代CentOS,Rocky Linux是一个非常相关的替代方案,但是由于Rocky Linux的生命周期相较于上述的几个操作系统仍然较短,所以未来的发展仍是企业需要考虑的因素之一。

 

  • CentOS Stream

 

CentOS 官方发文称 CentOS Stream 才是 CentOS 项目的未来,将逐步把开发工作的重心从 CentOS Linux 往 CentOS Stream 转移。CentOS 向来有最稳定的发行版之称,原因是红帽发布 RHEL 稳定版后,由 RHEL 源码重新编译而成的 CentOS 才会接着发布,两个发行版具有 100% 的二进制兼容性,且背后有红帽强大的技术支持,因此在开发者群体中口碑非常高(对于开发者来说,相当于免费使用上了企业级的 RHEL)。现在是 CentOS Stream 先行,稳定之后再发布 RHEL,相对于曾经的CentOS,CentOS Stream的稳定性将会有所下降。这里并不是很建议企业客户将核心应用部署在CentOS Stream上,但是一些开发和测试环境,如果对CentOS很热衷,也可以未来尝试使用CentOS Stream。

  • Amazon Linux

 

Amazon Linux 2 是来自 亚马逊云科技的 Linux 操作系统。它提供了一个注重安全、稳定和高性能的执行环境来开发和运行云应用程序。Amazon Linux 2 免费提供。亚马逊云科技为 Amazon Linux 2 提供持续的安全和维护更新。

如果您是亚马逊云科技的用户,将Amazon Linux 2作为CentOS停更后的替代选择也是不错的选择,Amazon Linux AMI 的软件包和配置可以提供与 Amazon Web Services 的紧密集成,许多亚马逊云科技API 工具和 CloudInit 都已预先安装。启动时,CloudInit 允许通过 EC2 用户数据字段向实例传送实例配置操作,从而远程配置 Amazon EC2 实例。Amazon Linux AMI 配置通过关注两个主要安全目标来增强安全性,一个是限制访问,另一个是减少软件漏洞。Amazon Linux AMI 通过使用 SSH 密钥对和禁用远程根登录来限制远程访问功能。此外,Amazon Linux AMI 会减少实例上安装的非关键软件包数量,限制潜在安全漏洞风险。级别为“关键”或“重要”的安全更新将自动在 AMI 初始启动时应用。Amazon Linux AMI 旨在与各个 Amazon EC2 地区中托管的在线软件包存储库结合使用。在每个地区都托管存储库,有助于快速部署更新,且不会产生任何数据传输费用。

如何在亚马逊云科技上找到操作系统纯净的社区/商业版本

在亚马逊云科技中,如果企业客户使用Amazon EC2服务来运行业务的话,需要根据自身要求来选择操作系统,如果说本地数据中心的硬件服务器里运行的操作系统需要IT人员来自己寻找介质的话,那在亚马逊云科技的Amazon EC2服务中,承载操作系统的“介质”就是AMI(Amazon Machine Image)。

在AMI的控制台界面,允许用户自己在所有其他用户公开的AMI中进行选择和使用,但并不建议直接使用来源不明的AMI用于企业应用系统的构建,因为难以确保该AMI运行的操作系统中是否存在恶意软件或者预安装的软件包。

在亚马逊云科技 Marketplace 上订阅操作系统产品,既能保证版本的安全合规,又能支持灵活的付款方式,从而确保系统部署高效快捷。亚马逊云科技 Marketplace 提供的操作系统产品全部源于官方版本,其中商业或者开源操作系统全部由商业公司或者社区直接提供,由亚马逊云科技 Marketplace 运营团队完成安全合规审查,并维护各种操作系统产品的多种版本。亚马逊云科技 Marketplace 操作系统产品支持多种价格模式,免费、BYOL、即用即付(PAYG)和包年折扣方式。

该文章接下来将为大家介绍如何通过亚马逊云科技Marketplace找到操作系统纯净的社区/商业版本。

首先我们打开亚马逊云科技Marketplace的官网(中国/全球

接下来在搜索条件的产品类别中选择“操作系统”,并点击查看结果

在结果页面会看到所有的操作系统,点击我们选择的操作系统后进入产品页面

在产品页面中,我们可以确认产品的相关信息,如果是商业操作系统,也可以在该页面中查看价格,大部分商业操作系统都与亚马逊云科技Marketplace进行了计费集成,启动的EC2实例可以按小时或者按年来计算操作系统的价格。

确认好后点击继续订阅,后在后续的页面中进行EC2实例的配置并将运行该操作系统实例启动。

至此我们就完成了在亚马逊云科技上的操作系统的选择和部署,由于操作系统的选择涉及众多考量因素,操作系统的迁移也存在一定的工作量与风险,故本文只做参考,操作系统的迁移方法并不在本文的讨论范围。

本篇作者

张明月

资深合作伙伴解决方案架构师,负责AWS合作伙伴相关的产品技术以及解决方案的建设。在企业IT,云计算方面有10+年的从业经历,对计算,存储,安全,DevOps等领域有丰富的架构设计及实践经验。