本文档介绍了 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 区域化。
后续步骤
如需了解如何创建版本、发布作业种类和发布作业,请参阅更新 SaaS 产品。
了解区域和资源复制在 App Lifecycle Manager 区域化中的工作原理。
如需详细了解 App Lifecycle Manager,请参阅 App Lifecycle Manager 概览。