Quantcast
Channel: InfoQ - 促进软件开发领域知识与创新的传播
Viewing all articles
Browse latest Browse all 1638

IaC 自动化配置与编排神器 - Terraform 深度解析

$
0
0

前言

Terraform 是 Hashicorp 公司开源的一种多云资源编排工具。使用者通过一种特定的配置语言(HCL, Hashicorp Configuration Language)来描述基础设施,由 Terraform 工具统一解析,构建资源之间的关系,生成执行计划,并通过调用各家云厂商的具体实现来完成整个基础设施生命周期的管理。

相对于其它的云上资源管理方式,Terraform 的主要特点有:

  • 基于 IaC(基础设施即代码,Infrastructure as Code)的设计,可以将基础设施以一种领域特定语言描述出来,消除了在基础设施自动化时描述语义上的歧义,同时减轻了人为因素造成的不确影响。
  • Terraform 在执行编排动作前,会生成一份可读性良好的执行计划,关键基础设施的变更可以得到充分审查,保证了基础设施的可靠性。
  • 基于 DAG(有向无环图,Directed Acyclic Graph)描述资源与资源之间的关系,由于 DAG 良好的拓扑性质,当资源属性与资源关系发生改变时,变更动作将被充分并行地执行。

在UCloud,我们最终选择了 Terraform 来编写 UCloud 基础设施代码,并配合 UCloud CLI、Ansible 等工具,进一步拓展了 Terraform 的功能,实现基础设施可编程。

本文将详细阐述 Terraform 的整个生命周期,从 Provider 开发者的视角,介绍 Terraform 在安全、效率和状态一致性三个方面的内部机理与具体实现。

技术实现解析

生命周期

以首次执行 Terraform 创建 UCloud 云上资源为例,这一资源编排动作的生命周期如下图所示:


Viewing all articles
Browse latest Browse all 1638

Trending Articles