本文說明如何使用 Google Cloud Observability 做為監控系統,設定交付管道的分析。
如果您使用其他監控供應商,則需要定義自訂分析,包括建立容器,以便從供應商擷取及評估指標和其他資料。
事前準備
-
登入 Google 帳戶。
如果沒有帳戶,請 註冊新帳戶。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init 啟用 Compute Engine 和 Cloud Deploy API:
啟用 API 時所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init 啟用 Compute Engine 和 Cloud Deploy API:
啟用 API 時所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
必要的角色
如要取得建立及使用分析作業所需的權限,請要求管理員在專案帳戶中授予下列 IAM 角色:
- Cloud Deploy Runner (
roles/clouddeploy.jobRunner) - 監控警告檢視者 (
roles/monitoring.alertPolicyViewer) - 服務使用情形消費者 (
roles/serviceusage.serviceUsageConsumer)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
為確保 Cloud Deploy 服務帳戶具備建立及使用自動化功能所需的權限,請要求管理員在專案中,將下列 IAM 角色授予 Cloud Deploy 服務帳戶:
- IAM 服務帳戶使用者 (
roles/iam.serviceAccountUser) - Cloud Deploy Releaser (
roles/clouddeploy.releaser) - Cloud Deploy 運算子 (
roles/clouddeploy.operator)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,授予 Cloud Deploy 服務帳戶必要權限。
在 Cloud Deploy 中設定分析
設定部署分析的步驟如下:
在傳送管道中設定分析工作。
執行管道來執行分析。
定義快訊政策
您可以定義快訊政策,接收來自 Google Cloud Observability 的指標。Google Cloud Observability 警告政策會說明監控資料符合指定條件時,您希望收到通知的時間和方式。
Cloud Deploy 分析功能會根據這些警示所指出的情況採取行動。
舉例來說,您可以在正式版應用程式中設定快訊政策,在 HTTP 回應延遲時間過長時傳送快訊,並根據該快訊,讓分析工作觸發repairRolloutRule自動化,以回溯版本。
舉例來說,您可以在部署至測試環境的應用程式上建立類似的警報政策,如果分析工作期間未觸發任何警報,該工作可以觸發promoteReleaseRule自動化,將版本升級至正式環境。
建立分析
如要為應用程式的發布管道建立分析工作,請在管道的設定中設定該分析,然後套用該設定檔。
設定分析工作
本節說明如何設定 Cloud Deploy 分析作業,以便與 Google Cloud Observability 搭配使用。
分析工作是在推送管道定義中設定,位於 strategy 節內。這可以是任何策略 (canary 或 standard) 內部的目標。如要針對每個階段設定分析,請使用自訂 Canary (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis)。
分析作業包含下列元素:
時間長度
這段時間是指分析工作執行的時間長度。如果時間到期,且未偵測到 Google Cloud Observability 的任何快訊,則視為分析成功,並繼續推出。
一或多項檢查,對應於監控系統中的快訊政策
每項檢查都包含下列項目:
ID
一或多項快訊政策
也就是參照一或多項 Google Cloud Observability 警告政策。
- 一或多個標籤,用於識別特定警告政策。由於 Google Cloud Observability 警告政策可以監控許多應用程式,因此這些標籤可讓我們將檢查限制在一或多個特定應用程式。
請注意,您可以在這裡使用系統參數做為標籤的鍵。
以下是使用 standard 部署策略時,設定分析工作的語法:
strategy:
standard:
analysis:
duration: DURATION
googleCloud:
alertPolicyChecks:
- id: CHECK_ID
alertPolicies:
- [ALERT_POLICY_ID]
labels:
[KEY: VALUE]
其中:
DURATION分析工作執行的時間長度 (以秒為單位)。時間到期後,工作就會完成。如果分析失敗 (容器傳回非零的結束代碼),工作會在時間到期前結束 (
FAILED)。CHECK_ID這是您分析中個別檢查的 ID。每個 ID 在這項分析工作中不得重複。分析作業可包含一或多項檢查。
ALERT_POLICY_ID這是您用於檢查的 Google Cloud Observability 快訊政策 ID。您可以執行
gcloud monitoring policies list找出警告政策 ID。您需要完整的 ID,如下所示:projects/project-redacted/alertPolicies/01234567890123456789傳回的 ID 可能包含政策 ID 後的
/conditions/13842666848149128276。請勿將這項資訊納入政策 ID。KEY和VALUE標籤的鍵/值組合,僅用於考量特定快訊。舉例來說,您可以使用標籤,讓檢查只考量特定工作負載的快訊。
您可以在這裡使用系統參數做為值。
以下是使用系統參數的範例:
labels: service_name: '${{render.metadata.cloud_run.service.name}}'
這項設定會建立分析工作。雖然有多項檢查,但這項設定只會建立一項工作。
如果設定的快訊政策都沒有傳送任何快訊,這項工作就會成功,並繼續推出。如果任何政策觸發快訊,工作就會停止,狀態為 FAILED,且推出作業會失敗 (狀態為 FAILED,除非您選擇忽略工作失敗)。
套用推送管道設定檔
如要使用分析工作建立推送管道,請使用下列指令套用設定檔:
gcloud deploy apply FILE \
--region=REGION \
--project=PROJECT_ID
更改下列內容:
FILE使用交付管道設定檔的名稱,例如
clouddeploy.yaml或您指定的名稱。REGION您要建立推送管道的區域。
PROJECT_ID您要在其中建立這項推送管道的專案 ID。
現在專案中已有推送管道和分析工作,建立版本時,分析工作就會成為管道的一部分。
後續步驟
請嘗試快速入門導覽課程:使用指標分析應用程式。
請參閱 Cloud Deploy 設定參考資料,瞭解分析的設定結構定義。
進一步瞭解部署自動化。
進一步瞭解部署策略。