Cloud Deploy 是一項代管服務,可依照指定的推送順序,自動將應用程式推送至眾多目標環境。如要部署更新後的應用程式,請建立版本,其生命週期由發布管道管理。
Cloud Deploy 管道的運作方式
Cloud Deploy 推送管道包含下列資訊:
目標可以定義在同一個發布管道設定檔中,也可以定義在一或多個獨立檔案中。多個推送 pipeline 可以使用相同的一或多個目標,但特定目標在特定推送 pipeline 中只能使用一次。
Cloud Deploy 推送程序
以下說明簡單的 Cloud Deploy 持續推送軟體更新情境。
-
這個設定檔會定義部署應用程式至一系列目標的升級順序。
您可以在管道設定檔中定義目標,也可以在個別檔案中定義。
向 Cloud Deploy 服務註冊管道。
服務瞭解應用程式後,就會根據您定義的升級順序,管理目標的部署作業。
持續整合程序的輸出內容包含對 Cloud Deploy 的呼叫,可啟動交付管線。
這項呼叫會建立
release
資源,代表每個目標的已算繪資訊清單,這些資訊清單都是使用提供的算繪來源、skaffold.yaml,以及要部署的特定容器映像檔參照所產生。首次呼叫以建立版本時,Cloud Deploy 會自動建立rollout
資源,將版本與第一個目標環境建立關聯。根據該推出作業,應用程式會部署到第一個目標。只要 CI 工具會輸出至少一個容器映像檔,供 Cloud Deploy 推送管道使用,您就能使用該工具。
此外,建立版本及叫用發布管道的呼叫不一定要來自 CI 工具。這項資訊可能來自指令碼,或任何回應 CI 程序完成的系統。
準備好將應用程式部署至下一個目標時,請呼叫 Cloud Deploy 來推送應用程式。
在上述任一情況下,呼叫來叫用升級作業都會導致 Cloud Deploy 建立新的推出作業。
促銷活動會持續進行,直到促銷活動序列中的所有目標都完成為止,最後一個目標是
prod
(或您為最終目標使用的任何名稱,用來將應用程式投入正式版)。如要進一步瞭解版本建立和升級程序,請參閱「Cloud Deploy 服務架構」。
在管道執行期間,Cloud Deploy 會收集指標和稽核詳細資料。
推送
推送版本是指將版本部署至管道中定義的推送程序下一個目標。第一次呼叫 Cloud Deploy 時,系統會建立 release
,然後建立 rollout
資源,用於部署至升級順序中的第一個目標。每次後續呼叫推送版本,都會將版本推出至下一個目標。
核准
您可以指定推送至任何目標都須經核准。舉例來說,您可能想要求核准後,才能將版本推送至正式環境目標。如要規定目標必須獲得核准,請在目標定義中設定 requireApproval
屬性。
如果目標需要核准,Cloud Deploy 會產生可供整合系統使用的 Pub/Sub 訊息。舉例來說,售票系統可以訂閱訊息,啟動核准工作流程。
如要進一步瞭解促銷活動和管理促銷活動的核准狀態,請參閱「需要核准」。
通知
Cloud Deploy 會針對下列事件提供 Pub/Sub 通知:
- 算繪:開始、成功和失敗
- 部署:開始、成功和失敗
- 必須獲得核准
- 核准
- 核准遭拒
Cloud Deploy 會使用 Pub/Sub 主題傳送這些通知。
詳情請參閱「使用 Cloud Deploy 通知」。
復原
Cloud Deploy 支援在任何目標中,將已部署的應用程式回復至先前版本。在 Cloud Deploy 中,復原作業會針對上次成功部署的版本觸發推出作業。新推出版本會使用成功部署時的相同參數。
詳情請參閱復原部署作業。
關於 Skaffold 和 Cloud Deploy
Cloud Deploy 會使用 Skaffold 進行算繪、部署和驗證。您也可以透過 Skaffold,輕鬆將本機開發迴圈連結至 Cloud Deploy 持續推送管道。
如要進一步瞭解 Cloud Deploy 如何與 Skaffold 整合,請參閱 Skaffold 總覽。
Cloud Deploy 與其他 Google Cloud 工具
Cloud Deploy 幾乎支援 CI/CD 管道中的任何上游工具。也就是說,您可以使用任何開發環境和原始碼存放區、任何持續整合 (CI) 系統,以及任何構件存放區。
在下游,Cloud Deploy 會部署至 Google Kubernetes Engine、Cloud Run 和 GKE Enterprise。
如果您主要使用 Google Cloud 工具,來源到正式環境的流程會如下所示:
使用 Cloud Code 建立應用程式來源。
Cloud Code 擴充了多個熱門 IDE (VS Code、IntelliJ、Cloud Shell),可讓您更輕鬆地建構應用程式,以便在Google Cloud上部署及執行。
使用 Skaffold 管理本機開發迴圈。
Cloud Deploy 會透過 Cloud Build 使用 Skaffold,算繪及部署資訊清單。這項整合功能表示您需要維護
skaffold.yaml
檔案,但不需要將 Skaffold 納入本機開發流程。但您可以善加利用這項功能進行持續開發。使用 Cloud Build 建構應用程式。
Cloud Build 可讓您設定 CI 管道,在將程式碼提交至原始碼存放區時觸發管道。Cloud Build 的輸出內容為構件,包括可部署的容器映像檔。您可以呼叫 Cloud Deploy 來建立版本,並叫用推送管道。
將構件儲存在 Artifact Registry 中。
Cloud Deploy 會從 Artifact Registry 擷取容器映像檔,方便您集中儲存構件和依附元件。
在 Cloud Deploy 中設定推送管道,以取得容器映像檔,並在 n 個目標中逐步部署。
推送管道中識別出的每個目標,都代表應用程式最終部署的 GKE 叢集、Cloud Run 或 GKE 叢集。
在 GKE、Cloud Run 或 GKE Enterprise 上管理應用程式。
GKE 是代管環境,可讓您在 Kubernetes 上執行容器化應用程式。Google Cloud
使用 Cloud Run,您可以在無伺服器環境中執行容器。
GKE Enterprise 可為雲端和地端部署環境提供一致的開發與作業體驗。
使用 Google Cloud Observability 監控應用程式效能。
Google Cloud Observability 提供應用程式的整合式監控和記錄功能。
後續步驟
如要快速瞭解如何建立及使用發布管道部署應用程式,請參閱快速入門導覽課程。
試試其中一個 Cloud Deploy 逐步導覽。
進一步瞭解 Cloud Deploy 元件如何搭配運作。
請參閱Google Cloud Well-Architected 架構:營運卓越,瞭解如何運用營運卓越原則,建構自動化放送基礎。