Terraform 的使用场景

我们选择 Terraform 的缘由之一在于它具有广泛地使用场景,这主要体现在下列方面:

  • 自助式服务

    在一个团队中,通常由运维人员负责准备基础设施,并执行相应的管理过程。随着业务规模的增长,数量有限的运维人员很容易成为瓶颈。利用 Terraform,运维人员能够将基础设施定义成标准的资源和技术栈,从而以自助式的服务提供给团队中的其他人员消费。

  • 多层应用程序

    Terraform 聚焦于基础设施的部署,其范围涵盖计算实例、存储及网络。这使它成为构建多层应用程序的理想工具。无论是具有数据库后端的经典 Web 应用,还是具有 Web、缓存、中间件、数据库的多层应用,每一层都可以通过 Terraform 定义成代码。代码一旦在手,它们将更容易管理和自动伸缩。

  • 一致的环境

    在运维工作中一个常见的现实问题是,开发环境和测试环境总是很难与生产环境保持一致。结果即便应用程序通过了测试,然而在生产环境中仍有可能无法正常运行。通过 Terraform,我们把生产环境的基础设施代码化,然后将其与开发环境和测试环境共享,从而确保所有环境的一致性和兼容性。

  • CD(持续交付)

    如果你的应用程序已经通过 CI(持续集成)实现了自动化构建,那么不妨考虑更进一步,将 CI 中构建的制品进行自动化部署。使用 Terraform 自动准备各种环境,从而实现更有针对性的按需部署。同时,把它们串联在一起,形成真正的自动化部署流水线。

  • 管理基础服务

    除了管理各种云基础设施之外,Terraform 也能管理许多基础服务和工具。例如,GitHub 组织和仓库、GitLab 群组与项目、Grafana 数据源及 Dashboard 等等。不管你信不信,有人甚至使用 Terraform 来订购匹萨[1]。Terraform 的用途之广由此可见一斑。


  1. https://github.com/ndmckinley/terraform-provider-dominos ↩︎