大约两年前,我们推出了红帽企业 Linux(RHEL)镜像模式,旨在为客户提供一种更简便的方式来部署其 IT 企业的基础。自那时起,我听到许多采用镜像模式的用户表示,这无异于一次生活方式的转变。这种转变体现了思维方式的根本性转变,从基于软件包的管理转向基于镜像的容器原生管理。诚然,生活方式的改变往往充满挑战。但无论从技术层面还是个人层面来看,这都能带来切实的益处。
镜像模式让 IT 领域中一些最繁琐的流程变得更加简单。这意味着企业运营的可预测性更高,团队需要在凌晨进行维护的情况也将减少。这些好处比您想象的更容易获得。如果您一直对切换到镜像模式犹豫不决,以下是它能快速创造价值的四种方式:
1.更短的维护期和更顺畅的利益相关者谈判
在传统的基于软件包的管理模式中,维护期通常较长且难以预测。由于更新是逐个软件包应用的,您拥有的 RPM 越多,引入的潜在故障点就越多。考虑到需要更新的服务器数量,为了避免出现任何差错,长达数小时的停机时间往往难以避免。这无疑让与利益相关者的谈判变得十分困难。
镜像模式从根本上改变了这种局面。它不再需要实时应用更新,而是允许在后台下载并暂存更新。这将有效缩短维护期,只需通过一次简单的快速重启,即可切换到新镜像。
随着 RHEL 10.1 中引入软重启,这一过程变得更加迅速。借助软重启,您可以更新应用、库以及其他用户空间组件,而无需完整重启内核。这样一来,原本长达数小时的停机时间大幅缩减,如今只需几分钟即可完成重启。
2.通过原子性和即时回滚降低风险
在基于软件包的传统环境中,更新单个系统依赖项(例如共享库或次要安全补丁)通常需要文件系统快照或备份。您就地修改实时系统,并祈祷不会与现有服务发生冲突。一旦更新失败,就意味着要从备份中手动缓慢恢复。这将导致更长的停机时间。
RHEL 镜像模式通过原子性和即时回滚,从根本上改变了这种状况。您无需修补正在运行的服务器,而是将依赖项更改构建到新的、版本化的可引导镜像中。更新具有原子性,这意味着更新会在后台暂存,并在重启时一次性全部应用。系统绝不会处于已损坏或半更新的状态,而且一旦出现冲突,恢复也只需几秒钟。
RHEL 镜像模式可将高风险的配置管理转变为低风险、高可信度的流程。
3.通过真正的可追溯性实现更严格的偏移控制
如果代码在您的计算机上能正常运行,但在生产环境中却出现问题,这通常是由软件不匹配导致的。开发人员计算机与生产系统有着不同的生命周期、用例、安全态势以及(不可避免的)软件版本。在软件包模式下,主机经过数月甚至数年的手动调整和修补后,很难追踪其变更历史。
RHEL 镜像模式使用发布到容器镜像仓库的实际二进制工件。这会在运行中的主机与其构建所依据的确切镜像版本之间,建立起一种牢不可破的关联。
借助此功能,您可以随时证明每台服务器上运行的代码。通过提高机群可见性,您能够更轻松地跟踪整个环境中的渐进式部署情况,并查看哪些主机仍需更新至最新的黄金镜像。
红帽企业 Linux 9.7 和红帽企业 Linux 10.1 中新增的可再现构建支持,能确保由相同内容构建的镜像在元数据层面也完全一致。
4.像开发人员一样自动化操作系统设计
镜像模式最令人兴奋的一点在于,它终于让我们系统管理员能够使用与开发人员同事相同的现代 GitOps 工具。由于镜像模式构建基于容器技术,您可以实现以下目标:
- 本地测试: 使用 Podman 在笔记本电脑上构建和启动操作系统镜像,以在更改触及服务器之前完成验证。
- CI/CD 集成:使用 GitHub Actions、GitLab CI 或 Jenkins 来自动化操作系统构建和测试管道。
- 自动化维护: 使用 Renovate 等工具,每当基础软件包发布安全补丁时,自动触发新的操作系统镜像构建。
这会将您的大部分工作重心转移到构建阶段(在此阶段,错误修复成本较低),而不是转移到生产阶段(在生产阶段,错误可能会造成灾难性后果)。
试用镜像模式
过渡到镜像模式不仅仅是一种新的软件安装方式;它还能帮助您节省时间,减轻系统管理方面的繁重负担。通过将工作集中在构建阶段,您能够帮助确保生产环境保持稳定、安全,最重要的是,保持可预测性。
准备好亲眼见证它的实际效果了吗?