摘要:是基于公司开源的实现的多云资源编排工具,用户可以通过编写规格文件,实现对基础设施的自动化管理。资源编排工具将资源的状态描述为一个状态的集合,并支持若干种不同类型的状态存储。
UCloud Terraform 是基于 Hashicorp 公司开源的 Terraform 实现的多云资源编排工具,用户可以通过编写 HCL(Hashicorp Configuration Language) 规格文件,实现对基础设施的自动化管理。
UCloud 目前已正式接入 Terraform 官方仓库,通过编写 Terraform 模板来管理 UCloud 资源,安全又高效,可以实现对基础架构的自动化部署、快速迁移等,配合 CLI、Ansible 等工具,可以进一步拓展 Terraform 的功能,实现基础架构可编程。
本篇目录
-
具有良好可读性的编排计划
-
基于 DAG 的资源依赖图管理
-
统一的资源状态管理
-
安全且高效的重试策略
相对于 UCloud 其它资源管理方式(如控制台,程序调用 API,程序调用 SDK)来说,基于 Terraform 的资源编排系统拥有其不可替代的优势。
具有良好可读性的编排计划
UCloud Terraform 资源编排工具在执行真正的资源编排动作前,会生成一份可读性较好的编排计划,类似于 SQL 对数据库执行变更操作前生成的执行计划。
由于编排计划可以在执行真正的编排动作前生成,所以在执行编排动作前可以通过人工审查基础设施的重大变更,保障关键基础设施的安全性。
同时基于该特性,基础设施的管理者可以生成一份针对于资源定义文件的上一个版本的反向编排计划,从而实现基础设施的回滚。
基于 DAG 的资源依赖图管理
UCloud Terraform 资源编排工具将所有的资源构建为一张有向无环图(DAG),计算它们的依赖关系,并且并行地去创建和修改相互间没有依赖的那些资源。 因此整个基础设施的构建过程是非常高效的,并且是严格有序的。
由此我们可以轻松构建和管理资源的拓扑,任何资源间的依赖都可以被明确地抽象和定义,编排工具可以帮助使用者完成资源间关系的实际构建工作。
统一的资源状态管理
UCloud Terraform 资源编排工具引入了面向资源的设计,更贴近于现代编程习惯。
资源编排工具将资源的状态描述为一个状态的集合,并支持若干种不同类型的状态存储。默认情况下,在 terraform cli 的执行目录下,会存储一个本地的资源状态文件,并在每次编排开始时,从远程同步状态到本地,比较该状态与用户定义的资源之间的差异,从而生成编排计划。
对于资源状态的统一管理,使得基于 Terraform 的资源编排系统可以保持基础设施的一致性。 例如,使用 etcd
等远程强一致存储作为 Terraform 的后端状态存储,可以对资源状态的操作加锁,使得多个用户不会同时操作相同的基础设施实例。
安全且高效的重试策略
UCloud Terraform 资源编排工具实现了安全且高效的重试策略,由于工具内部存储了当前资源的状态,所以在资源变更时无法:
-
在自动化的环境中,比如 CI 执行环境下,对于偶发性质的问题,可以通过简单的重试策略来保障基础设施编排的可用性,大幅减少人工干预。
-
对于部分支持属性局部更新的产品,当编排失败重试时,仅更新失败的部分属性。
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/4452.html