Terraform 是一种声明式编码工具,可以让开发人员用 HCL(HashiCorp 配置语言)高级配置语言来描述基础设施,并通过状态文件管理整个基础设施的生命周期。它包括了底层的组件,例如计算实例,存储和网络,也包括高层的组件,例如 DNS,LBS 等。
一键部署,只需要执行几条命令,不需要通过繁琐的页面操作。
使用可以更方便和 CI/CD 进行集成,自动化测试基础设施。
不用维护资源之间的依赖关系,允许保存基础设施状态,从而使您能够跟踪对系统(基础设施即代码)中不同组件所做的更改,并与其他人共享这些配置。
如果基础架构庞大,那么很容易错误配置资源或以错误顺序供应服务。 借助 IaC(基础设施即代码),资源始终完全按声明进行供应和配置。
通过代码来维护资源状态,可以对状态进行版本控制,基础设施可以共享。
通过 Plan 在真正部署之前进行检查,生成一个列表包含了将要部署的每一个组件,通过检查这个列表避免产生不必要的错误。
构建的所有资源的图表,它能够并行地创建和修改任何没有相互依赖的资源。因此,Terraform 可以高效地构建基础设施,操作人员也可以通过图表深入地解其基础设施中的依赖关系。
把复杂的变更集应用到基础设施中,而无需人工交互。通过前面提到的执行计划和资源图,我们可以确切地知道 Terraform 将会改变什么,以什么顺序改变,从而避免许多可能的人为错误。