发布策略

本文档介绍了 App Lifecycle Manager 中提供的发布策略,用于管理如何在应用产品中的各个单元之间部署发布版本。

在管理分布式 SaaS 应用时,如果发生意外回归,在所有客户环境中同时部署更新可能会导致大范围服务中断。发布策略通过控制软件版本在逻辑和物理故障域中的发布速度、顺序和影响范围,来保护服务可用性。通过在 App Lifecycle Manager 中配置发布策略,您可以自动执行逐步推出、在部署波次之间引入过渡时间,并定义错误预算,以便在有问题的发布版本影响所有客户之前将其停止。

发布策略概览

App Lifecycle Manager 提供可配置的发布策略,用于管理应用产品中的单元的更新方式。这些发布策略遵循 Google Cloud的变更方法,在整个应用产品中应用一致的分阶段部署做法。

使用发布策略可最大限度地减少对客户的不利影响,并将问题隔离到各个逻辑和物理故障域。您可以通过创建发布种类来定义发布策略,该种类指定了以下策略之一:

  • 一次一个位置(简单) (Google.Cloud.Simple.OneLocationAtATime):一次更新一个位置,位置之间无需等待。系统会在某个位置内任意选择单元,在给定时间最多更新该位置 5% 的单元。

    建议在开发环境和紧急场景中使用此策略。

  • 一次全部(简单) (Google.Cloud.Simple.AllAtOnce):所有位置同时开始更新。

    建议在开发环境和紧急场景中使用此策略。

  • 渐进式(逐步) (Google.Cloud.Progressive.Gradual.v1):在每个位置,单元会按基于百分比的静态批次(例如 1%、10%、20%、30% 和约 40%)进行更新,批次之间有过渡时间。在不同位置,发布会以指数级增加并发位置数量(例如,一个位置,然后是两个,然后是四个),并在波次之间设置浸泡时间(例如 18 小时)。系统会随机选择一个位置内的单元。

    此策略旨在跨多个位置实现安全且可预测的发布。它首先从小范围开始,然后随着信心的增强而逐步扩大范围。我们建议在多个位置的生产环境中使用此策略。

  • 渐进式(单个位置)(Google.Cloud.Progressive.SingleLocation.v1):单元会以基于百分比的静态批次(例如 1%、10%、20%、30% 和约 40%)进行更新,批次之间的过渡时间较长(例如 18 小时),以便留出充足的时间来检测问题并限制发布更改的不利影响。

    此策略专为在单个位置运营的应用产品量身定制,优先考虑安全性和谨慎性。我们建议在具有一个位置的生产环境中使用此策略。

配置发布类型和安全措施

创建发布种类时,您需要将发布策略与目标 UnitKind 相关联,并可以配置其他安全措施:

  • 错误预算 (error_budget):如果失败的单元更新数量或百分比超过您配置的阈值(allowed_count 或 allowed_ratio),则会自动暂停发布。

  • 单元过滤条件 (unit_filter):在使用 Google Cloud CLI 时应用通用表达式语言 (CEL) 过滤条件字符串,以限制发布的目标单元的符合条件的群体。

  • 区域范围:支持的发布位置由应用产品上配置的可用区域决定。如需详细了解区域如何影响发布传播,请参阅 App Lifecycle Manager 区域化。

后续步骤