Pulumi
Pulumi is an open-source software tool to manage infrastructure as code through a variety of languages, including TypeScript, Python, Go, and C#.
Core Concepts in Pulumi
Stacks
A stack represents a single instance of an infrastructure, often mapped to environments like dev, test, or prod. Each stack can have its own set of configurations and parameters. Stacks allow the management of different environments using the same codebase.
Resources
Resources are the fundamental building blocks of infrastructure in Pulumi and represent things like virtual machines, databases, networks, and storage. These map to real-world cloud services from AWS, Azure, GCP, or Kubernetes clusters.
Resources include:
- Managed resources: Resources that are managed by Pulumi (like an EC2 instance or an S3 bucket).
- Component resources: Resources composed of other resources that can be reused.
Pulumi ensures that resources are created in the right order through inputs (e.g. the type of EC2 instance to create) and outputs (e.g. an EC2 instance ID).
Providers
Providers are plugins that allow Pulumi to interact with different cloud platforms.
State Management
Pulumi tracks the resources it creates using a state file to determine which resources to update, replace, or delete when infrastructure code changes. State can be stored by Pulumi's managed service, in local files, or in remote backends (S3, GCP buckets, Azure Blob Storage, etc.).
Pulumi Resources
- Pulumi homepage
- Pulumi IaC documentation
- Pulumi Examples Git Repository
- Pulumi Tutorials
- Pulumi on YouTube
Deeper Knowledge on Pulumi
Serverless Stack Toolkit (SST)
An open-source framework to build, deploy, and manage full-stack applications on AWS
Broader Topics Related to Pulumi
Infrastructure as Code (IaC)
A technique to version-control and automate the deployment of virtualized infrastructure
Open-Source Software
Useful open source software projects