本文档介绍了如何使用 SaaS 运行时推出版本。
SaaS 运行时支持使用发布在多个已配置的单元中进行更新。发布会根据单元的 UnitKind 来确定目标单元,并且可以选择性地应用过滤条件 (unit_filter),以便使用 Google Cloud CLI 定位到特定的单元子集。这样,您就可以在整个部署基础架构中管理更新。通过将单元升级到之前的版本,可以执行回滚。
如需对单个特定单元执行操作,请使用单元详情页面上提供的控件。
准备工作
在更新 SaaS 产品之前,您应:
- 确保您已启用 SaaS 运行时。
- 确保您拥有创建 SaaS 产品所需的 IAM 权限。
- 创建 SaaS 产品。
- 创建 UnitKind。
- 创建并配置一个 Unit。
- 准备新的或修改后的 Terraform 蓝图。
创建版本
您必须先创建版本,然后才能更新 SaaS 产品。发布是指 SaaS 应用的特定版本,由蓝图软件包及其关联的配置定义。从本质上讲,发布版本包含对单元的更新。
控制台
前往 SaaS 运行时。
点击发布版本。
在发布的作品页面上,点击创建。
在创建版本页面上:
点击创建。
您已创建版本。您可以在版本详情页面上查看版本详情。您将能够在创建发布作业时引用此版本。
gcloud
如需使用 Google Cloud 控制台创建发布版本,请执行以下操作:
gcloud beta saas-runtime 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。此值将成为发布版本的完整资源名称的一部分。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=saas-runtime
UPGRADEABLE_FROM_RELEASES:(可选)一个以英文逗号分隔的发布版本名称列表,用于指定哪些现有发布版本可以更新为您创建的新发布版本。- 如果您将此标志留空,则不会限制哪些版本可以更新到此版本。
- 如果提供,则针对此发布版本的单元更新请求将强制执行此限制。
INPUT_VARIABLE_DEFAULTS:(可选)蓝图所需的输入变量的默认值。- 您可以通过内嵌方式或引用 YAML 或 JSON 文件来指定变量默认值。
- 此处定义的变量可在创建发布时被替换。
如需详细了解如何设置变量,请参阅变量文档。
如需详细了解版本,请参阅 Release Google Cloud CLI 参考文档。
创建发布种类
在创建发布之前,您需要创建发布类型,作为将发布版本部署到设备的方式的模板。
控制台
前往 SaaS 运行时。
点击发布类型。
在发布类型页面上,点击创建。
在创建发布种类页面上:
- 在发布版本类型名称框中,输入发布版本类型的名称。
- 在单元种类框中,选择详细说明您希望发布版本推出的单元类型的单元种类。
在发布策略下拉菜单中,选择您希望用于将发布版本部署到设备上的策略:
- 一次一个位置(简单):一次更新一个位置(无浸泡时间)。同时更新最多 20% 的设备。
- 一次全部(简单):所有位置同时开始推出(非常适合开发环境和紧急情况)。
- 渐进式:以指数方式逐步按百分比分批在多个位置(具有浸泡时间)推出更新。
- 渐进式(单个位置):以百分比为单位分批更新设备,并延长浸泡时间,以检测单个位置内的问题。
如需详细了解发布策略,请参阅发布策略。
点击创建。
您已创建发布种类。在发布种类详情页面上,您可以查看和修改发布种类的参数。
gcloud
如需使用 Google Cloud 控制台创建发布版本类型,请执行以下操作:
gcloud beta saas-runtime 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:一次更新一个位置(不含浸泡时间)。同时更新最多 20% 的设备。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,SaaS 运行时将尝试更新所有单元,无论遇到多少次失败。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 参考文档。
错误预算功能
SaaS 运行时包含错误预算功能(RolloutKind 中的 ErrorBudget),可作为一种安全措施。如果单元更新失败(例如在基础设施应用期间)的数量或百分比超过配置的阈值,系统可以自动暂停发布,从而有助于限制更新期间潜在问题的影响。
创建发布
创建发布版本类型后,您可以创建发布版本,指定要使用哪个版本更新您的设备。
创建发布后,SaaS 运行时会根据单元种类中定义的策略更新您的单元。
控制台
前往 SaaS 运行时。
点击发布。
在发布列表页面上,点击创建。
在创建发布页面上:
- 在发布作业种类框中,选择详细说明如何将发布版本发布到指定单元的发布作业种类。
- 在发布版本框中,指定用于更新单元的发布版本。
- 在发布名称框中,输入发布名称。
点击创建。
您的发布版本已创建。
在全球发布详情页面上,您可以监控发布详情,包括发布状态、发布进度(按设备数量)和发布失败情况。
gcloud
如需使用 Google Cloud 控制台创建发布版本,请执行以下操作:
gcloud beta saas-runtime 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 参考文档。
后续步骤
- 如需详细了解 SaaS 运行时,请参阅 SaaS 运行时概览。
- 如需试用教程,请参阅使用 SaaS 运行时部署虚拟机。
- 如需了解服务账号的使用方式以及如何为这些账号授予精细的权限,请参阅 SaaS 运行时服务账号。