互联网大厂(如阿里巴巴、腾讯、字节跳动、百度等)的工程师在生产环境和开发环境中使用的 Linux 发行版并不完全相同,通常遵循“生产求稳,开发求快”的原则。
以下是具体的场景分析和主流选择:
1. 生产环境 (Production)
在生产环境中,稳定性、长期支持(LTS)和安全性是首要考量。因此,大厂几乎全部使用企业级服务器操作系统。
- CentOS / Rocky Linux / AlmaLinux:
- 历史情况:过去十年间,CentOS 是大厂的事实标准。由于其免费、稳定且与 RHEL(Red Hat Enterprise Linux)二进制兼容,它曾是云服务和容器化部署的首选。
- 现状变化:随着 CentOS 8 停止维护以及 CentOS Stream 策略的调整(从稳定的下游变为上游滚动测试),许多大厂正在逐步迁移或已经迁移到 Rocky Linux 或 AlmaLinux。这两个系统旨在填补 CentOS 留下的空白,提供相同的稳定性和兼容性。
- Ubuntu Server LTS:
- 部分大厂(尤其是涉及 AI/机器学习、新业务线或依赖较新软件栈的团队)倾向于使用 Ubuntu LTS(如 20.04, 22.04)。因为 Ubuntu 拥有更活跃的社区支持和更新的软件包版本,且在容器生态(Docker/Kubernetes)中表现优异。
- 自研定制版 (Internal OS):
- 这是大厂的一个显著特点。为了极致优化硬件性能和资源调度,头部大厂通常会基于上述开源内核进行深度定制,推出自己的内部发行版。
- 例子:阿里云的 AliOS(基于 Fedora/CentOS 深度定制)、百度的 BOS、腾讯的 TencentOS(基于 CentOS 定制,针对云原生优化)。这些系统在底层做了大量的内核参数调优、驱动适配和安全加固。
2. 开发环境 (Development / Local Machine)
对于工程师个人的笔记本电脑或本地开发机,选择则更加灵活多样,主要取决于个人习惯、团队规范以及所需工具的兼容性。
- macOS:
- 由于 macOS 基于 Unix,其终端体验与 Linux 高度相似,且拥有极佳的硬件生态和 UI 设计,它是目前互联网大厂工程师最主流的开发机操作系统。很多公司甚至直接采购 MacBook Pro 作为标配。
- Ubuntu Desktop:
- 如果必须使用 Linux 桌面,Ubuntu 是首选。它的软件源丰富,安装 Docker、Kubernetes 工具链极其方便,且能最大程度模拟生产环境(特别是当生产端也是 Ubuntu 时)。
- Fedora Workstation:
- 部分喜欢尝鲜新技术、偏好较新内核或 GNOME 桌面的资深工程师会选择 Fedora。它通常是 RHEL 技术的试验田,更新较快但依然保持企业级的稳定性。
- WSL2 (Windows Subsystem for Linux):
- 在 Windows 笔记本上,WSL2(通常运行 Ubuntu 内核)已成为标准配置。它允许工程师在 Windows 下获得原生的 Linux 开发体验,同时享受 Windows 的办公生态。
3. 容器化带来的趋势
值得注意的是,随着 Docker 和 Kubernetes 的普及,开发环境与生产环境的差异正在被抹平。
- 无论工程师本地使用的是 macOS、Windows 还是 Linux,最终交付的代码都会运行在容器镜像中。
- 这个容器镜像的基础镜像(Base Image)通常就是生产环境使用的发行版(如
centos:7,rockylinux:9, 或ubuntu:22.04)。 - 因此,工程师本地的具体发行版不再像以前那样至关重要,只要容器环境一致即可。
总结
| 场景 | 主流选择 | 备注 |
|---|---|---|
| 生产服务器 | Rocky Linux / AlmaLinux (替代 CentOS) TencentOS / AliOS (自研定制版) Ubuntu LTS (特定业务) |
追求极致稳定与安全,大量使用自研优化版 |
| 本地开发机 | macOS (绝对主流) Ubuntu Desktop (纯 Linux 用户) WSL2 (Ubuntu) (Windows 用户) |
追求开发效率与工具链兼容性 |
| 容器基础镜像 | 与生产环境保持一致 | 屏蔽底层 OS 差异 |
简而言之,如果你看到大厂的生产日志,大概率是 CentOS 的继任者(Rocky/Alma) 或 自研版;如果你看到他们的工程师坐在电脑前敲代码,大概率用的是 MacBook 或安装了 WSL2/Ubuntu 的 PC。
云知识CLOUD