Pulumi 和 Terraform 都是 Infra-as-Code 领域比较流行的工具,Terraform 出现时间比较早,2014,而 Pulumi 是 2018 年才推出。
这篇总结,我不讲两者的共同之处,只说差异。
作为一个有程序员背景的云计算从业者,我个人更偏爱 Pulumi。Terraform 我也用过,但首先你得学习它自创的 HCL 模板语言,其次如果你的资源定义需要稍微复杂一些的逻辑,比如循环并且有条件的创建一些资源,或者当牵扯一些复杂的条件判断时,模板语言的短板就凸显出来了。
另外一个比较敏感的问题是安全。Pulumi 内置了对敏感信息配置和加密存储包含敏感信息的资源,这些在原生的 Terraform 里是不支持的。
Pulumi 提供了 Automation API 更加方便了你与其他第三方工具集成,比如你自己写的命令行工具或者其他 CI/CD 工具。
如果你是 Terraform 的老手,那么你肯定遇到过有些云服务的功能,在 Terraform 里并不支持,Terraform 的实现是基于这些云平台的 Golang SDK,甚至有些功能在 SDK 里就没有,这个问题在 Terraform 里无解,除非你自己实现或者寄希望于 Terraform 社区慢慢解决。而 Pulumi