HashiCorp changed Terraform's license in 2023 and everyone panicked. Companies started looking at alternatives, which is how I ended up testing Pulumi and CDK in production. Spoiler alert: they all have their own special ways of ruining your day.
The HashiCorp Betrayal (And Why OpenTofu Exists)
HashiCorp's license change was a straight-up money grab. They built their empire on open source, then decided to cash in once everyone was locked into their ecosystem. The OpenTofu fork emerged because nobody trusts HashiCorp anymore - and rightfully so.
Why Everyone's Switching (Or Trying To)
Terraform still has the biggest ecosystem with 3,000+ providers, but half of them are abandoned or barely maintained. Sure, it works, but HCL is painful for anything complex. Try writing a dynamic loop and you'll understand why developers hate it. Community modules help, but state management will still ruin your weekend.
Pulumi promises "it's just code" but that's marketing bullshit. Yeah, you can use TypeScript, but good luck debugging a resource dependency graph during emergency calls when the error messages make no sense. The Python async/await patterns don't work like you'd expect with infrastructure resources either. Stack management is better than Terraform's state files, but the Pulumi Service goes down and you're locked out.
CDK is great if you love being locked into AWS forever. It's faster to develop than Terraform's HCL hell, but deployments are slow as fuck because CloudFormation's API rate limits haven't improved since 2017. Bootstrap process fails randomly on new accounts with "Access Denied" errors even with admin permissions - you'll waste 2 hours troubleshooting IAM policies that look correct but aren't.
The Real Decision Factors (Not Consultant Bullshit)
Forget the enterprise readiness matrix garbage. Here's what actually matters:
- How often will it break your production deploys? (All three will, just differently)
- How much do you hate writing HCL? (If a lot, avoid Terraform)
- Are you AWS-only or multi-cloud? (CDK locks you in, Terraform is best for multi-cloud)
- Do your developers already know Python/TypeScript? (Pulumi advantage)
- How much middle-of-the-night debugging can your team handle? (All three require this, plan accordingly)
The table below strips away the marketing bullshit and shows you what each tool actually does when everything catches fire.