Terraform 是由 HashiCorp 创建的“基础架构即代码”开源工具,让程序员可以安全高效地构建、更改基础架构并标示其版本。
了解桌面即服务 (DaaS) 如何帮助企业实现与本地部署应用程序相同水平的性能和安全性。
注册获取应用程序现代化指南
首先了解基础架构即代码 (IaC) 的优点将有助于更好地了解 Terraform 的优势。开发人员可以利用 IaC,以更快和可重复的自动化方式对基础架构进行编码。它是敏捷和 开发运维 (DevOps) 实践(例如版本控制、持续整合和持续部署)的关键组成部分。
基础结构即代码有助于实现以下目标:
出于下列几点关键原因,开发人员选择使用 Terraform 而非其他基础架构即代码工具:
Terraform 模块是可以重复使用的小型 Terraform 配置,适用于一起使用的多项基础架构资源。Terraform 模块很有用,因为它们允许通过可重复使用、可配置的构造来自动化复杂的资源。即使编写非常简单的 Terraform 文件也会生成一个模块。一个模块可以调用其他模块(称为“子模块”),从而加快和精简配置组装流程。此外,还可以在同一配置或不同配置中多次调用模块。
Terraform 提供程序是用于实施资源类型的插件。提供程序包含代表用户验证和连接服务(通常由公共云供应商提供)所需的全部代码。可以查找所使用云平台和服务的提供程序,将其添加到配置中,然后使用其资源来预配基础架构。几乎所有主要云供应商、SaaS 产品等都有提供程序,由 Terraform 社区或个别组织开发或提供支持。详细列表请参阅 Terraform 文档(ibm.com 外部链接)。
有时候,Terraform 和 Kubernetes 及其用途会被混淆。它们其实并非替代品,而且可以有效地协同运作。
Kubernetes 是一种开源容器编排系统,让开发人员可以为计算集群中的节点安排部署,并主动管理容器化工作量,以确保其状态符合用户的意图。
Terraform 是一款基础架构即代码工具,其覆盖范围更广,可让开发人员自动运作涵盖多个公有云和私有云的完整基础架构。
Terraform 可以自动执行和管理基础架构即服务 (IaaS)、平台即服务 (PaaS) 甚至软件即服务 (SaaS) 级别的功能,并行构建涵盖所有这些提供程序的全部相关资源。可以使用 Terraform 自动预配 Kubernetes(特别是在云平台托管的 Kubernetes 集群),并自动将应用程序部署到集群中。
Terraform 和 Ansible 都是基础架构即代码工具,但两者之间存在一些显著差异: