IaC之Terraform 与Pulumi使用对比

举报
kaliarch 发表于 2021/11/20 20:40:22 2021/11/20
【摘要】 一 简介在iac(Infarftruce As Code)方面,老将Terraform已经利用yaml独领风骚很长时间,新军pulumi以其独到的代码实现资源编排一出场就光芒四射,对于不同场景,不同公司组织架构,以及不同的厂商范围,可以参考以下内容进行查看其区别。 二 功能 2.1 terraform概念:Terraform 是 Hashicorp 公司开源的一种多云资源编排工具。使用者通...

一 简介

在iac(Infarftruce As Code)方面,老将Terraform已经利用yaml独领风骚很长时间,新军pulumi以其独到的代码实现资源编排一出场就光芒四射,对于不同场景,不同公司组织架构,以及不同的厂商范围,可以参考以下内容进行查看其区别。

二 功能

2.1 terraform

  • 概念:Terraform 是 Hashicorp 公司开源的一种多云资源编排工具。使用者通过一种特定的配置语言(HCL, Hashicorp Configuration Language)来描述基础设施,由 Terraform 工具统一解析,构建资源之间的关系,生成执行计划,并通过调用各家云厂商的具体实现来完成整个基础设施生命周期的管理。
  • 语言特性:声明式语言描述资源清单,代码不容易复用,对于yaml语法处理循环,条件判断,以及对字符串做处理等各种工作,而 terraform 在这一块的表现力太弱,使得代码写起来非常冗长,很多时候不得不复制粘贴。
  • 状态管理困难:状态管理是 terraform 用户体验非常差的一环,由于没有提供相应的功能,客户只能自己在开源社区里找解决方案;
  • 可视化:状态的展示,部署的过程其实都可能做很多可视化的事情,让整体体验更好一些,减少 devOps 犯错。然而,terraform 并没有做这方面的支持。
  • 生态:生态完善,国内例如阿里/腾讯/华为/Ucloud/百度云等都支持,国外的基本都支持。
  • DevOPS:需要单独集成到CI/CD中,配合其实现资源编排。

2.2 pulumi

  • 概念:Pulumi是一个最新的基础设施即代码平台,他包含CLI、运行时、运行库、和一个托管服务,提供了一种强大的调配,更新和管理云基础架构的方式。 Pulumi替代了YAML或特定领域语言(DSL),而利用了现有的,熟悉的编程语言,包括TypeScript,JavaScript,Python,Go和.NET,以及它们的本机工具,库和包管理器。
  • 语言特性:利用编程语言描述资源清单,容易编写类复用等,编程语言对于循环,判断处理具备良好的支持,且代码量很少,代码表现力强。
  • 状态管理:由于使用各开发语言实现,可以非常方便的在代码里面使用各类数据库进行数据操作。
  • 可视化:可以注册pulumi网站,可视化管理。
  • 生态:生态处于发展阶段,国内目前仅阿里/支持,国外的基本都支持。
  • DevOPS,直接在语言中实现,非常方便将业务逻辑代码和资源编排存放在代码库,适合于GitOPS。

三 支持范围

3.1 terraform 支持

图片

3.2 pulumi支持

图片

从上述两款产品的provider来看,Terraform的国内云厂商和支持的范围更广,pulumi国外支持的多,国内目前仅阿里有。

四 通用性

4.1 terraform

terraform使用HCL来的yaml来描述资源清单,虽然统一,但是对于负责场景编排,很难用yaml语言描述,且开发人员需要单独学习yaml语法。

4.2 pulumi

pulumi使用各类研发人员熟悉的开发语言来描述资源清单,可谓下一代IaC,不用开发人员来单独学习yaml语法,使用自己熟悉的语言来描述需要的清单即可,但是目前适配国内公有云不是很多,如果在范围内可以考虑。

五 结论

根据以上内容,terraform适应于多云集成场景,有更多的支持范围,但是对于语言实现和状态存储较为弱,需要单独学习yaml语法,适应于有单独Devops运维部门。

pulumi程序员更为喜欢,可以使用各种编程语言来做资源编排,但是适应场景目前仍处于发展阶段,创新性的公司没有运维,或运维很少非常适合,在未来pulumi适应更多的支持范围,配合serverless无缝结合,相信会有更好的场景实践。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。