Sebastiaan Viaene
Engineering manager
July 24, 2024
For years now at Panenco we've been implementing Infrastructure as Code (IaC) workflows when building cloud applications. Starting with simple YAML configurations within our CI tools, we quickly matured to using Terraform and Pulumi with great success in terms of deployment speed and reliability.
The concept of Infrastructure as Code (IaC) involves defining your entire cloud infrastructure through code, minimising the need for manual interventions during application deployment.
Terraform is by far the most popular IaC tool on the market. However, a limitation that we kept stumbling upon when using Terraform was using HCL, its proprietary programming language which has quite a learning curve.
Pulumi allows us to write the code in a number of familiar languages that we regularly use, like Typescript, Python and .NET. It also includes support for all the resources that we need from known cloud providers, including GCP, AWS and Azure.
This section highlights the key choices we made when implementing our infrastructure code using Pulumi and Typescript.
A very simple application would just have a single index.ts file in which every part of the application is declared, but this quickly becomes very messy. Instead, we went for a component based approach.
We really enjoyed using Pulumi for our deployments. It enables us to create structured and efficient deployment pipelines while leveraging the latest technologies and our preferred programming languages.