实现部署自动化

本文档简要介绍了部署自动化。

您可以将 Cloud Deploy 配置为自动执行给定交付流水线与发布和发布相关的任务。这些任务包括版本推广阶段推进

详细了解 Cloud Deploy 中用于发布自动化的资源。

详细了解如何设置规则来定义这些自动化操作的工作原理。

可以自动执行的操作

在 Cloud Deploy 中,您可以自动执行以下发布和发布活动:

  • 升级版本

    您可以将 Cloud Deploy 配置为在成功发布到目标后自动提升版本。例如,如果您有三个目标:devstagingprod,则可以配置自动化操作,以便在成功部署到 staging 后,无需进一步的人工互动即可将版本提升为 prod

  • 推进发布

    您可以对 Cloud Deploy 进行配置,以便在成功发布到上一个目标后,将发布从一个阶段推进到下一个阶段。阶段推进仅适用于使用 Canary 部署策略的目标。

自动化技术是如何运作的?

每项自动化操作都与使用它的交付流水线相关联。您无法在多个交付流水线之间共享自动化操作。

以下是配置和执行自动化操作的一般流程:

  1. 配置自动化操作

    此自动化操作与一个交付流水线相关联。

  2. 您可以使用 gcloud deploy apply 注册该自动化操作。

    这将创建自动化资源

  3. 您可以通过创建版本来调用与此自动化操作关联的交付流水线。

  4. 已成功发布到至少一个目标。

  5. 在为此自动化操作配置的目标值中...

    如果自动化操作为 promoteRelease

    1. 执行等待发布成功进入源目标。来源目标是为自动化操作配置的 selector.target,而不是在 AutomationRule 中。

    2. 如果配置了 wait 时间,则执行也会等待该时间。

    3. 版本会自动提升到流水线运行过程中的下一个目标,或提升到特定目标(如果指示)。

    如果自动化操作为 advanceRollout 并且目标使用 Canary 部署策略,则:

    1. 执行将等待已确定的源阶段(如果有)。

      sourcePhase 属性是可选的,如果未指定来源阶段,则发布中的每个阶段都会自动推进。当源阶段处于 IN_PROGRESS 状态时,会发生自动相位,具体取决于 wait 时间。

    2. 如果配置了 wait 时间,则执行也会等待该时间。

      在自动执行 Canary 部署时,您可以使用此等待时间指定每个 Canary 阶段的时长。

    3. 发布会自动从该来源阶段推进到发布的下一阶段。

    4. 如果存在额外的来源阶段,系统会将其视为相同,包括相同的等待时间(如果适用)。

Automation 资源

有两个 Cloud Deploy 资源专门用于自动化:

  • 自动化

    Automation 是交付流水线的子资源,其中包含以下信息:

    • 指向使用自动化功能的一个或多个目标的指针
    • 一条或多条规则,用于控制自动化操作及其执行方式

    如需了解 Automation 资源的配置,请参阅自动化资源简介文档。

    当您对包含自动化配置 (kind: Automation) 的文件运行 gcloud deploy apply 时,Cloud Deploy 会创建一个自动化资源,该资源将交付流水线和目标与一个或多个自动化规则相关联。

  • 自动化运行

    AutomationRun 是自动化操作的实例。它是指向其相应 Automation 资源的指针,以及生成该资源的发布的相关信息以及其他元数据。

    自动化操作会在触发自动化操作时创建。

详细了解自动化资源

Automation 规则

自动化规则定义了可在交付流水线上自动执行的操作,以及有关如何执行自动化操作的详细信息。

详细了解自动规则

需要 Identity and Access Management 角色和权限

要对 AutomationAutomationRun 资源执行某些操作,您除了需要运行任何 Cloud Deploy 交付流水线和执行自动执行的任务(如推进发布)所需的权限,还需要具备多项权限:

  • clouddeploy.automations.create
  • clouddeploy.automations.delete
  • clouddeploy.automations.get
  • clouddeploy.automations.list
  • clouddeploy.automations.update
  • clouddeploy.automationRuns.cancel
  • clouddeploy.automationRuns.get
  • clouddeploy.automationRuns.list

请参阅 IAM 角色和权限了解详情,包括哪些 Cloud Deploy 角色包含这些权限

创建自动化操作

您可以创建自动化操作,包括使用任何可用的自动化规则,方法是配置自动化操作,然后使用 gcloud deploy apply 创建自动化资源

请参阅下一部分(配置自动化)和配置自动化规则

配置自动化操作

如需详细了解如何配置 Automation 资源,请参阅配置文件架构

Automation 规则配置

除了此自动化配置之外,您还可以指定自动规则。每条可用规则的配置各不相同。

如需查看每个可用规则的说明,请参阅使用自动化规则

暂停自动化操作

您可以暂停现有资源而不将其删除。这可用于在不影响交付流水线的情况下测试自动化操作。暂停自动化操作后,系统不会运行自动化操作,但仍会生成平台日志

  1. Automation 配置中,将 suspended 属性更新为 true

  2. 针对该配置文件运行 gcloud deploy apply

  3. 实例化自动化操作时,即使已暂停,系统仍会生成平台日志。您可以使用它来测试和调试自动化操作,而不会影响交付流水线。

后续步骤