I checked the Platform Engineering YouTube channel...
# terraform
a
I checked the Platform Engineering YouTube channel and found this great video discussing the

Terraform vs Pulumi vs SDK

and really liked how @Andrew Fong listed the requirements their team was looking for prior to choosing the IaC tool. I am personally interested in Terraform and Pulumi and wanted to hear your opinion on their pros and cons. My +/- board looks something like this: Terraform • Highly expandable • Infrastructure deployment quick & reliable • Dry runs • Ability to generate dependency graphs • Storage and import function for existing architectures • Support of various cloud solutions • Collaboration and security features available only in expensive enterprise plans • Demanding entry • No rollback capability built-in Pulumi (some of them from Andrew’s slides): • Multiple languages • Testable • Oriented towards “coders” • Typed • Can be self-hosted • Great CLI • IDE support • The risk of duplication • The documentation isn't as abundant • Pricy Please share yours. Thanks in advance!
m
Hi Alex, I have experience in both. I am very much for Pulumi as I have quite a lot of experience in coding. In my opinion: Choose Terraform if your team doesn't have too much experience in general-purpose programming languages (check https://www.pulumi.com/docs/intro/languages/) and your code will not be very dynamic. Pulumi is much, much better for those who know how to write code, tests, use their IDE, etc. About the cons of Pulumi you have mentioned: • We are using the open-source version of Pulumi (Apache License 2.0) with S3 as a state backend and KMS to encrypt secrets. So it can be for free too. • The documentation/examples are worse than Terraform's but they are usually good enough. If not, you can often use the Terraform providers' documentation as Pulumi is using them.
a
Yeah, we are new in this, but already growing rapidly, that's why the decision is not as easy, but you have a good point about choosing Terraform if not using too many languages atm (as we're not). Thanks for sharing your insights!
m
It is not about the number of languages but the language type. HCL (used in Terraform) is not a real programming language. When using Pulumi you can choose one - for example TypeScript, Go, or whatever your team feels comfortable in.
a
Thanks for clarifying, I understood it quite different before. We're currently using Python only. So your point is that Pulumi would be more optimal to use in our case, right?
m
Right, if Python developers will be writing IaC code. If you want people without programming background to do it, then Terraform is a good option. Python is one of the languages supported by Pulumi.
And (in my opinion) developers are usually doing it faster, in better quality, and understand the requirements better. People with operations background are very good "domain experts" and can provide requirements for example related to network or security but are worse at writing code.
a
Totally agree. We have a strong dev team, so we will analyze Pulumi as a priority. Thanks for your input.
👍 1