实现部署自动化

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

您可以将 Cloud Deploy 配置为自动执行与版本相关的 与发布相关的任务。这些任务包括 发行促销活动阶段推进

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

详细了解如何设置规则 明确了这些自动化操作的运作方式。

可以自动执行的操作

在 Cloud Deploy 中,您可以自动执行以下版本并 部署活动:

  • 推广版本

    您可以配置 Cloud Deploy 以提升您的版本 自动应用。例如,如果你的 devstagingprod,则可以配置自动化操作, ,以便将发布升级到 prod,而无需进一步人工干预 一旦成功部署到 staging 中,即会启用交互。

  • 推进发布

    您可以将 Cloud Deploy 配置为从一个 阶段至 阶段推进 仅适用于使用 Canary 部署策略

自动化是如何运作的?

每项自动化操作都与其所使用的交付流水线相关联。禁止的行为 在多个交付流水线之间共享自动化操作。

以下是配置和执行 自动化:

  1. 配置自动化操作

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

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

    这会创建 自动化资源

  3. 您可以通过以下方式调用与此自动化操作关联的交付流水线:

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

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

    如果自动化操作为 promoteReleaseRule

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

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

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

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

    1. 执行会等待被标识的 源代码阶段 如果有的话

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

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

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

    3. 发布会自动从该源代码阶段推进到下一阶段 部署阶段

    4. 如果有其他源阶段,也会受到相同的处理,包括 相同的等待时间(如果适用)。

Automation 资源

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

  • 自动化

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

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

    有关 Automation 资源的配置,请参阅此文档 自动化操作资源简介

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

  • 自动化运行

    AutomationRun 是自动化操作的一个实例。它是指向 相应的 Automation 资源,以及 以及其他元数据。

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

详细了解自动化操作资源

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

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

配置自动化

请参阅 配置文件架构 详细了解如何在 Pod 内 Automation 资源

Automation 规则配置

除了这项自动化配置外,您还可以指定 自动化规则。配置不同 可用规则

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

暂停自动化操作

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

  1. Automation 配置、 将 suspended 属性设置为 true

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

  3. 平台日志 自动化操作也会实例化,即使其已暂停。您可以使用它 在不影响交付流水线的情况下调试自动化。

后续步骤