天天看点

云计算技术 - 基础架构即代码之Terraform

作者:清泉流水zz

什么是Terraform

HashiCorp Terraform是一个IT基础架构自动化编排工具,可以以代码的形式来管理维护IT基础架构资源,包括虚拟化,以及IaaS、PaaS各类云计算服务,可覆盖弹性计算、云存储、云网络、云中间件和数据库等各类云计算产品,支持各种形式的云计算场景,包括私有云、专有云、混合云,是当前IT基础架构即代码的主流解决方案。

云计算技术 - 基础架构即代码之Terraform

Terraform特性

  • 基础架构即代码(Infrastructure as Code):Terraform基于一种特定的配置语言HCL(Hashicorp Configuration Language)来描述IT基础设施资源。可以像对待代码一样实现对基础架构的部署、版本控制和管理。同时可以支持以模板的形式进行共享和复用;
  • 执行计划:Terraform在执行前,可以通过terraform plan命令先解析模板生成一个可执行的计划,这个计划展示了当前模板需要创建、变更的资源和属性。运维开发人员可以预览这个计划,确认无误后再执行apply命令,完成所定义资源的创建和变更;
  • 资源图:可以根据模板中的定义,构建所需资源的图形,以并行的方式创建和修改资源,以保证执行的高效性;
  • 自动化变更:各类IT基础架构资源均可以按模板创建,通过apply一个命令,即可完成多个变更操作。

功能优势

  • 多云/混合云自动化部署

Terraform特别适用于多云解决方案,包括各类私有云、专有云等混合云场景,将相同的云计算服务需求以相同的形式部署到各类云环境中。开发或运维人员能够使用相同的工具和相似的配置文件同时管理不同云提供商的资源。

  • 自动化管理部署模板

Terraform能够创建配置文件的模板,以可重复、可预测的方式定义和预配各类云计算服务资源,减少人为因素导致的部署和管理错误。能够多次部署同一模板,创建相同的开发、测试和生产环境。

  • 降低部署成本

可以通过按需创建开发和部署环境来降低成本,支持在系统更改之前进行评估。

厂商支持

Terraform作为主流的自动化部署软件,得到了主流云厂商的开发与支持,并提供了对应的provider程序:

云计算技术 - 基础架构即代码之Terraform

云厂商支持情况

运行原理

云计算技术 - 基础架构即代码之Terraform
云计算技术 - 基础架构即代码之Terraform

Terraform workflow

继续阅读