Welcome, Pulumi! A cloud development platform from the future

Have you ever thought of having a multi-language and multi-cloud development platform? Pulumi is the multi-machine that will make the dream come true!

Pulumi is an open source cloud development platform, but not just any cloud development platform. It is no news that cloud is used to pervade architecture and design, however, there are a number of obstacles that developers, as well as DevOps engineers, have to overcome.

Pulumi is here to make these obstacles almost obsolete.

It is a multi-machine

If you want a simple description of Pulumi, the best I can offer you is that we are dealing with a multi-language and multi-cloud development platform that aims to change the way you think about infrastructure.

During the initial stages of its development, the team behind Pulumi interviewed a few dozens of their company’s customers and realized that developers and DevOps engineers alike were disillusioned about the fact that extreme specialization led to engineers not speaking the same language, and even within the same team.

Pulumi aims to deal with just that.

With a cloud object model at its core, Pulumi helps you create all aspects of cloud programs using real languages and real code, from infrastructure on up to the application itself. And imagine the things you could do using real languages:

Familiarity – No need to learn new bespoke DSLs or YAML-based templating languages

Abstraction – Build bigger things out of smaller things

Sharing and reuse – Leverage existing language package managers to share and reuse these abstractions, either with the community, within your team, or both

Expressiveness – Use the full power of your language, including async, loops, and conditionals

Toolability – By using real languages, we instantly gain access to IDEs, refactoring, testing, static analysis and linters, and so much more

Productivity – Add all of the above together, and you get things done faster, with more joy

If you are still not convinced, let me go through the basic features of Pulumi real quick:

Open source – No need for further explanation on this one.

Multi-language – Pulumi runtime was architected to support many languages, and to do so in an idiomatic way for all aspects of a target language (style, syntax, packages, etc) and since it is open source, anyone can contribute their own.

Multi-cloud – It can support any cloud provider and this delivers a unified programming model, tools, and control plane for managing cloud software anywhere.

Reusable components – Thanks to having a real language, you can build higher-level abstractions. Instead of one overloaded engineer managing the team’s CloudFormation stack, the entire team is empowered to move faster.

Serverless functions as Lambdas – In Pulumi, you can now write your serverless functions using lambdas in your favorite language, without a single line of YAML.

Resources with APIs – Because you can capture references to other cloud resources, you can create APIs on top of them to make them easier to use in your runtime code.

Stacks –A core concept in Pulumi is the idea of a “stack”. A stack is an isolated instance of your cloud program whose resources and configuration are distinct from all other stacks. You might have a separate stack for production, staging, and testing, or perhaps for each single-tenanted environment.