这是一个非常经典,且在实际运维和架构选型中经常被问到的问题。
首先得纠正一个认知偏差:并不是“很多”公司还在用 CentOS 7,而是“曾经大量”部署了 CentOS 7 的系统,因为惯性、兼容性和迁移成本,目前正处于漫长的“软着陆”或“硬切换”过渡期。
真正的新项目,现在几乎没人会主动选择 CentOS 7 作为基础操作系统了。但为什么你依然能看到大量的生产环境跑着它?这背后是技术债、商业决策和生态惯性的综合结果。我们可以从以下几个维度来拆解:
1. EOL(End of Life)的时间窗口与“事实标准”的惯性
CentOS 7 的生命周期原本到 2024年6月30日 就结束了。这意味着官方不再提供安全补丁和内核更新。
- 存量巨大:在过去十年里,CentOS 7 是企业级 Linux 的事实标准。无数互联网大厂、传统XX机构、XX外包系统都基于此构建。这些系统的代码依赖库(如 glibc, openssl, python 2/3 早期版本)、中间件配置都是针对 CentOS 7 优化的。
- 迁移风险 > 安全风险:对于大多数非核心业务系统,升级到 CentOS Stream 9 或 Rocky/AlmaLinux 8/9,意味着要重新测试兼容性、调整脚本、甚至重构部分代码。这个迁移成本和潜在的业务中断风险,远高于继续使用一个“已知漏洞但已停止维护”的系统带来的即时风险。
- 策略性延寿:很多公司采取了“隔离策略”。将 CentOS 7 机器放入内网特定 VLAN,限制对外访问,配合 WAF(Web应用防火墙)和安全组策略,将其视为“只读”或“低频交互”节点,从而在逻辑上规避部分安全风险。
2. 上游替代方案的“阵痛期”
当 CentOS 8 突然宣布提前终止生命周期,并转向 CentOS Stream(滚动发布模型)后,整个社区陷入了短暂的混乱。直到后来 Rocky Linux 和 AlmaLinux 出现,才提供了真正的 1:1 RHEL 二进制兼容替代品。
- 学习曲线与信任建立:虽然 Rocky/Alma 是好的替代品,但对于运维团队来说,更换 OS 不仅仅是
yum install的问题。涉及到底层驱动、硬件兼容性、自动化运维平台(Ansible/SaltStack/Puppet)的配置模板更新等。很多中小企业的运维团队没有精力去逐个验证这些新发行版的稳定性。 - 云厂商镜像的滞后:国内主流云厂商(阿里云、腾讯云、华为云等)虽然已经提供了 Ubuntu、Debian、openSUSE、Rocky Linux 等镜像,但在某些老旧的客户案例中,客户自己打包的私有镜像或定制化的 Golden Image 仍然锁定在 CentOS 7。替换这些镜像需要协调业务部门,流程极其漫长。
3. 国产化和信创背景下的特殊考量
在中国市场,还有一个独特的因素:信创(信息技术应用创新)。
- 国产发行版的崛起:随着对自主可控的要求提高,越来越多的国企、XX和XX客户开始转向基于 openEuler(欧拉)或 KylinOS(麒麟)的系统。但这些国产发行版往往也保留了大量的 RPM 包兼容性,使得从 CentOS 7 迁移过去时,许多旧软件能直接运行。
- 过渡期的缓冲:在完全切换到国产 OS 之前,CentOS 7 作为一个“中间态”,因其极高的稳定性和广泛的文档支持,被用作过渡平台。有些公司甚至利用 CentOS 7 作为容器宿主(Docker/K8s),而将业务逻辑下沉到容器中,这样即使宿主机停止更新,只要容器内的基础镜像是新的,安全性可以得到一定程度的保障。
4. 技术债务与“能用就行”的文化
- 遗留系统包袱:很多公司的核心交易系统、ERP、CRM 系统是十年前开发的,当时 Python 2.7、Java 8 早期版本、MySQL 5.6 是标配。这些软件在新版本的 Linux 上可能遇到依赖冲突。为了维持业务连续性,“不折腾”成为首选策略。
- 成本考量:对于中小企业,购买 Red Hat Enterprise Linux (RHEL) 的商业支持授权是一笔不小的开支。而 CentOS 7 免费且稳定。即使它停更了,通过内部制定严格的安全加固规范(如禁用 root 远程登录、最小化安装、定期手动打补丁),也能满足基本的合规要求。
5. 当前趋势:正在发生的“大迁徙”
必须指出的是,这种状态是不可持续的。目前行业正在经历一场大规模的迁移潮:
- 向 CentOS Stream / Rocky / Alma 迁移:保持 RHEL 兼容性的开源替代方案是主流选择。
- 向 Debian/Ubuntu LTS 迁移:特别是在 Web 开发、微服务领域,Ubuntu 20.04/22.04/24.04 LTS 因其活跃的社区和丰富的软件包,越来越受欢迎。
- 向 openEuler 迁移:在国内政企市场,基于 openEuler 的发行版(如 EulerOS、KylinV10)正快速取代 CentOS 的位置。
- 容器化与无服务器化:通过将应用打包进 Docker 镜像,并指定基础镜像为 Alpine 或 Ubuntu,从而弱化对底层操作系统的依赖。
总结
公司还在用 CentOS 7,不是因为喜欢它,而是因为:
- 历史包袱重,迁移成本高;
- 替代方案尚未完全建立信任,存在试错成本;
- 通过技术手段(隔离、加固)缓解了安全风险;
- 等待国产化替代方案的成熟。
建议:如果你所在的公司仍在规划使用 CentOS 7,强烈建议制定明确的迁移路线图。对于新项目,请直接选择 Ubuntu LTS、Rocky Linux 9、AlmaLinux 9 或 openEuler。不要为了短期的便利,给未来埋下长期的安全和运维隐患。
云技术博客