Infrastructure as code (IaC) betekent dat je je servers, netwerken en cloudresources in tekstbestanden beschrijft in plaats van met de hand door een beheerpaneel te klikken. Je schrijft op hoe de omgeving eruit moet zien, en een tool leest dat bestand en bouwt het voor je. Pas je het bestand aan en draai je het opnieuw, dan past de opstelling zich aan.
Stel je de handleiding voor het in elkaar zetten van een bouwpakketkast voor. Iedereen die hetzelfde blad volgt, krijgt precies hetzelfde resultaat, elke keer, zonder gokwerk. IaC is dat instructieblad voor je infrastructuur: in plaats van dat één persoon onthoudt welke knoppen hij indrukte, staat de hele opstelling in een bestand dat het hele team kan lezen, controleren en hergebruiken. Dat past natuurlijk bij cloudplatformen waar alles via software ontstaat, en het sluit direct aan op een DevOps-manier van werken.
De bekendste tool is Terraform, die resources kan beheren op AWS, Azure, Google Cloud en tientallen andere providers. Omdat de beschrijving gewoon code is, zet je hem in versiebeheer, zie je precies wie wat wijzigde en draai je een foute aanpassing net zo terug als elke andere wijziging. Een typische opzet bouwt een testomgeving die productie exact nabootst, zodat een fout die je in de test vindt waarschijnlijk ook een echte fout is.
Er zit wel een addertje onder het gras. IaC beschrijft de gewenste eindtoestand, dus achteraf met de hand iets aanpassen zorgt voor drift, waarbij de echte servers niet meer met het bestand overeenkomen. De regel is dus: elke wijziging via de code, nooit via de console.
Bij TopDevs houden we de infrastructuur van klanten in code, zodat een server in minuten opnieuw is op te bouwen. Dat maakt herstel en opschalen een stuk minder spannend.