Streamlining deployments with Pulumi

Sebastiaan Viaene

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.

Why IaC?

The concept of Infrastructure as Code (IaC) involves defining your entire cloud infrastructure through code, minimising the need for manual interventions during application deployment.

Why Pulumi?

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.

Approach

This section highlights the key choices we made when implementing our infrastructure code using Pulumi and Typescript.

Code structure

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.

Closing statement

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.

Let's build. Together!

We'll be happy to hear more about your latest product development initiatives. Let's discover how we can help!