上的 CI/CD AWS - AWS 上 5G 網路的持續整合和持續交付

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

上的 CI/CD AWS

CI/CD 可以製作成一個管道,其中新程式碼在一端提交,經過一系列階段 (來源、建置、測試、預備和生產) 測試,然後發佈為生產就緒程式碼。

描述 AWS 程式碼管道範例的圖表

CICD 管道概觀

CI/CD 管道的每個階段在交付過程中都以邏輯單位的形式建構。每個階段都做為門,可對程式碼的特定層面進行審核。隨著程式碼經過管道,假設程式碼的品質在後期會更高,因為更多層面會繼續驗證。早期發現的問題會阻止程式碼透過管道進行。測試的結果會立即傳送給團隊,而且如果軟體未通過階段,所有進一步的建置和版本都會停止。

AWS 引進一組完整的 CI/CD 開發人員工具,以加速軟體開發和發行週期。 會在每次發生程式碼變更時,根據定義的發行模型,AWS CodePipeline自動化發行程序的建置、測試和部署階段。這可快速且可靠地交付功能和更新。

程式碼管道可以與其他 服務整合。這些可以是 AWS Services,例如 Amazon Simple Storage Service (Amazon S3) 或第三方產品,例如 GitHub。 AWS CodePipeline 可以解決各種開發和操作使用案例,包括:

  • 使用 編譯、建置和測試程式碼 AWS CodeBuild

  • 持續將容器型應用程式交付至雲端

  • 網路服務或特定雲端原生網路函數所需的成品 (例如描述項和容器映像) 部署前驗證

  • 容器化網路函數/虛擬網路函數 (CNF/VNF) 的功能、整合和效能測試,包括基準和迴歸測試

  • 可靠性和災難復原 (DR) 測試。

描述 AWS CICD 管道元件的圖表

AWS CICD 管道元件

AWS 可以使用下列 AWS 開發人員工具設定 CI/CD 管道:

CI/CD 管道建立可以使用 AWS CDK和 自動執行AWS CloudFormation。在 NFV 網域中,此 AWS 原生自動化可以整合到 Management and Orchestration (MANO) 架構和 CSP 的服務協調架構。

CI/CD 程序包含下列步驟:

  • 網路設定 – AWS CDK 並 AWS CloudFormation 啟動建立網路先決條件:

  • 基礎設施部署 – AWS CDK 並 AWS CloudFormation 啟動建立下列資源堆疊:

  • 雲端網路函數 (CNF) 部署 – 在此階段,CNF 會使用 Kubectl 和 Helm Charts 工具部署至 EKS 叢集。此階段也會部署 CNFs 所需的任何特定應用程式或工具,以有效率地運作 (例如 Prometheus Fluentd)。CNFs可以透過 Lambda 函數或使用 進行部署 AWS CodeBuild。

  • 持續更新和部署 – 這些是反覆執行的一系列步驟,以部署容器/組態變更的一部分,進而導致升級。與 CNF 部署案例類似,連續更新和部署可以使用 AWS 服務自動化,其觸發條件來自 AWS CodeCommitAmazon Elastic Container Registry (Amazon ECR) 或第三方來源系統,例如 GitLab Webhooks。

描述 AWS CICD 管道流程的圖表。

AWS CICD 管道流程圖

CI/CD 管道是使用 建置的AWS CodePipeline,並使用持續交付服務,以模型化、視覺化和自動化發行軟體所需的步驟。透過定義管道中的階段,您可以從原始程式碼儲存庫擷取程式碼、將該原始程式碼建置為可釋放成品、測試成品,並將其部署到生產環境。只會部署成功通過所有這些階段的程式碼。您可以選擇性地將其他需求新增至管道,例如手動核准,以協助確保只有核准的變更才會部署到生產環境中。