2
SECTION 2 · FIRST CASE — INFRASTRUCTURE AS CODE
METAL HAS NEVER BEEN CODE
"Infrastructure as Code" has become one of the central concepts of the DevOps industry. The original idea — managing system configuration with the same rigorous practices as software code, versioning, testing, peer review — was intellectually sound. The problem is not the intention. The problem is the word.
The word "Infrastructure" in "Infrastructure as Code" does not refer to infrastructure. It refers to the configuration of virtual resources — VMs, security groups, load balancers, S3 buckets. These resources exist as parameters in a hyperscaler's console. The real infrastructure — the physical servers on which these resources run, the racks in which those servers are installed, the cables connecting them, the electrical supply powering them, the cooling keeping them cool — is not code. It has never been code. It cannot be code.
◆ THE ANALOGY THAT EXPOSES THE ABSURDITY
AirportAsCode. MotorwayAsCode. NuclearPlantAsCode.
Nobody would dare call "code" the concrete of runways, the steel of bridges or the turbines of reactors. Nobody would claim that a YAML configuration file "is" an airport. Yet this is exactly what "Infrastructure as Code" normalises for computing systems. A Terraform file that creates a VM is not infrastructure. It is code that sends an API request to a hyperscaler to allocate resources on its physical infrastructure — which you will never see, whose state you do not know, and which you do not control.
◆ WHAT IT SHOULD HAVE BEEN CALLED
"Configuration as Code" — precise, exact, unambiguous. The declarative, versioned description of cloud resource configuration. This word would have described the same practice without claiming that code can be physical infrastructure. It was not chosen. "Infrastructure as Code" was preferred — because it gives the illusion that mastering Terraform means mastering infrastructure. And this illusion serves the interests of those who sell access to the real infrastructure.