Technical Glossary

Pulumi

Definition: Infrastructure-as-code platform that lets you define and manage cloud resources with general-purpose programming languages across any cloud provider.

— Source: NERVICO, Product Development Consultancy

What is Pulumi

Pulumi is an infrastructure-as-code (IaC) platform that allows defining, deploying, and managing cloud resources using general-purpose programming languages like TypeScript, Python, Go, Java, or C#. Unlike Terraform (which uses HCL) or CloudFormation (which uses YAML/JSON), Pulumi uses the same languages and tools developers already know. It supports multiple cloud providers: AWS, Azure, Google Cloud, Kubernetes, and over 100 additional providers.

How it works

Developers write a program in their preferred language declaring the desired infrastructure resources. Pulumi compares the desired state with the current state (stored in a state backend, either Pulumi Cloud or an S3 bucket) and calculates the necessary operations: create, update, or delete resources. The Pulumi engine executes these operations against the cloud providers’ APIs. By using real languages, patterns like inheritance, composition, generics, and unit tests can be applied to infrastructure.

Why it matters

Pulumi eliminates the barrier between application code and infrastructure code. Teams do not need to learn a specific IaC language: they use the same tools, editors, and workflows. This facilitates IaC adoption among development teams and allows applying the same software engineering practices (tests, code review, CI/CD) to both the application and infrastructure.

Practical example

A team builds a multi-cloud application with the backend on AWS and machine learning services on Google Cloud. With Pulumi in TypeScript, they define both infrastructures in a single project: Lambda functions, DynamoDB tables, and SQS queues on AWS, alongside Vertex AI instances and Cloud Storage buckets on GCP. A single pulumi up command deploys all infrastructure across both providers, and unit tests verify the configuration before deployment.

Need help with product development?

We help you accelerate your development with cutting-edge technology and best practices.