9 ms·
Who's using Pulumi here and how mature is it in comparison to terraform?
by sakopov 3y ago
Who's using Pulumi here and how mature is it in comparison to terraform?
- jryan49 3y agoI think currently under the hood it's actually still terraform. I know they are working on their own native providers.
- dmattia 3y agoI'm using Pulumi in production pretty heavily for a bunch of different app types (ECS, EKS, CloudFront, CloudFlare, Vault, Datadog monitors, Lambdas of all types, EC2s with ASGs, etc.), it's reasonably mature enough. As mentioned in the other comment, the most commonly used providers for terraform are "bridged" to pulumi, so the maturity is nearly identical to Terraform. I don't really use Pulumi's pre-built modules (crossroads), but I don't find I've ever missed them. I really like both Pulumi and Terraform (which I also used in production for hundreds of modules for a few years), which it seems like isn't always a popular opinion on HN, but I have and you absolutely can run either tool in production just fine. My slight preference is for Pulumi because I get slightly more willing assistance from devs on our team to reach in and change something in infra-land if they need to while working on app code. We do still use some Pulumi and some Terraform, and they play really nicely together: https://transcend.io/blog/use-terraform-pulumi-together-migrate-infrastructure-tooling https://transcend.io/blog/use-terraform-pulumi-together-migr...
- rswail 3y agoIaaC is one of the worst acronyms ever. Infrastructure should be declared, not coded. Say what you want. The tool then builds that, or changes whats there to match. I've tried Pulumi and understanding the bit that runs before it tries to do stuff and the bit that runs after it tries to do stuff and working out where the bugs are is a PITA. It lulls you into a false sense of security that you can refer to your own variables in code, but that doesn't get carried over to when it is actually running the plan on the cloud service (ie actually creating the infrastructure) because you can only refer to the outputs of other infrastructure. CFN is too far in the other direction, primarily because it's completely invisible and hard to debug. Terraform has enough programmability (eg for_each, for-expressions etc) that you can write "here is what I want and how the things link together" and terraform will work out how to do it. The language is... sometimes painful, but it works. The provider support is unmatched and the modules are of reasonable quality.