本文說明如何使用 Google Cloud Observability 做為監控系統,在推送管道中設定分析。
如果您使用其他監控服務供應商,則需要定義自訂分析,包括建立容器,以便擷取及評估供應商提供的指標和其他資料。
事前準備
-
登入 Google 帳戶。
如果還沒有帳戶,請 申請新帳戶。
-
安裝 Google Cloud CLI。
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init 啟用 Compute Engine 和 Cloud Deploy API (如果尚未啟用):
啟用 API 所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (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 所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
必要的角色
如要取得建立及使用分析作業所需的權限,請要求管理員在專案帳戶中授予下列 IAM 角色:
- Cloud Deploy 執行者 (
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 Operator (
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 的快訊,系統會視為分析成功,並繼續推出。
一或多項檢查,對應於監控系統中的警告政策
每項檢查都包含下列項目:
身分證件
一或多項警告政策
也就是參照一或多項 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 納入政策 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 設定參考資料。
進一步瞭解部署自動化。
進一步瞭解部署策略。