Skip to main content

Infrastructure as Code

Infrastructure as code means describing your infrastructure in text, not clicking through a dashboard — so it can be version-controlled, reviewed, and reproduced exactly, rather than held only in someone's memory or a provider's UI. It turns provisioning into something anyone can read, propose a change to, and re-run, instead of a one-off action only whoever clicked the buttons can explain.

  • Easier setup — a new environment is apply, not a checklist of manual clicks to remember and repeat correctly.
  • Reproducibility — the same config produces the same infrastructure every time, so nothing depends on one person's memory of how it was configured.
  • Auditability — every change to the infrastructure lives in version control, with a diff and a history, instead of disappearing into a dashboard's click history.

All three benefit from AI just as much as from a human: it's plain text, so AI can write it, adjust it, and read the diff to audit a change, the same way a person would.

Providers

Terraform popularised this approach and is still the most widely used implementation, but it's not the only one — OpenTofu (a fork of Terraform, governed by the Linux Foundation rather than one vendor) and Pulumi (general-purpose languages instead of a dedicated config format) are common alternatives, alongside single-provider tools like AWS CloudFormation and OpenStack's own Heat, native to the specific cloud this project actually runs on. What they share matters more than what differs: describe the desired state in text, and let the tool diff that against reality and reconcile the two.

This stack runs on OpenTofu — .tofu config, the same workflow (write config → plan, preview changes → apply, execute), a state file tracked to diff against on the next run — just under community governance instead of a single company's. See Services → Infrastructure as Code for the fuller comparison between the options and why.

The concrete result of this reasoning — what's actually provisioned, and how to run it — lives in Walkthrough → Infrastructure rather than here.