本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Pulumi
Pulumi 是一種 IaC 平台,並非專為 GitOps 而設計。不過,它可以有效地用於實作 GitOps 原則,尤其是雲端基礎設施和 Kubernetes 部署。
GitOps 支援
| 區域圖 | 工具功能 |
|---|---|
IaC |
Pulumi 可讓您使用 Python、TypeScript 和 Go 等一般用途程式設計語言來定義基礎設施。這種以程式碼為基礎的方法符合 GitOps 對版本控制的宣告式組態的強調。 |
Git 作為單一事實來源 |
Pulumi 中的基礎設施程式碼可以在 Git 儲存庫中儲存和版本控制。這可確保 Git 做為基礎設施定義的單一事實來源。 |
宣告所需狀態 |
雖然 Pulumi 使用程式設計語言,但仍會宣告地描述所需的基礎設施狀態。此程式碼會定義基礎設施的外觀,而不是建立它的step-by-step程序。 |
自動化同步 |
Pulumi 可與 CI/CD 管道整合,以在 Git 中更新程式碼時自動套用變更。這可啟用基礎設施變更的持續部署,這是關鍵 GitOps 原則。 |
多雲端和 Kubernetes 支援 |
Pulumi 支援各種雲端供應商和 Kubernetes,因此您可以在各種環境中遵循 GitOps 實務。此工具可跨不同平台一致管理資源。 |
狀態管理 |
Pulumi 會管理基礎設施的狀態,這些基礎設施可以遠端安全地存放。此狀態管理對於 GitOps 實務至關重要,可確保定義狀態與基礎設施實際狀態之間的一致性。 |
偏離偵測和調校 |
Pulumi 可以偵測所需狀態 (在程式碼中) 與基礎設施實際狀態之間的差異。它會根據 GitOps 原則來協調這些差異,以持續進行協調。 |
政策即程式碼 |
您可以使用 Pulumi CrossGuard 將政策定義為程式碼,並強制執行政策。這可讓版本控制的 GitOps 樣式管理合規和安全性政策。 |
秘密管理 |
Pulumi 提供安全的方法來管理基礎設施程式碼中的敏感資訊。它支援與外部秘密管理系統整合,這對 GitOps 安全實務至關重要。 |
模組化和可重複使用的元件 |
Pulumi 支援建立可重複使用的元件和模組。此模組化符合管理複雜多環境部署的 GitOps 實務。 |
預覽和規劃 |
Pulumi 提供在套用變更之前預覽變更的功能。這支援對基礎設施進行安全、可預測的變更的 GitOps 原則。 |
轉返和歷史記錄 |
Pulumi 會維護部署歷史記錄,並支援復原至先前的狀態。這符合 GitOps 的可追蹤性和可逆性原則。 |
基礎設施的持續交付 |
Pulumi 可以整合到 CI/CD 管道中,以持續交付基礎設施變更。它支援基礎設施程式碼的自動測試和驗證。 |
RBAC 和存取控制 |
Pulumi 提供以角色為基礎的存取控制,用於管理誰可以變更基礎設施。這支援 GitOps 安全與控管實務。 |
可觀測性和記錄 |
Pulumi 提供基礎設施變更的記錄和監控功能。這些功能支援 GitOps 實務的可觀測性方面。 |
與其他工具整合 |
Pulumi 可與雲端中的各種工具整合。這種靈活性允許全面的 GitOps 工作流程。 |
環境管理 |
Pulumi 使用具有不同組態的相同程式碼庫來支援管理多個環境 (開發、預備、生產)。這符合 GitOps 的一致多環境管理實務。 |
相依性管理 |
Pulumi 會處理資源之間的相依性,並確保正確的操作順序。這對涉及相互依賴元件的複雜 GitOps 部署至關重要。 |
自訂資源提供者 |
Pulumi 可讓您建立自訂提供者來管理任何 API 驅動的服務。這將 GitOps 實務擴展到標準雲端產品以外的各種資源。 |
協同合作功能 |
Pulumi 透過共用狀態和存取控制支援團隊合作。這有助於團隊環境中的 GitOps 工作流程。 |
透過使用這些 Pulumi 功能,組織可以為其基礎設施實作 GitOps 實務,尤其是在需要精細控制或複雜邏輯,或想要在單一、一致的架構內管理各種雲端和內部部署資源的情況下。
Pulumi 的 GitOps 方法是唯一的,因為它將一般用途程式設計語言的力量和靈活性帶入基礎設施管理,同時遵守 GitOps 原則。對於偏好使用熟悉程式設計語言,並希望將軟體工程最佳實務套用至基礎設施管理的團隊來說,這可能特別有利。
GitOps 中 Pulumi 的主要差異在於使用標準程式設計語言來定義基礎設施。傳統 GitOps 工具通常使用 YAML 或特定網域的語言,而 Pulumi 允許更複雜的邏輯、更好的程式碼重複使用,以及更輕鬆地與現有的開發工作流程整合。
如需詳細資訊,請參閱 Pulumi 文件