实现部署自动化

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

您可以将 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 中。

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

    3. 该版本会自动提升到流水线进度中的下一个目标,或如果指示到特定目标。

    如果自动化操作为 advanceRolloutRule 并且目标使用 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 角色和权限

除了运行任何 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 角色和权限。如需了解详情,包括哪些 Cloud Deploy 角色包含这些权限

创建自动化操作

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

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

配置自动化操作

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

Automation 操作规则配置

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

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

暂停自动化操作

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

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

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

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

后续步骤