发布版本

本文档介绍了如何使用 App Lifecycle Manager 发布版本。

App Lifecycle Manager 支持使用发布在多个已预配的单元中进行更新。发布以单元的 UnitKind 为目标,并且可以选择应用过滤条件 (unit_filter),以便使用 Google Cloud CLI 以特定单元子集为目标。这样,您就可以在已部署的基础架构中进行受管理更新。您可以通过将单元升级到之前的版本来执行回滚。

如需对单个特定单元执行操作,请使用单元详细信息 页面上提供的控件。

准备工作

在更新应用产品之前,您应执行以下操作:

创建版本

您必须先创建版本,然后才能更新应用产品。 版本表示 SaaS 应用的特定版本,该版本由蓝图软件包及其关联的配置定义。 实际上,版本包含对单元的更新。

控制台

  1. 前往 App Lifecycle Manager。

    前往 App Lifecycle Manager

  2. 点击版本 。

  3. 在版本 页面上,点击创建 。

  4. 在创建版本 页面上:

    1. 在版本名称 框中,为版本输入一个唯一的名称。
    2. 在单元种类 框中,选择与此版本关联的单元种类。
    3. 在仅可从以下版本升级(可选) 部分中,您可以选择单元可以从哪些版本升级到此版本。这样,您就可以控制升级路径。
    4. 在创建蓝图 和存储蓝图 步骤中,选择或创建蓝图。如需详细了解蓝图创建选项,请参阅 蓝图文档 。
    5. 在变量(可选) 部分中,您可以选择为此版本设置输入变量。如需详细了解如何设置变量,请参阅 变量文档 。

  5. 点击创建 。

  6. 您已创建版本。您可以在版本详细信息 页面上查看版本详细信息。创建发布时,您可以引用此版本。

gcloud

如需使用 Google Cloud 控制台创建版本,请执行以下操作:

gcloud beta app-lifecycle-manager releases create RELEASE_NAME --blueprint-package=BLUEPRINT_PACKAGE_URI --unit-kind=UNIT_KIND [--location=LOCATION] [--labels=[KEY=VALUE,...]] [--upgradeable-from-releases=[RELEASE_NAME,...]] [--input-variable-defaults=[variable=VARIABLE,value=VALUE,type=TYPE,...]]

将以下内容替换为相应的值:

  • RELEASE_NAME:您要创建的版本的 ID。此 ID 将成为版本的完整资源名称的一部分。
  • BLUEPRINT_PACKAGE_URI:要用于此版本的蓝图软件包的 URI。蓝图是托管在 Artifact Registry 或其他 OCI 注册表中的 OCI 映像。
    • 蓝图软件包包含预配单元所需的制品,并包含有关所用引擎 (Terraform) 的元数据以及版本。
    • 如果您在 URI 中省略主机名,则系统会默认使用区域 Artifact Registry 路径(例如 us-east1-docker.pkg.dev)。
    • 如需详细了解如何创建蓝图,请参阅蓝图文档 。
  • UNIT_KIND:此版本对应的单元种类的 ID 或完全限定标识符。UNIT_KIND 创建版本后,便无法更改 。
  • LOCATION:您要在其中创建版本的区域。如果未提供完整 URI 路径,此标志会为版本位置提供回退值。默认使用在 Google Cloud CLI 环境中配置的位置。
  • LABELS:(可选)要应用于版本的标签,用于进行分类。标签是键值对。
    • 键必须以小写字符开头,并且只能包含连字符、下划线、小写字符和数字。
    • 值只能包含连字符、下划线、小写字符和数字。
    • 例如:--labels=environment=staging,team=app-lifecycle-manager
  • UPGRADEABLE_FROM_RELEASES:(可选)逗号分隔列表,其中包含版本名称,用于指定可以使用您创建的新版本更新哪些现有版本。
    • 如果您将此标志留空,则对哪些版本可以更新到此版本没有任何限制。
    • 如果提供此标志,则对此版本的单元更新请求将强制执行此限制。
  • INPUT_VARIABLE_DEFAULTS:(可选)蓝图所需的输入变量的默认值。
    • 您可以内联指定变量默认值,也可以引用 YAML 或 JSON 文件。
    • 在此处定义的变量可以在创建发布期间被替换。

如需详细了解如何设置变量,请参阅变量文档。 如需详细了解版本,请参阅 Release Google Cloud CLI 参考。

创建发布种类

您需要先创建发布种类,然后才能创建发布。 发布种类充当如何将版本部署到单元的模板。

