Infrastructure as Code (IaC) behandelt infrastructuur—servers, load balancers, databases, netwerkregels—als software. In plaats van door een cloudconsole te klikken of hardware handmatig in te stellen, schrijf je de gewenste infrastructuur in een versiegecontroleerd tekstbestand (JSON, YAML, HCL of Python), en een inrichtingstool (Terraform, CloudFormation, Pulumi, Ansible) leest dat bestand en maakt of werkt echte resources bij om eraan te voldoen.
IaC werkt door je gewenste eindtoestand in code aan te geven. Een inrichtingsengine vergelijkt die declaratie met wat er momenteel bestaat, berekent het verschil en past alleen de nodige API-aanroepen toe op je cloudprovider. Dit maakt infrastructuur herhaalbaar, controleerbaar en gemakkelijk versiebaar—hetzelfde bestand twee keer ingezet levert hetzelfde resultaat op.
Voorbeeld: Een Terraform-bestand dat een webserver aangeeft zou er zo uit kunnen zien:
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
tags = {
Name = "production-server"
}
}
terraform apply uitvoeren maakt die exacte EC2-instantie aan; het opnieuw uitvoeren verandert niets (idempotentie).
IaC vermindert handmatige fouten, verkort implementatietijd en werkt goed samen met health checks en monitoring om misconfiguraties vroeg op te sporen. Teams combineren het vaak met geautomatiseerde testen om fouten in het definitiebestand op te vangen voordat deze naar productie gaan.
WarningConfiguratiedrift is een reëel risico: als iemand handmatig een resource in de cloudconsole buiten je IaC-tool om wijzigt, valt de opgeslagen toestand van het hulpmiddel uit de pas met de werkelijkheid. Regelmatige driftdetectie en herstel (of een beleid om infrastructuur altijd via code te wijzigen) voorkomt dit.