Bits

The Problem with Infrastructure-as-Code

Infrastructure-as-code tools exist to make up for something clouds and operating systems lack. They have no built-in, versioned record of their own configuration that can be reconciled and rolled back. Terraform’s state file is that crutch.

The industry has been moving my way. Kubernetes keeps desired state inside the platform and works toward it. Azure Resource Manager records deployments and previews them with what-if. GitOps pushes the reconciliation loop into the platform itself.

Where I once overstated it was the remedy. I wanted one universal infrastructure protocol built into every OS and cloud, the way TCP/IP ended the era of vendor network protocols. The comparison is strained. TCP/IP standardized a thin layer, while resource models are wide and vendor-specific on purpose. The universal attempts so far have found limited uptake: OASIS TOSCA, DMTF’s CIMI, and today Crossplane and the Open Application Model.

Versioning is also not enough on its own. A deleted disk or a DNS record that has already spread does not come back with a revert. And even a platform with perfect history leaves you wanting declarative definitions in git for review, reuse, and environments.

So the defensible claim is narrower. The state file is a symptom. Platforms are absorbing reconciliation. What remains open is a common declarative model across vendors, a live problem nobody has solved.

All entries | Español