將基礎架構作為代碼進行管理的概念在 DevOps 環境中至關重要。此外,沒有它,就不可能維持高效的 DevOps 管道 。Pulumi 等基礎設施即代碼工具可幫助 DevOps 團隊大規模自動化其資源配置方案。本文將向您介紹基礎架構即代碼的概念。您還將了解為什么 Pulumi 是一種現代基礎架構即代碼工具,它是 DevOps 社區中的流行工具。
基礎設施即代碼解釋
基礎設施即代碼 (IaC) 是使用描述性編碼語言自動化資源供應和管理方案的過程。在基礎架構即代碼 (IaC) 之前,系統管理員必須手動配置、部署和管理服務器資源。他們必須先配置裸機,然后才能部署應用程序。手動管理基礎架構會導致許多問題。它昂貴、緩慢、難以擴展并且容易出現人為錯誤。
隨著云計算的引入,部署虛擬化環境得到了簡化,但管理員仍然必須手動部署環境。他們必須登錄云提供商的基于 Web 的儀表板并單擊按鈕來部署所需的服務器配置。但是,當您需要盡快跨多個云提供商和位置部署數百臺服務器時,手動完成所有操作是不切實際的。
IaC 使 DevOps 團隊能夠通過簡單的說明跨多個提供商大規模部署和管理基礎架構。只需編寫配置文件并執行它以自動部署所需的環境。代碼算法定義了所需的環境類型,并由自動化進行部署。
什么是Pulumi?
Pulumi 是一種開源基礎設施即代碼工具,它利用最流行的編程語言來簡化云資源的配置和管理。Pulumi 成立于 2017 年,從根本上改變了 DevOps 團隊處理基礎設施即代碼概念的方式。Pulumi 不依賴于特定領域的語言,而是使組織能夠使用真正的編程語言來配置和停用云原生基礎設施。
與具有將基礎設施定義為代碼的專有語言和語法的 Terraform 不同,Pulumi 使用真實語言。您可以使用 Python、JavaScript 或 TypeScript 編寫配置文件。換句話說,您不必僅僅為了管理基礎設施而學習一門新的編程語言。
要了解 Pulumi 如何與其他類似解決方案相媲美,請閱讀我們的文章 Pulumi vs Terraform
作為一個云原生平臺,Pulumi 允許您部署任何類型的云基礎設施——虛擬服務器、容器、應用程序或無服務器功能。您還可以跨多個云提供商(例如 AWS、Microsoft Azure 或 PNAP Bare Metal Cloud)部署和管理資源。
Pulumi 獨特的 IaC 方法使 DevOps 團隊能夠將其基礎架構作為以他們選擇的語言編寫的應用程序來管理。使用 Pulumi,您可以利用函數、循環和條件來創建動態云環境。Pulumi 幫助開發人員創建可重用的組件,消除了復制和粘貼數千行代碼的麻煩。
Pulumi 支持以下編程語言:
- Python
- JavaScript
- Go
- TypeScript
- .NET 語言(C#、F# 和 VB)
Pulumi如何運作?
Pulumi 因其多語言和多云特性而成為 DevOps 環境中最受歡迎的基礎設施即代碼工具。它為 DevOps 工程師提供了一種熟悉的資源管理方法。
Pulumi 通過其云對象模型和評估運行時來做到這一點。它需要你用任何語言編寫的程序,找出你想要管理的云資源,然后執行你的程序。所有這一切都是可能的,因為它本質上是語言中立和云中立的。
三個組件構成了核心 Pulumi 系統:
- 語言宿主。語言宿主運行你的 Pulumi 程序來創建環境并向部署引擎注冊資源。
- 部署引擎。它運行大量檢查和計算以確定它是否應該創建、更新、刪除或復制資源。
- 資源提供者。Pulumi 根據您的語言和云提供商規范在后臺自動下載包和插件。
Pulumi 允許您通過 Web 應用程序或命令行界面 (CLI) 管理您的基礎架構。要開始使用 Pulumi,您首先必須注冊并創建一個帳戶。注冊后,您必須指定編程語言和云服務提供商。如果您更喜歡使用 CLI,則需要將其安裝在本地計算機上并使用您的帳戶對其進行身份驗證,并提供您從云提供商處獲得的秘密憑據。有關 Pulumi 工作原理的詳細說明,請查看此快速教程。
Pulumi的8大特點和優勢
1. 開源: Pulumi 免費無限量個人使用。但是,如果您想在團隊中使用它,則需要支付少量年費。
2. 多語言: 使用您喜歡的編程語言編寫基礎設施配置文件。作為一個語言中立的 IaC 平臺,Pulumi 不會強迫你學習一門新的編程語言,也不會使用特定領域的語言。您不必 使用 Pulumi編寫一行YAML 代碼。
3. 多云:跨眾多云服務提供商提供、擴展和停用基礎設施和資源。其中,phoenixNAP 的 Bare Metal Cloud 平臺、Google Cloud、AWS、Microsoft Azure。
4. 功能豐富的 CLI: 使 Pulumi 如此多功能的驅動力是其簡單而強大的命令行界面 (CLI)。通過 CLI,部署和停用云基礎設施和服務器是通過終端中發出的一組命令進行的。您可以在 Linux、Windows 和 OS X 上使用 Pulumi。
5. 云對象模型: 底層云對象模型詳細概述了您的程序是如何構建的。它提供了一個統一的編程模型,讓您可以在任何地方跨任何云提供商管理云軟件。
6. 堆棧: 堆棧是您的云程序的獨立實例,與您的其他程序不同。使用 Pulumi,您可以為各種目的部署大量堆棧。例如,您可以部署和停用暫存堆棧、測試堆?;蛏a堆棧。
7、可復用組件: 無需復制粘貼上千行代碼。Pulumi 允許您在不同項目中重用現有代碼,從而幫助您遵循最佳編碼實踐。代碼不只定義一個實例;它定義了整個架構。
8. 統一架構: DevOps 組織 可以使用和重用組件來管理基礎架構并構建獨特的架構和測試策略。這種自由使團隊能夠建立一個內部平臺。
結論
Pulumi 對最流行的編程語言的支持有助于 DevOps 保持生產力,而不會浪費時間管理基礎設施。雖然 Pulumi 可能不是唯一不強制使用專有語言的基礎設施即代碼工具,但它無疑是最靈活的,因為它與云無關。您可以通過使用您已經用于運行應用程序的語言編寫配置文件來跨多個云提供商利用 Pulumi 的強大功能。