Technology RadarTechnology Radar

Pulumi

devops
This item was not updated in last three versions of the Radar. Should it have appeared in one of the more recent editions, there is a good chance it remains pertinent. However, if the item dates back further, its relevance may have diminished and our current evaluation could vary. Regrettably, our capacity to consistently revisit items from past Radar editions is limited.
Assess

We stuck with Terraform for most projects.

Assess

Pulumi is a tool in the infrastructure-as-code space that is quite similar to Terraform in that it also provide a declarative way to provision cloud infrastructure and services.

What makes it interesting is that all configuration is done in one of currently 4 supported general-purpose languages/runtimes:

  • JavaScript/Typescript
  • Python
  • .NET Core
  • Go

This differs from the Terraform approach which is using its own domain specific 'Terraform Configuration Language'. While Terraform kept this language intentionally small and limited in functionality in order to make it purely declarative sometimes there is the need to abstract over configuration to keep your configs "DRY". For this there are modules in Terraform but sometimes all you need is a small function to iterate an input.

This is where Pulumi shines by allowing you to use the powers of the chosen programming language to build whatever abstractions you need to get the job done.

We currently test-drive it in small projects to compare it over Terraform.