Jenkins X - AWS 方案指引

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

Jenkins X

Jenkins X 是雲端原生的開放原始碼 CI/CD 平台,可針對 Kubernetes 環境實作 GitOps 原則。雖然 Jenkins X 並非像 Argo CD 或 Flux 之類的 GitOps 工具,但它將 GitOps 實務納入其工作流程。

GitOps 支援

區域圖 工具功能

Git 中心工作流程

Jenkins X 使用 Git 儲存庫作為應用程式程式碼和組態的主要事實來源。應用程式和基礎設施的所有變更都是透過 Git 進行。

環境即程式碼 (EaC)

環境 (例如預備和生產) 在 Git 儲存庫中定義為程式碼。這允許版本控制和檢閱環境組態。

自動化 CI/CD 管道

Jenkins X 會自動設定專案的 CI/CD 管道。這些管道定義為程式碼 (管道為程式碼),並存放在 Git 中。

Kubernetes 原生

Jenkins X 專為 Kubernetes 環境而建置。它使用 Kubernetes 資源和自訂資源定義 (CRDs)。

預覽環境

Jenkins X 會自動為提取請求建立暫時環境。它可在合併之前輕鬆檢閱和測試變更。

環境之間的提升

Jenkins X 使用 GitOps 方法來提升環境之間的應用程式 (例如,從預備到生產)。提升是透過使用提取請求來處理,以確保適當的審核和核准程序。

Helm Chart 管理

Jenkins X 使用 Helm Chart 來封裝和部署應用程式。圖表在 Git 儲存庫中受版本控制。

自動化版本控制

Jenkins X 會自動管理應用程式和版本的版本控制。它使用語意版本控制並產生版本備註。

ChatOps 整合

Jenkins X 支援 ChatOps 的常見操作。這符合自動化和協作的 GitOps 原則。

可擴展性

此工具提供用於擴展功能的外掛程式系統。它允許與各種雲端原生工具整合。

基礎設施即程式碼 (IaC)

Jenkins X 支援 Terraform CloudFormation AWS Cloud Development Kit (AWS CDK)、 和其他 IaC 工具來定義和管理基礎設施。基礎設施定義與應用程式程式碼一起受版本控制。

自動化轉返

如果在部署後偵測到問題,Jenkins X 支援自動轉返。

秘密管理

該工具與外部秘密管理解決方案整合,以安全地處理敏感資訊。

可觀測性

Jenkins X 提供與監控和記錄工具的整合,以實現可觀測性。

多雲端支援

Jenkins X 旨在跨不同的雲端提供者和內部部署環境運作。

團隊協作

此工具鼓勵透過 Git 型工作流程進行協作,並提取請求。

持續意見回饋

此工具透過自動化測試和預覽環境,提供變更的快速意見回饋。

DevOps 最佳實務

Jenkins X 預設會實作 DevOps 最佳實務,包括 GitOps 原則。

宣告式組態

此工具使用宣告式組態來定義應用程式和環境。

自動升級

Jenkins X 提供工具來自動化 Jenkins X 平台本身的升級。

Jenkins X 實作這些 GitOps 原則,為 Kubernetes 建立全面的 CI/CD 解決方案。它旨在自動化和簡化從程式碼遞交到生產部署的整個軟體交付程序,同時遵守 GitOps 實務。透過這樣做,可協助團隊在雲端原生環境中實現更快、更可靠且更一致的部署。

Jenkins X 和 Argo CD 或 Flux 等工具之間的主要區別在於,Jenkins X 提供更全面的 CI/CD 解決方案,包括建置自動化和管道管理,同時仍然整合 GitOps 原則以進行部署和環境管理。這使得它特別適合需要涵蓋單一 GitOps 架構內 CI 和 CD 層面all-in-one解決方案的團隊。

如需詳細資訊,請參閱 Jenkins X 文件

架構

下圖說明使用 Jenkins X 的 GitOps 驅動 CD 工作流程。如需詳細資訊,請參閱 Jenkins X 文件

Jenkins X 架構和工作流程 AWS。

其中:

  • 步驟 1:提取請求 (PR) 合併。開發人員會建立提取請求,其中包含對存放在 Git 儲存庫中的 Kubernetes 資訊清單、Helm Chart 或應用程式程式碼所做的變更。檢閱和核准之後,PR 會合併到主分支,並在來源控制中更新所需的狀態。

  • 步驟 2:儲存庫同步。Jenkins X 會在偵測到變更時自動觸發 CI/CD 管道。管道會使用 GitOps 原則,透過不同的環境 (例如預備和生產) 建置、測試和提升應用程式。

  • 步驟 3:部署至目標命名空間。Jenkins X 會使用新的應用程式版本更新環境儲存庫 (預備和生產)。叢集會自動協調變更,方法是從 Git 提取最新的資訊清單,並將應用程式部署到適當的命名空間。