距离我们撰写有关红帽企业 Linux(RHEL)自动化就地升级的文章已有两年多的时间。在此期间,我们见证了数十家客户采用我们规范化的自动化方法,成功完成了数十万台系统的升级,从而实现了 RHEL 大规模升级部署。在本文中,我们将快速回顾有助于加速 RHEL 升级自动化推广的关键功能,介绍哪些措施成效显著,同时也会探讨部分挑战和汲取的经验教训。

关键要点在于:快速失败,不断迭代,勇于重试。此方法最重要的意义在于让升级过程不再那么令人恐惧,当升级出现问题时,可迅速恢复至原始状态。

挑战

我们许多大客户都拥有大型 RHEL 环境,自企业于 21 世纪初开始采用 Linux 以来,这些环境历经了数十年的发展和演变。企业组织本着实现应用工作负载部署和管理方式现代化的良好意图,试着采用虚拟化和容器化技术,但仍有大量运行 RHEL 的主机未能跟上这一步伐。这些应用运行于多年来备受精心呵护的“宠物”服务器上,由于经年累月进行手动更改,大量未跟踪的偏移现象不断累积。

正是由于难以对这些应用环境进行更改,导致企业组织仍采用旧版 RHEL。对于基础架构和运维团队来说,将平台迁移至新版 RHEL 通常较为简单,但重新部署“宠物”应用对于应用团队而言却是一项繁重的任务。要想摆脱所有技术债务,找到安全地重新部署工作负载的方法,成本会十分高昂且充满风险。因此,快速失败并从中吸取经验教训才是解决问题的关键所在。

简而言之:有一种更简便的方法可以将环境迁移到新版 RHEL,而无需触及应用。当大规模实施时,整个企业组织节省的成本将会迅速增加。

解决方案

我们扩展 RHEL 升级的方法是利用红帽 Ansible 自动化平台和 Ansible 验证内容来实现自动化。这些自动化方案能够处理从早期的 RHEL 6 到 7 版本升级,直至最新的 RHEL 9 到 10 版本升级,涵盖其间所有版本的升级。我们甚至看到客户在单个维护窗口期间自动执行跳跃式升级,例如从 RHEL 7 直接升级至 RHEL 9。 

该解决方案依赖于四大基本功能。

RHEL In-place Upgrade Automation - Key Features to Succeed at Scale (slide)

1.全面自动化

面向 RHEL 升级的端到端自动化,可将整个流程转化为一种易于使用的一键式服务,供运维团队和应用团队重复使用。 

2.支持回滚的快照功能

这是该方法最重要的功能,它能最大限度地降低应用影响风险,让人没有理由不升级。根据环境的不同,快照可通过逻辑卷管理器(LVM)、VMware 快照或 Relax-and-Recover(ReaR)备份实现自动化。尤其是,借助回滚功能,您能够快速失败并重试。

3.自定义模块

虽然 RHEL Leapp 框架会升级操作系统,但仍需开发自定义自动化来应对环境中的特定需求,例如标准的第三方工具和代理。

4.报告信息面板(可选,但非常有用)

借助报告信息面板,可跟踪整个 RHEL 资产的升级结果。它能够以可视化方式呈现 Leapp 生成的升级前报告,便于分析发现的问题,并汇总已完成的升级数量和进度指标。 

从百万次 RHEL 就地升级自动化实践中汲取的经验教训

如果说我们在协助客户实施这种方法的过程中学到了什么,那就是没有任何方案首次就能完美运行。我们无法预见所有“雪花式”的独特配置、低级第三方产品的影响以及外部环境因素等变量。实践证明,最佳策略是从低级别的实验室和开发环境着手,直接尝试升级。

我们称之为“快速失败”方法,这是快速开发解决方案的关键,可确保解决方案最终能够应对您环境中的任何特定变化。这种方法通过有意识地尝试升级(预期会失败)、观察失败情况、迅速回滚,并利用所学经验防止自动化失败,从而实现快速学习和迭代。

