实现部署自动化

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

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

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

详细了解如何设置用于定义这些自动化操作运作方式的规则。

可自动执行的操作

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

  • 提升版本

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

  • 提前发布

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

自动化功能的运作方式

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

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

  1. 配置自动化操作

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

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

    这会创建自动化资源

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

  4. 至少有一个目标平台成功发布了应用。

  5. 在配置了这项自动化操作的目标中...

    如果自动化操作是 promoteReleaseRule

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

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

    3. 此版本会自动提升到流水线中的下一个目标 或达到特定目标 (如已指定)

    如果自动化操作为 advanceRolloutRule 且目标使用 Canary 部署策略:

    1. 执行会等待标识的来源相位(如果有)。

      sourcePhase 属性为可选属性;如果没有源阶段,则为可选属性 系统会自动推进发布过程中的每个阶段。通过 当源阶段 IN_PROGRESS,适用 wait 次优惠。

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

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

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

    4. 如果有额外的来源阶段,系统会对其进行相同的处理,包括等待时间(如果适用)。

Automation 资源

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

  • 自动化

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

    • 指向要使用自动化功能的目标或目标的指针
    • 用于管理自动化操作的操作和方式的规则

    自动化资源简介一文介绍了自动化资源的配置。

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

  • 自动化运行

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

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

详细了解自动化资源

Automation 规则

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

详细了解自动化规则

所需的 Identity and Access Management 角色和权限

除了拥有运行任何 Cloud Deploy 所需的权限外 并执行自动化任务(例如推进 必须拥有多项权限才能执行 对 AutomationAutomationRun 资源执行某些操作:

  • 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 角色和权限 更多信息,包括 角色具备这些权限

创建自动化操作

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

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

配置自动化

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

自动化操作规则配置

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

请参阅 使用自动化规则为每个项的说明 可用规则的一部分

暂停自动化操作

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

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

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

  3. 在自动化操作实例化时,系统仍会生成平台日志,即使自动化操作处于暂停状态也是如此。您可以使用此方法测试和调试自动化操作,而不会影响交付流水线。

后续步骤