Google Cloud Deploy 概览

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Google Cloud Deploy 是一项代管式服务,可按指定升级序列自动将您的应用交付到一系列目标环境。如果您要部署更新后的应用,则需要创建一个版本,其生命周期交付流水线管理。

Google Cloud Deploy 流水线的工作原理

Google Cloud Deploy 交付流水线包含以下信息:

  • 用于指代交付流水线的名称和说明。

  • 题设序列,描述部署到已配置目标的顺序。

  • (可选)标签和注解

  • (可选)目标定义本身。

可以在同一交付流水线配置文件或一个或多个单独的文件中定义目标。多个交付流水线可以使用相同的一个或多个目标,但给定目标在给定的交付流水线中只能使用一次。

Google Cloud Deploy 交付流程

下文介绍了简单的 Google Cloud Deploy 持续交付场景中发生的情况。

  1. 您在 YAML 配置文件中定义交付流水线

    此配置文件定义将应用部署到一系列目标的提升序列。

    您还需要 Skaffold配置,Google Cloud Deploy 需要该配置才能执行渲染和部署操作。

  2. 您可以在流水线配置文件或一个或多个单独的文件中定义目标。

  3. 您可以在 Google Cloud Deploy 服务中注册流水线。

    现在,服务知道了您的应用,因此会根据您定义的提升序列管理部署到目标的操作。

  4. CI 流程的输出包括对 Google Cloud Deploy 的调用以启动交付流水线。

    此调用会创建 release 资源,该资源表示每个目标的已渲染清单,每个清单都是使用提供的渲染来源、skaffold.yaml 和对要部署的特定容器映像的引用生成的。第一次调用以创建发布时,Google Cloud Deploy 会自动创建 rollout 资源,以将版本与第一个目标环境关联。根据该发布,您的应用会部署到第一个目标。

    您可以使用任何 CI 工具,只要它输出一个或多个容器映像以提供给 Google Cloud Deploy 交付流水线。

    此外,创建发布和调用交付流水线的调用不必来自 CI 工具。它可以来自脚本或响应 CI 过程完成的任何系统。

  5. 准备好将应用部署到下一个目标后,调用 Google Cloud Deploy 来提升到该目标。

    在每种情况下,调用提升的调用都会导致 Google Cloud Deploy 创建新的发布。

  6. 提升会继续以完成提升序列中的所有目标,最后一个是 prod(或您用于将应用部署到生产的最终目标的任何名称)。

    Google Cloud Deploy 服务架构中更详细地介绍了版本创建和提升的过程。

在整个流水线执行期间,Google Cloud Deploy 会收集指标和审核详细信息。

提升

提升版本就是将版本部署到流水线中定义的提升序列中的下一个目标。首次调用 Google Cloud Deploy 会创建一个 release,然后创建一项 rollout 资源,用于部署到升级序列中的第一个目标。之后每次调用以提升版本都会导致发布到下一个目标。

批准

您可以指定需要批准才能提升到任何目标。例如,您可能需要获得批准才能提升到生产目标。如需要求批准目标,请在目标定义中设置 requireApproval 属性。

当目标需要审批时,Google Cloud Deploy 会生成可供集成系统使用的 Pub/Sub 消息。例如,工单系统可以订阅消息以启动审批工作流。

如需详细了解促销活动以及如何管理促销活动审批,请参阅需要审批

通知

Google Cloud Deploy 提供针对以下事件的 Pub/Sub 通知:

  • 渲染:开始、成功和失败
  • 部署:开始、成功和失败
  • 需要获得批准
  • 批准已获得批准
  • 批准请求遭拒

Google Cloud Deploy 使用 Pub/Sub 主题发送这些通知。

如需了解详情,请参阅在流水线中使用通知

回滚

Google Cloud Deploy 支持回滚已在任何目标中部署的应用。Google Cloud Deploy 中的回滚包括针对上次成功部署的版本触发发布。新发布的作业使用的参数与成功部署所用的参数相同。

如需了解详情,请参阅回滚部署

Skaffold 和 Google Cloud Deploy 简介

Google Cloud Deploy 使用 Skaffold 进行渲染、部署和验证。借助 Skaffold,您还可以轻松地将本地开发循环连接到 Google Cloud Deploy 持续交付流水线。

如需详细了解 Google Cloud Deploy 如何与 Skaffold 集成,请参阅 Skaffold 概览

Google Cloud Deploy 与其他 Google Cloud 工具

Google Cloud Deploy 支持 CI/CD 流水线上游中的几乎任何工具。也就是说,您可以使用任何开发环境和源代码库、任何持续集成 (CI) 系统和任何工件代码库。

在下游,Google Cloud Deploy 仅部署到 Google Kubernetes Engine。

如果您主要使用 Google Cloud 工具,则从源代码到生产环境的流程如下所示:

  1. 使用 Cloud Code 来创建应用来源。

    Cloud Code 扩展了几种流行的 IDE(VS Code、IntelliJ 和 Cloud Shell),以便更轻松地构建应用以在 Google Cloud 上部署和运行。

  2. 使用 Skaffold 来管理本地开发循环。

    Google Cloud Deploy 通过 Cloud Build 使用 Skaffold 来渲染和部署清单。这种集成意味着您需要维护 skaffold.yaml 文件,但并不意味着您需要将 Skaffold 添加到本地开发流程中。不过,您可以利用它来持续开发

  3. 使用 Cloud Build 构建应用。

    借助 Cloud Build,您可以设置 CI 流水线,该流水线可由提交到源代码库触发。Cloud Build 的输出将是包含可部署容器映像的工件。您可以添加对 Google Cloud Deploy 的调用以创建发布以及调用交付流水线。

  4. 将工件存储在 Artifact Registry 中。

    Google Cloud Deploy 从 Artifact Registry 检索容器映像,这些映像可让您集中存储工件和依赖项。

  5. 在 Google Cloud Deploy 中配置您的交付流水线,以获取容器映像并在 n 个目标的进展中部署它。

    交付流水线中标识的每个目标都代表最终部署应用的 GKE 集群或 Anthos 集群。

  6. 在 GKE 或 Anthos 上管理您的应用。

    GKE 是 Google Cloud 管理的环境,用于在 Kubernetes 上运行容器化应用。

    Anthos 可为云端和本地环境提供一致的开发和运营体验。

  7. 使用 Google Cloud 的运维套件监控应用的性能。

    Google Cloud 的运维套件为您的应用提供集成式监控和日志记录功能。

后续步骤