基础设施即代码 (IaC) 工具允许您使用配置文件而不是通过图形用户界面来管理基础设施。IaC 允许您通过定义可以版本化、重用和共享的资源配置,以安全、一致和可重复的方式构建、更改和管理您的基础设施。
Terraform 是 HashiCorp 的基础设施即代码工具。它让您可以在人类可读的声明性配置文件中定义资源和基础设施,并管理您的基础设施的生命周期。与手动管理基础设施相比,使用 Terraform 有几个优势:
- Terraform 可以管理多个云平台上的基础设施。
- 人类可读的配置语言可帮助您快速编写基础架构代码。
- Terraform 的状态允许您在整个部署过程中跟踪资源更改。
- 您可以将您的配置提交给版本控制,以安全地在基础架构上进行协作
管理任何基础设施
称为提供程序的 Terraform 插件让 Terraform 通过其应用程序编程接口 (API) 与云平台和其他服务进行交互。HashiCorp 和 Terraform 社区已经编写了 1,000 多个提供程序来管理 Amazon Web Services (AWS)、Azure、谷歌云平台 (GCP)、Kubernetes、Helm、GitHub、Splunk 和 DataDog 上的资源,仅举几例。查找您已在Terraform Registry 中使用的许多平台和服务的提供者。如果找不到您要查找的提供程序,您可以编写自己的提供程序。
标准化您的部署工作流程
提供商将基础设施的各个单元(例如计算实例或专用网络)定义为资源。您可以将来自不同提供者的资源组合成称为模块的可重用 Terraform 配置,并使用一致的语言和工作流管理它们。
Terraform 的配置语言是声明性的,这意味着它描述了基础架构所需的最终状态,这与需要逐步指令来执行任务的过程编程语言形成对比。Terraform 提供程序自动计算资源之间的依赖关系,以按正确的顺序创建或销毁它们。
使用 Terraform 部署基础设施:
- 范围- 确定项目的基础设施。
- 作者- 为您的基础架构编写配置。
- 初始化- 安装 Terraform 管理基础设施所需的插件。
- 计划- 预览 Terraform 将根据您的配置进行的更改。
- 应用- 进行计划的更改。
跟踪您的基础设施
Terraform 在状态文件中跟踪您的真实基础设施,作为您环境的真实来源。Terraform 使用状态文件来确定对您的基础设施进行的更改,以便它与您的配置相匹配。
合作
Terraform 允许您通过其远程状态后端在您的基础设施上进行协作。当您使用 Terraform Cloud(最多五个用户免费)时,您可以安全地与您的队友共享您的状态,为 Terraform 提供一个稳定的运行环境,并防止多人同时更改配置时出现竞争情况。
您还可以将 Terraform Cloud 连接到 GitHub、GitLab 等版本控制系统 (VCS),从而在您向 VCS 提交配置更改时自动提出基础架构更改。这使您可以通过版本控制来管理对基础架构的更改,就像处理应用程序代码一样。