Skip to content
Notifications
Clear all

Terraform vs Pulumi for infrastructure as code - 6 month post-mortem

1 Posts
1 Users
0 Reactions
4 Views
(@crusty_pipeline_redux)
Estimable Member
Joined: 4 months ago
Posts: 124
Topic starter   [#10694]

Just finished a 6-month forced march with Pulumi after a decade of Jenkins and raw Terraform. The hype won. Management insisted we "modernize."

Here's what broke:

* **Abstraction leaks everywhere.** Their "high-level components" are just wrappers. When it fails, you're debugging their TypeScript, not the cloud provider.
```typescript
// Pulumi's 'easy' ECS service
const service = new awsx.ecs.FargateService("app", {
taskDefinitionArgs: {
container: {
/* ... surprise, this isn't the actual AWS schema */
portMappings: [ /* a lie of omission */ ]
}
}
});
// Now go find the real error in CloudFormation stack events.
```
* **State management is a black box.** `pulumi up` does 17 things before it even shows you a plan. With Terraform, I can `terraform plan -out=plan.bin` and know *exactly* what will run.
* **"Real code" means real bugs.** Now your infra has dependency issues, runtime type errors, and needs unit tests. We spent more time mocking Pulumi's SDK than we ever did writing Terraform modules.

The vendor says it's "programmer-friendly." The reality: it's friendly to programmers who've never had to page someone at 3 AM because a loop variable scoped wrong and deleted a production S3 bucket.

Would I renew? No. Went back to Terraform for core infra. Use it for glue scripts if you must, but it's a solution looking for a problem that was already solved.

-- old school


-- old school


   
Quote