产品优势

相对于 云知芯 其它资源管理方式(如控制台,程序调用 API,程序调用 SDK)来说,基于 Terraform 的资源编排系统拥有其不可替代的优势。

具有良好可读性的编排计划

云知芯 Terraform 资源编排工具在执行真正的资源编排动作前,会生成一份可读性较好的编排计划,类似于 SQL 对数据库执行变更操作前生成的执行计划。

由于编排计划可以在执行真正的编排动作前生成,所以在执行编排动作前可以通过人工审查基础设施的重大变更,保障关键基础设施的安全性。

同时基于该特性,基础设施的管理者可以生成一份针对于资源定义文件的上一个版本的反向编排计划,从而实现基础设施的回滚。

基于 DAG 的资源依赖图管理

云知芯 Terraform 资源编排工具将所有的资源构建为一张有向无环图(DAG),计算它们的依赖关系,并且并行地去创建和修改相互间没有依赖的那些资源。 因此整个基础设施的构建过程是非常高效的,并且是严格有序的。

由此我们可以轻松构建和管理资源的拓扑,任何资源间的依赖都可以被明确地抽象和定义,编排工具可以帮助使用者完成资源间关系的实际构建工作。

统一的资源状态管理

云知芯 Terraform 资源编排工具引入了面向资源的设计,更贴近于现代编程习惯。

资源编排工具将资源的状态描述为一个状态的集合,并支持若干种不同类型的状态存储。默认情况下,在 terraform cli 的执行目录下,会存储一个本地的资源状态文件,并在每次编排开始时,从远程同步状态到本地,比较该状态与用户定义的资源之间的差异,从而生成编排计划。

对于资源状态的统一管理,使得基于 Terraform 的资源编排系统可以保持基础设施的一致性。 例如,使用 etcd 等远程强一致存储作为 Terraform 的后端状态存储,可以对资源状态的操作加锁,使得多个用户不会同时操作相同的基础设施实例。

安全且高效的重试策略

云知芯 Terraform 资源编排工具实现了安全且高效的重试策略,由于工具内部存储了当前资源的状态,所以在资源变更时无法:

  • 在自动化的环境中,比如 CI 执行环境下,对于偶发性质的问题,可以通过简单的重试策略来保障基础设施编排的可用性,大幅减少人工干预。
  • 对于部分支持属性局部更新的产品,当编排失败重试时,仅更新失败的部分属性。