One of the things I have learned is how to do infrastructure automation with the programming languages that I already use every day. I have come to appreciate this a lot because it means that, for me, provisioning infrastructure means I have to worry about one less thing (i.e., learning a new programming language).
As a quick background, before we go into the details of provisioning your infrastructure, I want to describe Infrastructure as Code and the tool that I use.
Infrastructure as Code (IaC) is the process of managing our application’s infrastructure with code or scripts rather than physically configuring infrastructure. We can treat our IaC declarations the way we treat our source code, meaning we can version test before deploying and rollback our infrastructure.
Pulumi is an open-source IaC tool that allows you to provision your infrastructure in real programming languages. The languages Pulumi supports are JavaScript, TypeScript, Python, Go, or any .NET language, including C#, F#, and VB. Pulumi supports cloud providers like Azure, AWS, and GCP; plus, they have an out of the box support for Kubernetes environments.
Next, we’ll learn how to set up Pulumi.