本文說明已建立的內部迴圈開發架構如何為採用已啟用Arc的 Kubernetes 或 Azure Container Service (AKS) 叢集採用 GitOps 的小組提升開發人員生產力。
內部開發迴圈架構
使用容器的雲端原生開發小組可以受益於強大的內部開發循環架構。 內部開發迴圈架構可以協助反覆撰寫程式碼、進行建置和偵錯。
內部開發迴圈架構的功能包括:
- 自動化重複的步驟,例如建置程式代碼並部署到目標叢集。
- 增強使用遠端和本機叢集的能力,並支援混合式設定的本機通道偵錯。
- 可針對以小組為基礎的生產力來設定自訂流程。
- 處理微服務相依性。
- 熱重新載入、連接埠轉送、記錄和終端存取。
根據服務的成熟度和複雜度,開發小組可以選擇叢集設定選項,以加速內部開發迴圈:
- 所有本機
- 所有遠端
- 混合式
許多架構都支持這些功能,並提供各種市場供應專案,例如 DevSpace、Scaffold 和 Tilt。
從內部迴圈轉換到外部迴圈
評估並選取內部循環開發架構之後,您可以建置順暢的內部迴圈以轉換外部迴圈。
如 使用 GitOps 範例案例的 CI/CD 工作流程 中所述,開發人員可在應用程式存放庫內的應用程式程式代碼上運作。 此應用程式存放庫也保存高階部署的 Helm 和/或 Kustomize 範本。
CI/CD 管線:
- 從高層級範本產生低層級資訊清單,並新增環境特定值。
- 建立提取要求,將低階資訊清單與保留特定環境所需狀態的 GitOps 存放庫合併。
您可以使用開發人員的本機設定值,在本機上針對內部開發迴圈產生類似的低階資訊清單。 應用程式開發人員可以逐一查看程式碼變更,並使用低階資訊清單來部署和偵錯應用程式。 您可以使用開發人員的本機設定,將低階資訊清單的產生程序整合到內部迴圈工作流程中。 大部分的內部迴圈架構都允許開發人員透過自訂外掛程式擴充自訂流程,或根據勾點插入指令碼引動過程來設定自訂流程。
使用 DevSpace 架構所建置的內部迴圈工作流程範例
為了說明內部迴圈工作流程,我們可以查看範例案例。 此範例使用 DevSpace 架構,但相同的一般工作流程可以與其他架構搭配使用。
下圖會顯示內部迴圈的工作流程。
此圖會顯示內部迴圈轉換到外部迴圈的工作流程。
在此範例中,我們的應用程式開發人員:
- 撰寫 devspace.yaml 檔案以設定內部迴圈。
- 使用內部迴圈撰寫及測試應用程式程式碼,藉此提高作業效率。
- 部署至具有外部迴圈的預備環境或實際執行環境。
若要在本機或遠端叢集中更新、執行及偵錯應用程式,應用程式開發人員會採取下列步驟:
更新 .env 檔案中表示之開發環境的本機組態。
執行
devspace use context並選取 Kubernetes 叢集內容。選擇要使用的
devspace use namespace <namespace_name>命名空間。執行
devspace dev,反覆進行應用程式代碼的變更,並將應用程式部署到目標叢集並進行偵錯。執行
devspace dev以根據本機設定產生低階指令清單,並部署應用程式。 這些低層級資訊清單會在 devspace.yaml 中的 DevSpace 勾點進行設定。- 由於 DevSpace 會啟用經常性重載,因此使用檔案同步來複製容器內的最新變更,因此不需要針對每個程式碼變更重建容器。
- 執行
devspace dev也會部署 devspace.yaml 中所設定的任何相依性,例如後端至前端的相依性。
透過透過devspace.yaml設定的轉送來存取應用程式,以測試變更。
完成變更之後,執行
devspace purge,清除部署,並建立新的拉取請求,以將變更合併至應用程式存放庫的開發分支。
注意
您可以在此 GitHub 存放庫尋找上述工作流程的範例程式碼。
下一步
- 了解如何在叢集與 Git 存放庫之間建立連線,作為已啟用 Azure Arc 的 Kubernetes 設定資源。
- 深入了解 使用 GitOps 的 CI/CD 工作流程。