这是一个非常经典,且让很多运维和开发同学感到“既爱又恨”的问题。
首先得纠正一个认知偏差:并不是“很多”国内公司还在用 CentOS 7,而是“存量巨大”,且在新项目或核心业务中,它正在被快速清洗。
如果你现在去翻一下阿里云、腾讯云或者华为云的后台,新建实例默认镜像早就不是 CentOS 了。但在很多老系统的角落里,CentOS 7 依然像一块顽固的补丁,死死地贴在服务器的胸口。
这背后不是情怀,而是一堆极其现实的技术债、合规成本和生态惯性。我们可以从以下几个维度来拆解这个现象:
1. “停服不死亡”的错觉与时间窗口
很多人知道 CentOS 8 提前退役,CentOS 9 Stream 转向滚动更新导致不稳定,所以觉得 CentOS 7 应该也没戏了。但事实是,CentOS 7 的生命周期延长到了 2024 年 6 月 30 日(对于标准支持而言),而且通过 ELS(Extended Life Support)付费服务,红帽官方甚至允许企业用到 2029 年。
这意味着什么?意味着在 2024-2025 这两年,CentOS 7 依然是“合法”且“安全”的。对于大多数非互联网核心的传统行业(如XX、XX、制造),他们的 IT 预算周期是按年规划的。只要没到强制下线的时间点,就没有动力去动那个跑得好好的系统。
2. 迁移成本 > 风险容忍度
这是最核心的原因。在国内,尤其是大中型企业,IT 架构往往经过多年迭代,形成了复杂的依赖链:
- 内核版本锁定:很多老旧的商业软件、数据库中间件(比如某些版本的 Oracle、Sybase 或者自研的核心交易引擎)是专门针对 RHEL/CentOS 7 的内核版本编译优化的。升级到 CentOS 8/9 或 Ubuntu,可能涉及内核模块重新编译、驱动适配,甚至代码重构。
- 环境一致性:Docker 容器化虽然流行,但并非所有应用都能轻松容器化。那些直接部署在物理机或虚拟机上的单体应用,其环境变量、库文件版本(glibc, openssl 等)都硬编码在 CentOS 7 的环境中。一旦换系统,测试覆盖率要求极高,而业务部门通常不允许这么长的停机测试窗口。
- 人力成本:国内精通 RHEL 系运维的人不少,但精通新发行版(如 Rocky Linux, AlmaLinux, openEuler)且愿意接手烂摊子的人相对较少。换系统意味着要重新培训团队、重写自动化脚本(Ansible/Puppet/SaltStack),这笔隐形成本远超购买新服务器或云服务的费用。
3. 国产替代的“渐进式”策略
你提到的“国内云计算厂商”,其实已经在推动替代方案,但这个替代不是“一刀切”,而是“分层替换”:
- 公有云用户:阿里云主推 Alibaba Cloud Linux(基于 openEuler 深度优化),腾讯云主推 TencentOS Server。这些系统对自家云产品有深度集成优化,性能更好,且完全免费。因此,纯公有云场景下,CentOS 7 的占比已经大幅下降。
- 私有云/混合云/本地机房:这部分才是 CentOS 7 的大本营。由于数据主权、网络隔离、硬件兼容性等原因,很多企业无法完全上云。在这些场景下,openEuler(欧拉) 成为了主要的接棒者。华为、阿里、腾讯都在大力推广 openEuler,因为它源自 CentOS/RHEL 体系,兼容性好,迁移成本低,且有国家背书。
所以,与其说大家还在用 CentOS 7,不如说大家在等待一个平滑过渡到 openEuler 或商业 RHEL 的机会。
4. 生态惯性:yum/dnf 和 RPM 包管理
CentOS 7 使用的是 yum + rpm 包管理体系,这套体系在国内积累了海量的第三方仓库(如 EPEL)、社区教程、故障排查文档。开发者遇到问题,搜一下“CentOS 7 安装 XXX”,能找到成千上万条解决方案。
换成 Debian/Ubuntu 系的 apt,或者新的 openEuler,虽然命令类似,但很多小众软件的预编译包可能缺失,需要自己从源码编译,这对中小团队来说是巨大的门槛。
5. 为什么不能立刻全量切换?
因为 “稳定压倒一切” 在中国企业的 IT 文化中根深蒂固。
- CentOS 7 的稳定性和可预测性是经过十年验证的。
- 新的替代品(包括 openEuler、Rocky、Alma)虽然技术先进,但在大规模生产环境的长期稳定性数据上,还需要时间积累。
- 对于 CTO 或 IT 总监来说,不出事比创新更重要。维持现状是最安全的XX选择,除非上级强推国产化信创指标。
总结与建议
现状判断:
- 新项目:几乎不再选用 CentOS 7。主流选择是 Alibaba Cloud Linux、TencentOS Server、openEuler 或 Ubuntu LTS。
- 老项目:仍在运行 CentOS 7,但处于“维持模式”,不再进行功能升级,仅做安全补丁修复。
- 趋势:未来 1-2 年是 CentOS 7 的“清退期”。随着 2024 年中后期官方支持结束,以及信创政策的推进,大量存量系统将被迁移至 openEuler 或商业 RHEL。
给技术人员的建议:
- 不要主动拥抱 CentOS 7:如果你在学习或搭建新环境,请直接使用 Alibaba Cloud Linux 3/4 或 openEuler 22.03+。它们与 CentOS 7 高度兼容,且能获得更好的性能和持续支持。
- 掌握迁移技能:学会使用
repotrack、ansible等工具进行系统迁移,熟悉 openEuler 与 CentOS 的差异(主要是包管理器从 yum 到 dnf 的变化,以及部分内核参数的调整)。 - 关注信创目录:如果你的公司在国企、XX或XX行业,务必了解当地认可的操作系统清单,提前规划迁移路径。
- 容器化是解药:如果可能,将应用容器化并绑定基础镜像(如基于 openEuler 构建的 Docker 镜像),这样可以彻底摆脱宿主操作系统的束缚,实现真正的“一次构建,到处运行”。
最后一句大实话:
CentOS 7 不是被“淘汰”的,而是被“自然消化”的。当它的维护者老去,当它的技术债累积到无法承受,当新一代开发者连 yum install 都觉得过时的时候,它才会真正退出历史舞台。而现在,我们正处于这个过程的尾声。
云技术博客