Pulumi - AWS 方案指引

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

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 文件