推出版本

本文說明如何使用 App Lifecycle Manager 推出版本。

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

如要對單一特定單位執行操作,請使用「Unit details」(單位詳細資料) 頁面上的控制項。

事前準備

更新應用程式供應項目之前,請先完成下列事項:

建立發布版本

如要更新應用程式,請先建立版本。發布版本代表 SaaS 應用程式的特定版本,由藍圖套件和相關聯的設定定義。基本上,發布版本包含單元的更新。

控制台

  1. 前往 App Lifecycle Manager。

    前往 App Lifecycle Manager

  2. 按一下「版本」。

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

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

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

  5. 點選「建立」。

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

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。這會是版本完整資源名稱的一部分。
  • BLUEPRINT_PACKAGE_URI:要用於這個版本的藍圖套件 URI。藍圖是託管於 Artifact Registry 或其他 OCI 登錄檔的 OCI 映像檔。
    • 藍圖套件包含佈建單元所需的構件,以及所用引擎 (Terraform) 和版本的相關中繼資料。
    • 如果省略 URI 中的主機名稱,系統會預設為區域性 Artifact Registry 路徑 (例如 us-east1-docker.pkg.dev)。
    • 如要進一步瞭解如何建立藍圖,請參閱 Blueprints 說明文件。
  • UNIT_KIND:這個發行內容對應的單元種類 ID 或完整 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 參考資料。

建立推出作業 kind

建立推出作業前,您必須先建立推出作業 kind,做為將版本部署至單元的範本。

控制台

  1. 前往 App Lifecycle Manager。

    前往 App Lifecycle Manager

  2. 按一下「Rollout kinds」(推出作業類型)。

  3. 在「推出類型」頁面中,按一下「建立」。

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

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

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

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

  5. 點選「建立」。

  6. 您已建立推出作業 kind。在「Rollout Kind details」(推出作業種類詳細資料) 頁面中,您可以查看及編輯推出作業種類的參數。

gcloud

如要使用 Google Cloud 控制台建立推出作業 kind,請按照下列步驟操作:

  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:推出作業 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:未指定單元 kind 更新策略。
    • UPDATE_UNIT_KIND_STRATEGY_ON_START:在推出作業開始時更新單元類型策略。
    • UPDATE_UNIT_KIND_STRATEGY_NEVER:一律不更新單元 kind 策略。

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

錯誤預算功能

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

建立推出作業

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

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

控制台

  1. 前往 App Lifecycle Manager。

    前往 App Lifecycle Manager

  2. 按一下「推出」。

  3. 在「Rollout List」(推出作業清單) 頁面中,按一下「Create」(建立)。

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

    1. 在「推出作業 Kind」方塊中,選取詳細說明如何將發布版本推出至指定單元的推出作業 kind。
    2. 在「發布版本」方塊中,指定要用來更新單元的發布版本。
    3. 在「Rollout Name」(推出作業名稱) 方塊中,輸入推出作業名稱。
  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:定義要使用哪種推出作業類型,將版本套用至單位。發布版本會套用至推出作業 kind 中定義的所有單元 kind。
  • RELEASE_NAME:定義要部署至裝置的發布二進位檔。
  • LOCATION:要建立推出作業的位置。

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

後續步驟