GitLab CI/CD - AWS 方案指引

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

GitLab CI/CD

GitLab CI/CD 是 GitLab 平台的整合部分,可提供持續整合、交付和部署功能。雖然 GitLab CI/CD 不只是 GitOps 工具,但您可以設定它來實作 GitOps 原則,尤其是當您將其用於 Kubernetes 部署時。

GitOps 支援

區域圖 工具功能

Git 作為單一事實來源

GitLab CI/CD 使用 Git 儲存庫來存放應用程式程式碼和基礎設施組態。系統的所有變更都是透過 Git 進行,以確保完整的歷史記錄和稽核線索。

宣告式組態

GitLab CI/CD 管道在 .gitlab-ci.yml 檔案中定義,這是存放在 Git 儲存庫中的宣告式組態。Kubernetes 資訊清單、Helm Chart 或其他基礎設施即程式碼 (IaC) 檔案可以存放在相同的儲存庫中,以定義基礎設施的所需狀態。

自動化管道

將變更推送至儲存庫時,GitLab CI/CD 會自動觸發管道。這些管道可以包含建置、測試和部署應用程式的階段。

Kubernetes 整合

GitLab CI/CD 提供原生 Kubernetes 整合,並支援將 GitOps 樣式部署到 Kubernetes 叢集。它可以根據 Git 中的組態自動建立和管理 Kubernetes 資源。

環境管理

GitLab CI/CD 支援將多個環境 (例如預備和生產) 定義為程式碼。部署到這些環境可以是自動化的,或者可能需要符合 GitOps 實務的手動核准。

檢閱應用程式

GitLab 可以自動為合併請求建立臨時環境,類似於其他 GitOps 工具中的預覽環境。這支援在合併之前輕鬆檢閱和測試變更。

持續部署

您可以將 GitLab CI/CD 設定為在變更合併至特定分支時,自動將變更部署至 Kubernetes 叢集。

IaC

GitLab CI/CD 支援與 Terraform 等工具整合 CloudFormation ,並以程式碼形式管理基礎設施。基礎設施定義可與應用程式程式碼一起進行版本控制。

可觀測性和監控

GitLab CI/CD 提供內建的監控和可觀測性功能,包括與 Prometheus 和 Grafana 的整合。

安全性掃描

GitLab CI/CD 包含內建的安全掃描工具,可整合到 CI/CD 管道中,以在 GitOps 工作流程中強制執行安全性。

容器登錄檔

GitLab CI/CD 包含內建容器登錄檔,可在 GitOps 工作流程中無縫整合容器映像管理。

Auto DevOps

GitLab CI/CD 中的 Auto DevOps 功能可以自動設定遵循 Kubernetes 部署 GitOps 原則的 CI/CD 管道。

核准工作流程

GitLab CI/CD 支援部署的核准程序,可在環境之間提供受控制的提升。

秘密管理

GitLab CI/CD 提供在 CI/CD 管道內安全地管理和使用秘密的功能。

版本控制和版本

GitLab CI/CD 支援自動版本控制和發行管理,作為 CI/CD 程序的一部分。

轉返

如果在部署後偵測到問題,GitLab CI/CD 可讓您輕鬆轉返至先前的版本。

稽核日誌

GitLab CI/CD 為所有動作提供全面的稽核日誌,以支援 GitOps 的可追蹤性方面。

多專案管道

GitLab CI/CD 支援跨多個專案或儲存庫的複雜 GitOps 工作流程。

ChatOps

GitLab CI/CD 支援 ChatOps 整合,透過聊天介面提供協作和操作。

Kubernetes 叢集管理

GitLab CI/CD 提供直接從 GitLab 介面管理 Kubernetes 叢集的功能。

雖然 GitLab CI/CD 並非專門為 GitOps 設計,但它可以有效地用於實作 GitOps 實務,尤其是已使用 GitLab 作為其主要開發平台的團隊。其整合方法結合了來源控制、CI/CD 和 Kubernetes 管理,使其成為實作 GitOps 工作流程的強大工具。

GitLab CI/CD 和專用 GitOps 工具如 Argo CD 或 Flux 之間的主要區別在於,GitLab 提供更全面的平台,其中包括來源控制管理、問題追蹤和其他開發工具及其 CI/CD 功能。這使得它特別適合需要在更廣泛的開發系統中實作 GitOps 實務all-in-one解決方案的團隊。

如需 GitLab CI/CD 及其架構的詳細資訊,請參閱 GitLab CI/CD 文件