First Pulumi on AWS

Python-based IaC.

Overview

The first Pulumi on AWS deploy moves IaC from declarative HCL to general-purpose programming languages. Pulumi supports Python, TypeScript, Go, .NET, and Java; the IaC code becomes real code that uses functions, classes, and modules rather than Terraform’s DSL. The right answer for tool choice depends on team preference: Pulumi suits teams whose engineers already write the language fluently and want real abstractions; Terraform suits teams that prefer the explicit boundary of a DSL.

The approach

The practical approach is per-stack environments (dev, staging, prod as separate stacks), language-native abstractions for repeated patterns (functions and classes rather than copy-paste), deliberate state-backend choice (Pulumi Cloud for managed, self-hosted for stricter requirements), Pulumi preview integrated into PR CI, and per-stack configuration documented in the infrastructure repo so the model is reviewable.

Why this compounds

Pulumi discipline compounds across stacks. Each new stack inherits the patterns established in the first; the team builds language-native IaC abstractions that survive across infrastructure changes; the unit-testable code path produces IaC quality the DSL-based alternatives cannot match.

The first Pulumi on AWS deploy is an infrastructure investment that pays off across years. Nova AI Ops integrates with deployment telemetry, surfaces IaC patterns, and supports the team’s infrastructure discipline.