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

Deeper Knowledge on Pulumi

Serverless Stack Toolkit (SST)

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)

Infrastructure as Code (IaC)

A technique to version-control and automate the deployment of virtualized infrastructure

Open-Source Software

Open-Source Software

Useful open source software projects

Pulumi Knowledge Graph