Author : MD TAREQ HASSAN | Updated : 2020/06/14
What Is Pulumi?
- Pulumi is a modern, cloud native “Infrastructure-as-Code (IaC) framework that you can use to deploy infrastructure in the cloud
- Pulumi allows to build, deploy, and manage modern cloud applications and infrastructure using familiar languages, tools, and engineering practices
- Pulumi uses general-purpose programming language (i.e. C#) and their native ecosystem to interact with cloud resources through the Pulumi SDK.
- A downloadable CLI, runtime, libraries, and a hosted service work together to deliver a robust way of provisioning, updating, and managing cloud infrastructure
- A modern and elegant “Infrastructure as Code (IaC)” DevOps solution
- An open source infrastructure as code tool for creating, deploying, and managing cloud infrastructure
- Pulumi’s Infrastructure as Code SDK is the easiest way to create and deploy cloud software on any cloud:
- Containers
- Serverless functions
- Hosted services
- Infrastructure
- etc.
- Pulumi automatically provisions and manages your Cloud Platform:
- Azure
- AWS
- Full list of providers can be found here
- Pulumi allows to write code in your favorite language (i.e. C#) using an infrastructure-as-code approach
Infrastructure as code: You declare desired infrastructure, and an engine provisions it for you, so that it’s automated, easy to replicate, and robust enough for demanding production requirements.
Why To Use Pulumi
Pulumi has several features that differentiate it from things like Terraform:
- Support for real programming languages (i.e. C#). The ability to use proper languages, with traditional loops and conditionals may make this an appealing tool
- State encryption
- Terraform storing secrets in plain text in the state file as been a big concern for a lot of people
- Pulumi has resolved this by allowing you to encrypt individual secrets in the state file
- Use of an external provider for storing the encryption key, including Azure Key Vault, AWS KMS, GCP KMS and Hashicorp Vault
- Pulumi native provider (i.e. Kubernetes provider) is much better than the Terraform one, as it claims to cover 100% of the Kubernetes API. If you are working with Kubernetes, then Pulumi has a lot of really nice features.
- Pulumi have also recently released a slew of new Kubernetes components such as a tool to convert YAML to Pulumi code, a Kubernetes operator for deploying Pulumi code and the ability to define custom resource definitions in Pulumi
- Because Pulumi is a state-based tool, it can provide features like plan and destroy to preview changes before deploying them, and removing everything when you are done with it
- Pulumi also offers a choice of where to store your state, either with their cloud service (free for 1 user, otherwise paid), or your own location using Azure Blob Storage, AWS S3 or GCP Cloud Storage