控制台

  1. 前往 App Lifecycle Manager。

    前往 App Lifecycle Manager

  2. 点击发布种类 。

  3. 在发布种类 页面上,点击创建 。

  4. 在创建发布种类 页面上:

    1. 在发布种类名称 框中,为发布种类输入一个名称。
    2. 在单元种类 框中,选择单元种类,详细说明您希望版本发布到的单元类型。
    3. 在发布策略 下拉列表中,选择您要用于将版本部署到单元的策略:

      • 一次一个位置(简单):一次更新一个位置(没有过渡时间)。同时更新最多 5% 的单元。
      • 一次全部(简单):所有位置同时开始发布(非常适合开发环境和紧急情况)。
      • 渐进式(逐步):在多个位置以指数方式逐步发布更新(有过渡时间)。
      • 渐进式(单个位置):以百分比批次更新单元,并延长过渡时间,以便检测单个位置内的问题。

      如需详细了解发布策略,请参阅发布策略。

  5. 点击创建 。

  6. 您已创建发布种类。在发布种类详细信息 页面上,您可以查看和修改发布种类的参数。

gcloud

如需使用 Google Cloud 控制台创建发布种类,请执行以下操作:

  gcloud beta app-lifecycle-manager rollout-kinds create ROLLOUT_KIND_NAME --unit-kind=UNIT_KIND --location=LOCATION --rollout_strategy=ROLLOUT_STRATEGY --error_budget=ERROR_BUDGET --unit_filter=UNIT_FILTER --update_unit_kind_default=UPDATE_UNIT_KIND_DEFAULT

将以下内容替换为相应的值:

  • ROLLOUT_KIND_NAME:发布种类的名称。
  • UNIT_KIND:定义您要将版本应用到哪些单元。版本将应用于所选单元种类的所有单元。
  • LOCATION:您要在其中创建发布种类的区域。
  • ROLLOUT_STRATEGY:定义发布种类的发布策略。可能的值包括:

    • Google.Cloud.Simple.OneLocationAtATime:一次更新一个位置(没有过渡时间)。同时更新最多 5% 的单元。
    • Google.Cloud.Simple.AllAtOnce:所有位置同时开始发布(非常适合开发环境和紧急情况)。
    • Google.Cloud.Progressive.Gradual.v1:在多个位置以指数方式逐步发布更新(有过渡时间)。
    • Google.Cloud.Progressive.SingleLocation.v1:以百分比批次更新单元,并延长过渡时间,以便检测单个位置内的问题。

    如需详细了解发布策略,请参阅发布策略。

  • ERROR_BUDGET:错误预算的配置。 如果失败的单元数超过 error_budget 上限(由 allowed_count、allowed_ratio * total_units 定义),则发布将暂停。如果未设置 error_budget,App Lifecycle Manager 将尝试更新所有单元,无论遇到多少失败。

  • UNIT_FILTER: CEL 格式的过滤条件字符串,用于针对单元。系统将应用此过滤条件来确定符合条件的单元群体。此过滤条件只能缩小发布的范围, 而不能扩大发布的范围。

  • UPDATE_UNIT_KIND_DEFAULT:用于更新单元种类的配置。默认情况下,单元种类将在发布开始时更新。可能的值包括:

    • UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED:单元种类更新策略未指定。
    • UPDATE_UNIT_KIND_STRATEGY_ON_START:在发布开始时更新单元种类策略。
    • UPDATE_UNIT_KIND_STRATEGY_NEVER:永不更新单元种类策略。

如需了解详情,请参阅 RolloutKind Google Cloud CLI 参考。

错误预算功能

App Lifecycle Manager 包含错误预算功能(RolloutKind 中的 ErrorBudget)作为保障措施。如果单元更新失败的数量或百分比(例如在应用基础架构期间)超过配置的阈值,此功能可以自动暂停发布,从而有助于限制更新期间潜在问题的影响。

创建发布

创建发布种类后,您可以创建发布,指定要使用哪个版本更新单元。

创建发布后,App Lifecycle Manager 会根据单元种类中定义的策略更新单元。

控制台

  1. 前往 App Lifecycle Manager。

    前往 App Lifecycle Manager

  2. 点击发布 。

  3. 在发布列表 页面上,点击创建 。

  4. 在创建发布 页面上:

    1. 在发布种类 框中,选择发布种类,详细说明如何将版本发布到指定的单元。
    2. 在版本 框中,指定要用于更新单元的版本。
    3. 在发布名称 框中,为发布输入一个名称。
  5. 点击创建 。

  6. 您的发布已创建。

    在全局发布详细信息 页面上,您可以监控发布详细信息,包括发布状态、发布进度(按单元数)和发布失败。

gcloud

如需使用 Google Cloud 控制台创建发布,请执行以下操作:

  gcloud beta app-lifecycle-manager rollouts create ROLLOUT_NAME --rollout-kind=ROLLOUT_KIND_NAME --release=RELEASE_NAME --location=LOCATION

将以下内容替换为相应的值:

  • ROLLOUT_NAME:发布的名称。
  • ROLLOUT_KIND_NAME:定义您要使用哪个发布种类将版本应用到单元。版本将应用于发布种类中定义的单元种类的所有单元。
  • RELEASE_NAME:定义您要部署到单元的版本二进制文件。
  • LOCATION:您要在其中创建发布的区域。

如需了解详情,请参阅 Rollout Google Cloud CLI 参考。

后续步骤