Forget CDK and AWS's insane costs. Pulumi and DigitalOcean to the rescue
Cost, Clouds, and the Original Proposal
- OP’s setup: replicate an AWS CDK stack using Pulumi on DigitalOcean, claiming ~60% cost reduction with similar developer ergonomics.
- Several commenters ask for concrete cost breakdowns; the linked repo doesn’t discuss AWS costs, leading to criticism of the title.
- Some argue AWS is only “insanely expensive” if you don’t understand it or have poor system design; others point out RAM-heavy workloads remain pricey regardless.
DigitalOcean vs “Real” Clouds
- Some report long-term routing / peering problems and dropped connections on DO for North American clients, fixed only by moving to AWS.
- Others say DO pricing isn’t much better than big clouds and mention disappointing support.
- There is debate on whether DO is a “real cloud”: critics cite past serious data-leak incidents and questionable security culture; defenders note those issues are >10 years old and question whether that’s still relevant.
- DO’s managed Kubernetes is criticized for frequent upgrade pressure; AWS ECS is praised for being less hands-on but more expensive.
Pulumi vs Terraform vs CDK/CDKTF
- Pulumi:
- Praised for using general-purpose languages and being nicer than CDK or Terraform for many.
- Criticized for procedural complexity (
Apply, nested dictionaries, C# verbosity) and poor AI-based docs; SREs worry about hard-to-reason-about conditional logic written by developers.
- Terraform:
- Seen as rigid but readable and well-documented; many still prefer it despite HCL quirks (variables, conditionals, backend limits).
- Others describe it as verbose, painful, and a bad fit at scale; some are migrating off to Pulumi.
- AWS CDK / CloudFormation:
- Complaints: incomplete service coverage, CloudFormation stack indirection, refactoring risk, cross-stack dependencies, and “imperative over CFN kludges”.
- Some advocate writing CloudFormation directly and keeping stacks small; others think CDK is fine once you accept CFN and its patterns.
- CDK for Terraform (CDKTF) is pitched as a “best of both worlds”: TypeScript, TF providers, and existing TF ecosystem, but still constrained by Terraform semantics.
Declarative vs Imperative IaC
- Declarative tools (Terraform, CloudFormation) are valued for simplicity, predictability, and language agnosticism.
- Imperative/code-based IaC (Pulumi, CDK, CDKTF) appeals for loops, abstraction, and reuse of dev skills, but critics warn it leads to “spaghetti infra code” and harder debugging.
Kubernetes vs Simpler Deployment Tools
- Several participants explicitly avoid Kubernetes, preferring:
- Kamal (Rails-origin deploy tool) on DO/Hetzner.
- Docker Compose / Swarm with Portainer.
- Podman + systemd for rootless, simple container orchestration.
- Debate centers on whether “simple” stacks inevitably re-implement k8s features (zero-downtime deploys, rollbacks, health checks) and become complex anyway.