2. Pulumi Basics
Pulumi is an open-source Infrastructure as Code platform that lets you define, deploy, and manage cloud resources using general-purpose programming languages instead of proprietary configuration formats.
Language Support
Pulumi supports a wide range of languages out of the box:
| Language | Runtime |
|---|---|
| Python | 3.8+ |
| TypeScript / JavaScript | Node.js |
| Go | 1.21+ |
| C# / F# / VB | .NET 6+ |
| Java | JDK 11+ |
| YAML | (declarative, no runtime required) |
In this workshop we use Python — it is widely known, has excellent Pulumi SDK coverage, and pairs naturally with the Azure Native provider.
Core Concepts
| Concept | Description |
|---|---|
| Project | A directory with a Pulumi.yaml that defines the program |
| Stack | An isolated deployment target (e.g. dev, staging, prod) |
| Resource | Any cloud object managed by Pulumi (VM, VNet, AKS cluster, …) |
| Provider | Plugin that translates Pulumi calls into cloud-API calls |
| State | Snapshot of deployed resources; stored in Pulumi Cloud or a backend of your choice |