本文說明一套整合式 Google Cloud 工具,可用於設定開發、持續整合 (CI) 和持續推送軟體更新 (CD) 系統,協助您開發應用程式並部署至 Google Kubernetes Engine (GKE)。這份參考架構文件適用於軟體開發人員和作業人員。本指南假設您熟悉在Google Cloud 上執行 gcloud
指令,以及將應用程式容器部署至 GKE 的相關作業。
架構
下圖顯示這個架構中使用的資源:
這個架構包含下列元件:
- Cloud Code 做為開發工作區。在這個工作區中,您可以查看開發叢集的變更,該叢集會在 minikube 上執行。您會在 Cloud Shell 中執行 Cloud Code 和 minikube 叢集。Cloud Shell 是可透過瀏覽器存取的線上開發環境。它包含運算資源、記憶體、整合式開發環境 (IDE),並已安裝 Cloud Code。
Cloud Build:用於建構及測試應用程式,也就是管道的「持續整合」部分
管道中的這一部分包含下列動作:
- Cloud Build 會使用 Cloud Build 觸發條件,監控來源存放區的變更。
- 當變更提交至主分支版本時,Cloud Build 觸發條件會執行下列操作:
- 重新建構應用程式容器。
- 將建構成果放入 Cloud Storage 值區。
- 將應用程式容器放入 Artifact Registry。
- 在容器上執行測試。
- 呼叫 Cloud Deploy 將容器部署至測試環境。在這個範例中,測試環境是 Google Kubernetes Engine 叢集。
- 如果建構和測試成功,您就可以使用 Cloud Deploy 將容器從測試環境推送至實際工作環境。
Cloud Deploy 可用於管理部署作業,也就是管道中的「CD」部分。在管道的這個部分,Cloud Deploy 會執行下列操作:
在這個架構中,設定會透過 Skaffold 在開發、測試和實際工作環境之間共用,這是一項指令列工具,可協助原生 Kubernetes 應用程式持續開發。
Google Cloud 會將應用程式原始碼儲存在 GitHub 中。
這種架構會將 Google Cloud 產品用於系統的大部分元件,並透過 Skaffold 啟用系統整合功能。由於 Skaffold 是開放原始碼,您可以運用這些原則,結合 Google Cloud、內部和第三方元件,建立類似的系統。這項解決方案的模組化特性,表示您可以逐步將其納入開發和部署管道。
用途
以下是這套整合系統的主要功能:
加快開發及部署速度。
開發循環效率高,因為您可以在開發人員工作區驗證變更。自動化持續整合/持續推送軟體更新系統和各環境間的一致性提升,可在將變更部署至實際工作環境時偵測更多問題,因此部署作業速度較快。
在開發、測試和實際環境中享有更高的一致性。
這個系統的元件會使用一組常見的 Google Cloud 工具。
在不同環境中重複使用設定。
這項重複使用功能是透過 Skaffold 完成,可為不同環境提供通用的設定格式。開發人員和作業人員也可以更新及使用相同的設定。
在工作流程初期套用管理機制。
這套系統會在實際工作環境、CI 系統和開發環境中,為治理機制套用驗證測試。在開發環境中套用管理機制,可讓您及早發現並修正問題。
讓意見工具管理軟體提交作業。
持續性交付作業是全代管服務,可將 CD 管道的階段與轉譯和部署作業的詳細資料分開。
部署作業
如要部署這個架構,請參閱「使用 CI/CD 管道開發及部署容器化應用程式」一文。
後續步驟
- 如要瞭解如何部署至私人 GKE 執行個體,請參閱「在虛擬私有雲網路中部署至私人叢集」。
- 如要瞭解如何導入、改善及評估部署自動化功能,請參閱「部署自動化」。