本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
上的 CI/CD AWS
CI/CD 可以繪製為管道,其中新程式碼在一端提交,透過一系列階段 (來源、建置、測試、預備和生產) 進行測試,然後發佈為生產就緒的程式碼。
CICD 管道概觀
CI/CD 管道的每個階段都會在交付過程中建構為邏輯單位。每個階段都充當閘道,可對程式碼的特定層面進行審核。隨著程式碼經過管道,假設程式碼的品質在稍後階段會更高,因為會繼續驗證程式碼的更多層面。早期發現的問題會阻止程式碼透過管道進行。測試的結果會立即傳送給團隊,如果軟體未通過階段,所有進一步的建置和版本都會停止。
AWS 引進一組完整的 CI/CD 開發人員工具,以加速軟體開發和發行週期。每次程式碼變更時, 都會根據定義的發行模型,AWS CodePipeline
程式碼管道可以與其他 服務整合。這些可以是 AWS Services,例如 Amazon Simple Storage Service
-
使用 編譯、建置和測試程式碼 AWS CodeBuild
-
持續將容器型應用程式交付至雲端
-
網路服務或特定雲端原生網路函數所需的成品 (例如描述項和容器映像) 部署前驗證
-
容器化網路函數/虛擬網路函數 (CNF/VNF) 的功能、整合和效能測試,包括基準和迴歸測試
-
可靠性和災難復原 (DR) 測試。
AWS CICD 管道元件
AWS 可以使用下列 AWS 開發人員工具設定 CI/CD 管道:
可以使用 AWS CDK
CI/CD 程序包含下列步驟:
-
網路設定 – AWS CDK 並 CloudFormation 啟動建立網路先決條件:
-
基礎設施部署 – AWS CDK 並 CloudFormation 啟動建立下列資源堆疊:
-
雲端網路函數 (CNF) 部署 – 在此階段,CNF 會使用 Kubectl
和 Helm Charts 工具部署至 EKS 叢集。此階段也會部署 CNFs 所需的任何特定應用程式或工具,以有效率地運作 (例如 Prometheus 或 Fluentd )。CNFs可以透過 Lambda 函數或使用 進行部署 AWS CodeBuild。 -
持續更新和部署 – 這些是一系列步驟,反覆執行以部署屬於容器/組態變更一部分的變更,進而導致升級。與 CNF 部署案例類似,透過 AWS CodeCommit
、Amazon Elastic Container Registry (Amazon ECR) 或第三方來源系統的觸發條件,例如 GitLab Webhooks ,您可以使用 AWS Services 來自動化持續更新和部署。
AWS CICD 管道流程圖
CI/CD 管道使用 建置AWS CodePipeline