以下是“快速失败”方法对于 RHEL 就地升级自动化至关重要的原因:

  • 降低风险并提升信心
    • 在降低风险的所有要素中,快照回滚功能最为重要。这减轻了应用团队对升级风险太大的担忧。如果出现问题,系统可快速恢复到之前的状态,避免造成长时间中断。借助这种快速恢复功能,应用团队能够迅速升级,并解决银行等行业在合规性和监管要求方面的重大痛点。
    • 一位知名客户的应用团队曾对主机进行了多次升级和回滚测试,只为确保快照流程的可靠性。他们甚至在回滚前故意制造故障,只为验证这一点。
    • 类似地,一家大型银行客户将其首次裸机升级期间出现的“小故障”视为一种成功,因为这表明回滚机制发挥作用,验证了“快速失败”方法的可靠性。
    • 另一家资产规模较小的客户本着“快速行动,打破常规”的精神,并以自动化和回滚机制为支撑,仅用两周时间就成功升级了全部 60 台 RHEL 主机。
  • 加速开发和自动化优化
    • 借助“快速失败”方法,团队能够快速实现迭代,从而加速自定义自动化的开发进程。这种方法并非试图预见每一个可能会出现的问题,而是鼓励运行升级、观察哪些方面出现故障、执行回滚、自动执行修复,然后重复这个过程。
    • 这有助于确定和完善针对复杂自定义要求的解决方案,例如处理可能与新的 RHEL 版本不兼容的第三方工具、代理和中间件。例如,另一家银行客户使用这种方法来识别因升级而删除的第三方供应商软件包,并自动重新安装这些软件包。
    • 通过这种方法,可以发现“现实世界中的意外变数”,即环境中出现的意外偏移和变化,进而优化自动化方案以应对这些问题。
  • 克服企业组织层面的障碍
    • 失败可能伴随污名化效应,导致出现过度规避风险的行为。“快速失败”方法依托强大的回滚功能,通过证明失败不仅能得到快速安全的修复,更是一种快速学习方法,从而有效克服这种困境。
    • 当红帽受到中央 IT 或运维团队的质疑时,重点介绍“快速失败”方法及其为应用团队带来的益处,将会很有帮助。这种方法能展示解决方案如何为团队赋能,同时避免代价高昂的平台更换。
  • 支持规模化扩展
    • 通过迭代测试快速识别和解决问题,企业组织可以提高升级速度。例如,某位客户拥有超过 10 万个实例的 RHEL 资产,通过采用支持快速迭代和回滚的自助服务式自动化方案,在全球范围内实现了每月 8000 次升级。
    • 在进入生产阶段之前,能够在较低的环境(实验室和开发环境)中轻松测试和优化自动化,是避免中断和实现大量升级的最佳实践。

支持快速失败的关键组件详情如下:

  • 自动化快照和回滚功能:这是“快速失败”方法的基石。选项包括 LVM 快照或 VMware 快照。ReaR 备份也可用于“双重保险”方法,以防快照回滚机制无法正常运作。 
     
  • 自定义模块和自动化:官方的 Leapp 系统升级存储库及其执行器处理操作系统升级,但需要自定义 Ansible 任务或其他自定义 Leapp 执行器来管理特定于客户环境的第三方工具、代理和中间件。这些自定义自动化通过快速失败迭代进行完善。
     
  • 报告信息面板:Elastic 或 Splunk 等工具能够以可视化方式呈现升级前的结果并跟踪升级进度,帮助团队识别常见问题并完善自动化。

进一步了解 RHEL 升级

通过采用“快速失败”方法,大规模 RHEL 升级这项看似艰巨的任务转变为优先考虑学习和安全性的迭代过程,最终显著提升速度并迅速改善合规性。

  • 如何在 RHEL 7 维护期结束前自动升级
  • 红帽企业 Linux 7 维护期即将结束
  • infra.leapp Git 存储库:用于自动执行 RHEL 就地升级的 Ansible 角色集合,由蓬勃发展的上游社区提供支持。这些角色提供了使用 Leapp 框架执行升级前分析和 RHEL 升级的标准化方法。当您准备好开发专属的自定义 playbook 来为企业运行升级时,可考虑使用此 Ansible 集合中的角色,让您的工作变得更加轻松。
  • infra.lvm_snapshots Ansible 内容集:RHEL 就地升级自动化的关键构建块,提供专门用于 LVM 快照管理的角色。此集合提供了一些关键功能,例如用于创建定义的 LVM 快照卷集的快照创建功能(snapshot_create)、用于删除快照的快照删除功能(snapshot_remove),以及用于立即将系统恢复到之前捕获状态的快照恢复功能(snapshot_revert)。它还包括 shrink_lv(用于安全缩小逻辑卷大小,从而为快照释放空间)和 bigboot(用于扩大启动分区)等角色。
  • ripu-splunk 存储库:为旨在增强 RHEL 升级自动化解决方案的报告信息面板提供参考实施。此开源内容集提供了可导入到 Splunk Dashboard Studio 中的示例,包括升级前摘要、升级前详细信息报告以及升级进度时间表。

我们随时为您提供帮助

随着自动化升级在过去几年的不断发展,红帽咨询服务在协助众多客户推出解决方案方面发挥了关键作用。如果面对大型环境升级您感到不知所措或无从下手,红帽咨询服务可分享专业知识和指导,助您顺利达成目标,并有可能为您节省时间和金钱。

产品试用

红帽 Ansible 自动化平台 | 产品试用

无代理的自动化平台。

关于作者

Bob is an industry veteran with a lifetime of experience in IT dating back to the 1980s. Before coming to Red Hat in 2022, he held software consulting roles at DEC/HP and later moved to the banking industry as a pioneer leading Wall Street's early adoption of Linux. Today as a member of Red Hat's Customer-led Open Innovation team, he is committed to growing the community that's developing automation to make RHEL in-place upgrades successful at enterprise scale.

Bob Handlin has helped build and promote products in various parts of the tech industry for more than 20 years. He currently focuses on RHEL migrations and upgrades, but also assists with storage technologies and live patching.

UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Virtualization icon

虚拟化

适用于您的本地或跨云工作负载的企业虚拟化的未来