本文說明如何使用 App Lifecycle Manager 發布版本。
App Lifecycle Manager 可透過推出功能,更新多個已佈建的單元。推出作業會根據目標單位的 UnitKind 進行,並可選擇性套用篩選器 (unit_filter),使用 Google Cloud CLI 指定目標單位子集。這可讓您在已部署的基礎架構中管理更新。如要復原,請將單元升級至先前的版本。
如要對單一特定裝置執行作業,請使用「裝置詳細資料」頁面上的控制項。
事前準備
更新 SaaS 產品前,請先完成下列事項:
- 確認已啟用 App Lifecycle Manager。
- 請確認您具備建立 SaaS 方案所需的 IAM 權限。
- 建立 SaaS 產品。
- 建立 UnitKind。
- 建立及佈建單元。
- 準備新的或修改過的 Terraform 藍圖。
建立發布版本
您必須先建立版本,才能更新 SaaS 方案。發布版本是指 SaaS 應用程式的特定版本,由藍圖套件和相關聯的設定定義。基本上,發布版本包含單元的更新。
控制台
前往 App Lifecycle Manager。
按一下「發行內容」。
在「發行內容」頁面,按一下「建立」。
在「建立發行內容」頁面:
點選「建立」。
您已建立版本。您可以在「版本詳細資料」頁面查看版本詳細資料。建立推出作業時,您可以參照這個版本。
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。藍圖是 OCI 映像檔,可託管於 Artifact Registry 或其他 OCI 註冊資料庫。- 藍圖套件包含佈建單元所需的構件,以及所用引擎 (Terraform) 的中繼資料和版本。
- 如果省略 URI 中的主機名稱,系統會預設為區域 Artifact Registry 路徑 (例如
us-east1-docker.pkg.dev)。 - 如要進一步瞭解如何建立藍圖,請參閱藍圖說明文件。
UNIT_KIND:此發行內容對應的單元種類 ID 或完整 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 參考資料。
建立推出作業 kind
建立推出作業前,請先建立推出作業 kind,做為將版本部署至單位的範本。
控制台
前往 App Lifecycle Manager。
按一下「推出類型」。
在「推出類型」頁面中,按一下「建立」。
在「Create a rollout kind」(建立推出作業 kind) 頁面中:
- 在「推出類型名稱」方塊中,輸入推出類型名稱。
- 在「單元 kind」方塊中,選取要發布的單元類型。
在「推出策略」下拉式選單中,選取要用來將版本部署至裝置的策略:
- 一次一個位置 (簡易):一次更新一個位置 (不含浸泡時間)。最多可同時更新 5% 的裝置。
- 一次全部推出 (簡易):所有位置會同時開始推出 (適合開發環境和緊急情況)。
- 漸進式:以指數方式逐步推出更新,並以百分比分批發布至多個位置 (並設定浸泡時間)。
- 漸進式 (單一位置):以百分比批次更新裝置,並延長浸泡時間,以便偵測單一位置的問題。
如要進一步瞭解發布策略,請參閱「發布策略」。
點選「建立」。
您已建立推出作業 kind。在「推出作業 kind 詳細資料」頁面中,您可以查看及編輯推出作業 kind 的參數。
gcloud
如要使用 Google Cloud 控制台建立推出作業 kind,請按照下列步驟操作:
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:推出作業 kind 名稱。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:更新單元種類的設定。根據預設,單元 kind 會在推出作業開始時更新。可能的值包括:UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED:未指定單元種類更新策略。UPDATE_UNIT_KIND_STRATEGY_ON_START:在推出作業開始時更新單元類型策略。UPDATE_UNIT_KIND_STRATEGY_NEVER:請勿更新單元種類策略。
詳情請參閱 RolloutKind
Google Cloud CLI 參考資料。
錯誤預算功能
App Lifecycle Manager 包含錯誤預算功能 (ErrorBudget in
RolloutKind),可做為安全防護措施。如果單元更新失敗的數量或百分比 (例如在基礎架構應用程式期間) 超過設定的門檻,這項功能就會自動暫停推出作業,有助於限制更新期間潛在問題的影響。
建立推出作業
建立推出類型後,您可以建立推出作業,指定要用來更新裝置的版本。
建立推出作業後,App Lifecycle Manager 會根據單元種類中定義的策略更新單元。
控制台
前往 App Lifecycle Manager。
按一下「推出」。
在「推出清單」頁面中,按一下「建立」。
在「建立推出作業」頁面中:
- 在「推出作業 kind」方塊中,選取詳細說明如何將發布版本推出至指定單元的推出作業 kind。
- 在「發布」方塊中,指定要用來更新單元的發布版本。
- 在「推出名稱」方塊中,輸入推出作業的名稱。
點選「建立」。
推出作業已建立。
在「全球推出詳細資料」頁面中,您可以監控推出詳細資料,包括推出狀態、推出進度 (以單元數量為準) 和推出失敗次數。
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:定義要用來將版本套用至單位的推出作業類型。發布版本會套用至推出作業 kind 中定義的單元 kind 的所有單元。RELEASE_NAME:定義要部署至裝置的發布二進位檔。LOCATION:要建立階段推出的位置。
詳情請參閱 Rollout
Google Cloud CLI 參考資料。
後續步驟
- 如要進一步瞭解 App Lifecycle Manager,請參閱「App Lifecycle Manager 概覽」。
- 如要試用教學課程,請參閱「使用 App Lifecycle Manager 部署 VM」。
- 如要瞭解服務帳戶的使用方式,以及如何授予這些帳戶的精細權限,請參閱「App Lifecycle Manager 服務帳戶」。