推出版本

本文說明如何使用 SaaS 執行階段推出版本。

SaaS 執行階段可透過推出功能,更新多個已佈建的單元。推出作業會根據目標單元UnitKind,並可選擇性地套用篩選器 (unit_filter),使用 Google Cloud CLI 指定特定單元子集。這可讓您在已部署的基礎架構中管理更新。如要復原,請將單元升級至先前的版本。

如要對單一特定裝置執行作業,請使用「裝置詳細資料」頁面上的控制項。

事前準備

更新 SaaS 產品前,請先完成下列事項:

建立發布版本

您必須先建立版本,才能更新 SaaS 產品。發布版本代表 SaaS 應用程式的特定版本,由藍圖套件和相關聯的設定定義。基本上,發布版本包含單元的更新

控制台

  1. 前往 SaaS 執行階段。

    前往 SaaS 執行階段

  2. 按一下「發行內容」

  3. 在「發行內容」頁面,按一下「建立」

  4. 在「建立發行內容」頁面中:

    1. 在「發行內容名稱」方塊中,輸入發行內容的專屬名稱。
    2. 在「單元 kind」方塊中,選取這個版本要關聯的單元 kind。
    3. 在「Only upgradeable from (optional)」(僅限從以下版本升級,選填) 部分,您可以選取單元可從哪些發布版本升級至這個發布版本。方便您控管升級路徑。
    4. 在「建立藍圖」和「儲存藍圖」步驟中,選取或建立藍圖。如要進一步瞭解藍圖建立選項,請參閱藍圖說明文件
    5. 在「變數 (選用)」部分,您可以選擇為這個版本設定輸入變數。如要進一步瞭解如何設定變數,請參閱變數說明文件

  5. 點選「建立」

  6. 您已建立版本。您可以在「版本詳細資料」頁面查看版本詳細資料。建立推出作業時,您就能參照這個版本。

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 中的主機名稱,系統會預設為區域構件登錄路徑 (例如 us-east1-docker.pkg.dev)。
    • 如要進一步瞭解如何建立藍圖,請參閱 Blueprints 說明文件
  • 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,做為將版本部署至單位的範本。

控制台

  1. 前往 SaaS 執行階段。

    前往 SaaS 執行階段

  2. 按一下「推出類型」

  3. 在「Rollout Kinds」(推出類型) 頁面中,按一下「Create」(建立)

  4. 在「Create a rollout kind」(建立推出作業 kind) 頁面中:

    1. 在「推出類型名稱」方塊中,輸入推出類型名稱。
    2. 在「單元 kind」方塊中,選取要發布的單元類型。
    3. 在「推出策略」下拉式選單中,選取要用來將版本部署至裝置的策略:

      • 一次一個位置 (簡易):一次更新一個位置 (不含浸泡時間)。同時更新最多 20% 的裝置。
      • 一次全部推出 (簡易):所有位置會同時開始推出 (適合開發環境和緊急情況)。
      • 漸進式:以指數方式逐步推出更新,並以百分比分批發布至多個位置 (附帶浸泡時間)。
      • 漸進式 (單一位置):以百分比批次更新裝置,並延長浸泡時間,以便偵測單一位置的問題。

      如要進一步瞭解發布策略,請參閱「發布策略」。

  5. 點選「建立」

  6. 您已建立推出作業 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:一次更新一個地點 (不含過渡期)。同時更新最多 20% 的裝置。
    • Google.Cloud.Simple.AllAtOnce:所有位置同時開始推出 (適用於開發環境和緊急情況)。
    • Google.Cloud.Progressive.Gradual.v1:以指數方式,在多個地點分批推出更新 (並設定浸泡時間)。
    • Google.Cloud.Progressive.SingleLocation.v1:以百分比為單位更新裝置,並延長浸泡時間,以便偵測單一位置的問題。

    如要進一步瞭解發布策略,請參閱「發布策略」。

  • ERROR_BUDGET:錯誤預算設定。如果失敗的單元數量超過 error_budget 上限 (由 allowed_countallowed_ratio * total_units 定義),系統就會暫停推出作業。如未設定 error_budget,SaaS Runtime 會嘗試更新所有單元,不論遇到多少次失敗。

  • UNIT_FILTER:針對單元使用的 CEL 格式篩選器字串。系統會套用篩選條件,判斷符合資格的裝置數量。這個篩選器只能縮小發布範圍,無法擴大推出範圍。

  • UPDATE_UNIT_KIND_DEFAULT:更新單元 kind 的設定。根據預設,單元 kind 會在推出作業開始時更新。可能的值包括:

    • UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED:未指定單元種類更新策略。
    • UPDATE_UNIT_KIND_STRATEGY_ON_START:在推出作業開始時,更新單元類型策略。
    • UPDATE_UNIT_KIND_STRATEGY_NEVER:請勿更新單元種類策略。

詳情請參閱 RolloutKind Google Cloud CLI 參考資料。

錯誤預算功能

SaaS 執行階段包含錯誤預算功能 (ErrorBudget in RolloutKind),可做為安全防護措施。如果單元更新失敗的次數或百分比 (例如在基礎架構應用程式期間) 超過設定的門檻,這項功能就會自動暫停推出作業,有助於減少更新期間潛在問題的影響。

建立推出作業

建立推出類型後,您可以建立推出作業,指定要用來更新裝置的版本。

建立推出作業後,SaaS Runtime 會根據單元 kind 中定義的策略更新單元。

控制台

  1. 前往 SaaS 執行階段。

    前往 SaaS 執行階段

  2. 按一下「推出」

  3. 在「推出清單」頁面中,按一下「建立」

  4. 在「Create a rollout」(建立推出作業) 頁面中:

    1. 在「推出作業 kind」方塊中,選取詳細說明如何將發布版本推出至指定單元的推出作業 kind。
    2. 在「發布」方塊中,指定要用來更新單元的發布版本。
    3. 在「推出名稱」方塊中,輸入推出作業的名稱。
  5. 點選「建立」

  6. 推出作業已建立。

    在「全球推出詳細資料」頁面中,您可以監控推出詳細資料,包括推出狀態、推出進度 (以單元數量為準) 和推出失敗次數。

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 參考資料。

後續步驟