在 Cloud Deploy 中运行分析作业

借助 Cloud Deploy,您可以使用所选的监控平台和指标来分析已部署应用的性能。您可以根据这些分析的结果采取相应措施,例如自动回滚部署

Cloud Deploy 支持 Google Cloud Observability,并且可以扩展以支持其他监控平台,例如 DatadogPrometheus

虽然 Cloud Deploy 提供部署验证,您可以使用该功能运行任意容器来验证部署,但分析功能可让您使用 Google Cloud Observability 或您选择的监控服务中的遥测数据来评估应用随时间的性能。

您可以在任何目标环境(例如,预发布或生产环境)中运行分析作业

支持的指标提供方

Cloud Deploy 支持使用以下任一方式提供的指标进行分析:

  • 直接与 Google Cloud Observability 提醒政策集成,基于 Google Cloud Observability 中的遥测和日志

  • 与非 Google 指标系统(例如 Prometheus 或 Datadog)集成

    这种自定义分析要求组织提供容器,其中包含支持特定指标系统的功能。

    Google Cloud 提供了与 Datadog 的集成示例

Cloud Deploy 分析的工作原理

本部分介绍了 Cloud Deploy 如何使用 Google Cloud Observability 提醒政策进行分析。如果您的组织创建自定义容器以使用其他指标提供方,则部分功能将由您的自定义容器处理。

  • 在您选择的指标系统中配置指标。

    Cloud Deploy 支持 Google Cloud Observability,无需进行任何自定义设置。您还可以通过创建自定义容器来处理遥测数据,从而使用自己选择的指标提供程序。

    了解详情

  • 配置提醒政策

    如果您使用 Google Cloud Observability 收集遥测数据,则可以使用提醒政策来检测遥测数据何时指示存在问题。

    如果您使用的是其他指标提供方,则提醒功能由该工具或您的自定义容器负责。

  • 配置分析作业

    这包括交付流水线的配置文件中的 analysis stanza。

    分析作业包含一项或多项分析检查,每项检查都会根据 Google Cloud Observability 或您的指标提供方提供的日志或指标来评估已部署应用的行为。分析作业会运行指定时长。

  • 部署应用

    分析作业在部署作业之后运行,如果您的发布版本包含验证作业,则在验证作业之后运行;如果您的发布版本包含任何部署后作业,则在这些作业之前运行。

  • 分析作业运行

    应用部署后(以及任何验证作业完成后,如果有),指标提供方会收集有关正在运行的应用的遥测数据。分析作业会等待您配置的时间量 (duration)。如果触发了提醒(如果您使用 Google Cloud Observability 作为指标提供方),或者您的自定义容器返回了非零退出代码,则分析作业会失败,您的发布也会失败。

    如果所有检查均未发现问题,则分析会在时长到期后完成,并且发布成功。

将分析与自动化操作搭配使用

您可以指定要用于分析作业的自动化

例如,如果您想在应用部署到 staging 后对其进行分析,然后在分析完成且未发现任何提醒的情况下自动将相应版本升迁到 prod,则可以使用 promoteReleaseRule 自动化

或者,如果您希望在分析作业发现 prod 中存在问题时自动回滚版本,可以使用 repairRolloutRule 自动化

您无需使用自动化功能,即可使用分析作业并从中获益。

自定义分析

Cloud Deploy 分析支持来自 Google Cloud Observability 的提醒和指标。不过,您也可以将 Cloud Deploy 分析与非Google Cloud指标提供方搭配使用。

自定义分析的配置与标准分析的配置类似,不同之处在于,分析中的每个检查都包含一项任务,该任务引用您提供的容器、要在该容器上运行的命令以及要传递给该容器的任何适用的环境变量。此自定义分析中的每项检查还包括一个频率,即运行检查的频率。

了解详情

使用 Canary 进行分析

Cloud Deploy 分析的典型用途是与 Canary 部署策略搭配使用。借助 Canary,您可以使用 Google Cloud Observability 或您选择的提供商提供的指标来确定是否将发布推进到下一阶段。

您还可以将advanceRolloutRule自动化与分析搭配使用。例如,在 stable 之前的 Canary 阶段,您可以添加一个分析作业来确保正常运行时间,并使用自动化功能根据该分析的结果将发布推进到 stable 或不推进。

如果您使用自定义或自定义自动化 Canary 部署,则需要在要分析的每个阶段的配置中配置分析作业

详细了解 Canary 部署

分析作业运行状态

以下是分析作业运行的可能状态:

  • IN_PROGRESS

    分析已开始,仍在运行中。除非您取消,否则发布会一直处于IN_PROGRESS状态。

  • FAILED

    分析作业检测到来自 Google Cloud Observability 的提醒,或收到了自定义容器的非零退出代码。发布作业状态现在为 FAILED。不过,如果您忽略或重试分析作业,发布状态会更新为 IN_PROGRESS

  • SUCCEEDED

    分析已完成(duration已过期),并且未收到任何不利指标的指示。所有其他阶段和作业完成后,发布状态会变为 SUCCEEDED

后续步骤