将基础架构作为代码进行管理的概念在 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,您可以为各种目的部署大量堆栈。例如,您可以部署和停用暂存堆栈、测试堆栈或生产堆栈。
7、可复用组件: 无需复制粘贴上千行代码。Pulumi 允许您在不同项目中重用现有代码,从而帮助您遵循最佳编码实践。代码不只定义一个实例;它定义了整个架构。
8. 统一架构: DevOps 组织 可以使用和重用组件来管理基础架构并构建独特的架构和测试策略。这种自由使团队能够建立一个内部平台。
结论
Pulumi 对最流行的编程语言的支持有助于 DevOps 保持生产力,而不会浪费时间管理基础设施。虽然 Pulumi 可能不是唯一不强制使用专有语言的基础设施即代码工具,但它无疑是最灵活的,因为它与云无关。您可以通过使用您已经用于运行应用程序的语言编写配置文件来跨多个云提供商利用 Pulumi 的强大功能。