Cloud Deploy 是一種代管服務,可依照指定的推送順序,自動將應用程式推送至一系列目標環境。如要部署更新版應用程式,請建立版本,其生命週期由提交管道管理。
Cloud Deploy 管道的運作方式
Cloud Deploy 提交管道包含下列資訊:
您可以在相同的提交管道設定檔中,或在一或多個獨立檔案中定義目標。多個提交管道可以使用相同的目標或多個目標,但特定目標只能在特定提交管道中使用一次。
Cloud Deploy 推送程序
以下說明簡單的 Cloud Deploy 持續提交情境。
-
此設定檔會定義升級順序,用於將應用程式部署至一系列目標。
您可以在管道設定檔或個別檔案中定義目標。
您可以透過 Cloud Deploy 服務註冊管道。
服務現在已瞭解您的應用程式,並會根據您定義的宣傳順序,管理對目標的部署作業。
CI 程序的輸出內容包含對 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 總覽。
搭配其他 Google Cloud 工具使用 Cloud Deploy
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 是Google Cloud 代管環境,可在 Kubernetes 上執行容器化應用程式。
您可以使用 Cloud Run 在無伺服器環境中執行容器。
GKE Enterprise 可為雲端和地端部署環境提供一致的開發和作業體驗。
使用 Google Cloud Observability 監控應用程式的效能。
Google Cloud Observability 可為應用程式提供整合式監控和記錄功能。
後續步驟
如要快速瞭解如何建立發布管道,並用於部署應用程式,請試試快速入門課程。
請試試其中一個 Cloud Deploy 操作說明。
進一步瞭解 Cloud Deploy 元件如何搭配運作。
請參閱 Google Cloud Well-Architected Framework: Operational excellence 中的文章,瞭解如何運用優質營運原則建立自動提交基礎。