Architecture & Concepts

The Pulumi Cloud Development Platform is a combination of tools, libraries, runtime, and service that delivers a consistent development and operational control plane for cloud-native infrastructure. Not only does Pulumi enable you to manage your infrastructure as code, it also lets you define and manage your infrastructure using real programming languages (and all of their supporting tools) instead of YAML.

At the center of Pulumi is an open-source cloud object model, coupled with an evaluation runtime that knows how to take programs written in any language, understand the cloud resources necessary to execute them, and then plan and manage those resources in a robust way. This cloud runtime and object model is inherently language- and cloud-neutral, enabling Pulumi to support many languages and clouds rapidly.

Each Pulumi project contains a program—executable code in a familiar language such as JavaScript, TypeScript, Python, or Go. You will manage this program as you would any other source code. For example, by using Git.

Each project also has associated stacks. When you select a stack and run the program, the Pulumi engine creates a model of the desired state of that stack. The objects and dependencies created by your program form the model. The model describes the resources needed in the stack and their settings. For example, new aws.ec2.Instance(...). Pulumi updates the stack to match the desired state.

The following topics describe the core concepts behind Pulumi in more detail:

After learning these core concepts, you’ll want to learn more about the CLI.