Founded in 2017, Pulumi offers an open source Infrastructure as Code (IaC) solution for setting up, deploying and managing infrastructure resources in the cloud. Unlike HashiCorp Terraform, in particular, Pulumi does not require learning a specific language but relies on common development languages and tools. Pulumi relies on this specificity to convert IT organisations to IaC and to become their preferred cloud engineering tool for the production of cloud-native, containerised or serverless applications.
What is Infrastructure as Code?
In increasingly large, heterogeneous and changing environments, with hundreds of servers, it is becoming almost impossible for system administrators to manage infrastructure resources by hand. In virtualised environments, such as the cloud, these resources can be set, activated or deactivated by means of digital instructions, which can be programmed.
This is what IaC proposes: to write these instruction sets in the form of programs that can be executed automatically depending on the circumstances. The resources are prepared and then activated, modified or deactivated according to the demand, without requiring human intervention. This approach dramatically accelerates deployments, drastically reduces the risk of errors and helps establish and enforce policies for standardisation and resource optimisation, which are essential for scaling the cloud.
Why is Infrastructure as Code so important to DevOps?
DevOps aims to accelerate the production and deployment of applications by bringing development and infrastructure teams together in a continuous process. For this approach to deliver the desired results, however, anything that could cause bottlenecks must be avoided. Without IaC, Ops can quickly become overwhelmed by the pace of Devs. To avoid delays, they need tools that allow them to configure the necessary resources and automate their activation as they go along. This is what Pulumi calls cloud engineering: using IaC and drawing on DevOps best practices to industrialise Ops to fully exploit the possibilities of the cloud and DevOps.
How does Pulumi work?
Pulumi relies on a technology called CrossCode that translates instructions expressed in a common programming language (Python, Go, .Net, Java, YAML, Node.js…), or in a proprietary IaS language (Terraform HCL, AWS CloudFormation…), into parameters specific to the target platform: Azure, AWS, GCP, Kubernetes, Docker, Databricks… Pulumi has more than sixty conversion APIs.
Each service is associated with a metadata file that describes its state when the script was last executed. The update is done in a differential way: an engine examines if the resources exist and if they need to be updated, recreated or deleted. Storage of these state files and tools to help manage them are among Pulumi’s paid services, while the IaS solution itself is free.
The platform also offers Policy as Code capabilities for deploying rules and controls, managing secrets, and administration.
What are the benefits of Pulumi?
Pulumi’s ability to model infrastructures using common development languages and tools provides many benefits:
- Enriched syntax: loops, conditions, functions… Usual programming patterns multiply the possibilities.
- Natural integration: compatible with current tools, Pulumi blends into the DevOps process and is naturally integrated into the CI/CD pipeline.
- Increased productivity: using known and mastered tools allows considerable time savings. In particular, there is no need to learn a specific language.
- Easier capitalization: thanks to Pulumi Package, it is possible to encapsulate the resource to share and reuse it.
- Enhanced collaboration: It is easier to bring together development, infrastructure and security teams around code that everyone can understand and analyse.
- Simplified management: All resources are described in the same way and managed from a single, centralised platform.
All these advantages have already convinced many companies and Pulumi could well make cloud engineering the new paradigm of infrastructure management.
How can I learn more?
This article is a part of a greater series centred around the technologies and themes found within the first edition of the Devoteam TechRadar. To read further into these topics, please download the TechRadar.