本文件將概略說明部署自動化功能。
您可以設定 Cloud Deploy,針對特定發布管道自動執行與發布和推出相關的工作。包括宣傳發布內容和推進階段。
進一步瞭解 Cloud Deploy 中用於自動發布的資源。
進一步瞭解如何設定規則,定義這些自動化功能的運作方式。
可自動執行的動作
在 Cloud Deploy 中,您可以自動執行下列發布和推出活動:
-
您可以設定 Cloud Deploy,在成功將版本推出至目標後,自動升級版本。舉例來說,如果您有三個目標 (
dev、staging和prod),可以設定自動化作業,在成功部署至staging後,將版本升級至prod,不必再進行任何人為互動。您也可以指定延遲時間。 -
您可以設定 Cloud Deploy,根據 Cron 排程升級版本。
-
您可以設定 Cloud Deploy,在成功將推出作業部署至上一個目標後,將推出作業從一個階段推進至下一個階段。階段進展僅適用於使用初期測試部署策略的目標。
-
您可以將 Cloud Deploy 設為在推出作業失敗時自動重試。包括重試推出作業指定次數,以及在重試次數達到上限時自動還原。
如要進一步瞭解這些動作及如何設定,請參閱「自動化規則」。
自動化功能如何運作?
每項自動化作業都與所用的交付管道相關聯。您無法在多個推送管道中共用自動化作業。
以下是設定及執行自動化作業的一般程序:
您可以設定自動化動作
這項自動化作業與一個推送軟體更新管道相關聯。
您可以使用
gcloud deploy apply註冊該自動化動作。這會建立自動化資源。
如要叫用與這項自動化作業相關聯的推送管道,請建立版本。
至少一個目標的推出作業成功,或推出作業失敗。
如果推出成功,且自動化功能為
promoteReleaseRule:執行作業會等待推出作業成功完成,並將目標設為來源目標。 來源目標是為自動化設定的
selector.targets,而不是AutomationRule。如果已設定
wait時間,執行作業也會等待該時間。版本會自動推送至管道程序中的下一個目標,或是指定的目標。
如果推出作業成功,且自動化功能為
advanceRolloutRule,而目標使用初期測試部署策略:執行作業會等待已識別的來源階段 (如有)。
sourcePhase屬性為選用屬性,如果未指定任何來源階段,推出作業的每個階段都會自動推進。當來源階段為IN_PROGRESS時,系統會自動推進階段,但須遵守wait時間。如果已設定
wait時間,執行作業也會等待該時間。自動執行初期測試部署時,您可以使用這個等待時間,指定每個初期測試階段的持續時間。
推出作業會自動從來源階段推進至下一個階段。
如有其他來源階段,處理方式也相同,包括等待時間 (如適用)。
如果推出失敗,且自動化動作含有
repairRollout規則:如果設定了
wait時間,系統會在該時間過後重試推出作業。如果這個
repairRollout規則中設定了特定階段或工作,系統只會重試這些階段或工作。如果未指定任何工作或階段,預設會重試推出作業中的所有階段和工作。由於重試為選用功能,如果自動化程序未設定為重試,就不會執行這個步驟。
如果第一次重試失敗,執行作業會等待設定的
wait時間,然後再次嘗試。Cloud Deploy 會重複重試,直到重試次數用盡為止
attempts。如果每次嘗試都失敗,且
attempts用盡,推出作業就會失敗。重試期間,推出作業的狀態為
IN_PROGRESS,直到推出作業成功或在最後一次重試後失敗為止。重試期間的階段狀態為IN_PROGRESS,但每次推出失敗後會變成FAILED。如果所有重試都失敗 (或未設定任何重試),系統會建立新的推出作業,將目標復原至最近一次成功發布的版本。
自動化資源
Cloud Deploy 提供兩種專為自動化設計的資源:
自動化
Automation是傳送管道的子項資源,包含下列資訊:- 指標,指向用於自動化的目標
- 控管自動化作業內容和方式的一或多項規則
如要瞭解自動化資源的設定,請參閱「關於自動化資源」一文。
對包含自動化設定 (
kind: Automation) 的檔案執行gcloud deploy apply時,Cloud Deploy 會建立自動化資源,將一或多個自動化規則與發布管道和一或多個目標建立關聯。自動化執行作業
AutomationRun是自動化作業的執行個體。這是指向對應自動化資源的指標,以及產生該資源的推出作業相關資訊和其他中繼資料。自動化作業觸發時,系統就會建立自動化作業執行個體。
自動化規則
自動化規則會定義可對推送管道自動執行的動作,以及自動化作業的執行方式詳情。
必要的身分與存取權管理角色和權限
除了執行任何 Cloud Deploy 交付管道,以及執行要自動化的工作 (例如推進推出作業) 所需的權限外,您還需要下列權限,才能對 Automation 和 AutomationRun 資源執行特定作業:
clouddeploy.automations.createclouddeploy.automations.deleteclouddeploy.automations.getclouddeploy.automations.listclouddeploy.automations.updateclouddeploy.automationRuns.cancelclouddeploy.automationRuns.getclouddeploy.automationRuns.list
除了這些權限外,每項自動化規則可能還需要其他權限,才能執行自動化作業。如要瞭解各項自動化規則所需的特定權限,請參閱「設定自動化規則」。
詳情請參閱「IAM 角色和權限」,包括哪些 Cloud Deploy 角色包含這些權限。
建立自動化作業
您可以建立自動化作業,包括使用任何可用的自動化規則,方法是設定自動化作業,然後使用 gcloud deploy apply 建立自動化資源
請參閱下一個部分 (設定自動化) 和「設定自動化規則」。
設定自動化動作
如要瞭解如何設定 Automation 資源,請參閱「設定檔結構定義」。
自動化規則設定
除了這項自動化設定,您還可指定自動化規則。每項可用規則的設定方式都不相同。
如要瞭解各項可用規則的說明,請參閱「使用自動化規則」。
暫停自動化動作
您可以暫停現有資源,不必刪除。這對於測試自動化功能非常實用,不會影響推送管道。暫停自動化作業後,系統不會執行該作業,但仍會產生平台記錄。
在
Automation設定中,將suspended屬性更新為true。對該設定檔執行
gcloud deploy apply。即使自動化程序已暫停,系統仍會在自動化程序例項化時產生平台記錄。您可以使用這項功能測試及偵錯自動化作業,不會影響推送管道。
後續步驟
進一步瞭解 Cloud Deploy 自動化規則。
如要進一步瞭解 Cloud Deploy 自動化資源,請參閱這篇文章。
如要進一步瞭解自動化設定檔,請參閱設定檔結構定義說明文件。