Skip to main content

One post tagged with "IaC"

Infrastructure as Code

View All Tags

Choose an IaC tool

· 4 min read
Daniel Guo
Software Engineer

This is an ADR document that I shared within the development team, with updates. Please make the final decision based on your team's circumstances.

Context and Problem Statement

We need a standardized approach to managing our infrastructure across multiple environments. Our main criteria include:

Language Preference: Ability to use familiar languages.

Multi-Cloud Support: Flexibility to deploy across different cloud providers.

Imperative vs. Declarative: Balance between imperative programming and declarative configuration.

Ecosystem Maturity: A robust set of modules and community support.

The three tools under review are:

  • AWS CDK: Provides an imperative approach in familiar programming languages for AWS deployments.
  • Terraform (and tfcdk): Terraform offers a mature, declarative model with multi-cloud support. The tfcdk option brings a CDK-like abstraction to Terraform.
  • Pulumi: Similar to CDK in that it supports imperative programming languages but offers true multi-cloud capabilities.