Wat is infrastructure as code?
Infrastructure as code is een aanpak waarbij je alle configuraties voor infrastructuur uitschrijft in code. Je beheert en faciliteert infrastructuur dan ook met behulp van code, die je vastlegt in YAML-files. Dit leidt tot een consistente en bovenal betrouwbare werkwijze voor het opbouwen en uitrollen van infrastructuur. De technologie is onder meer uitermate geschikt voor dynamische omgevingen als Kubernetes en de Public Cloud. Ook is infrastructure as code een sterke aanvulling op DevOps-werkwijzen. Denk daarbij aan CI/CD-pipelines en het uitvoeren van geautomatiseerde testen, maar ook aan versiebeheer.
Wat zijn de voordelen van infrastructure as code?
Infrastructure as code biedt diverse voordelen ten opzichte van traditionele vormen van infrastructuurbeheer. Denk daarbij aan:
Betrouwbaarheid vergroten
Misconfiguraties of het deployen van services in de verkeerde volgorde levert risico’s op, onder meer voor digitale veiligheid. De kans op fouten neemt toe naarmate infrastructuur groeit in omvang of complexiteit. Infrastructure as code zorgt voor consistentie in de configuratie en het deployen van infrastructuur, en dringt zo de kans op fouten terug. De technologie automatiseert de infrastructuur en zorgt op basis van code voor de juiste configuratie en uitrol. Zo vergroot het de betrouwbaarheid van je infrastructuur.
Tijdwinst realiseren
Het beheren van infrastructuur is tijdrovend. Denk daarbij het uitrollen van de gewenste infrastructuur en provisioneren van services, maar zeker ook aan het monitoren hiervan en aanpassen van configuraties. Met behulp van infrastructure as code automatiseer je dit proces in belangrijke mate en hoef je niet langer terug te vallen op handmatige processen. Dit kan een aanzienlijke tijdwinst opleveren.
Infrastructuur standaardiseren
Met behulp van infrastructure as code leg je de configuratie van infrastructuur vast in code. Doordat je deze code kunt hergebruiken, betekent dit in de praktijk ook dat je infrastructuur standaardiseert. Prettig, want zo weet je zeker dat infrastructuurcomponenten optimaal zijn geconfigureerd voor schaalbaarheid en herhaalbaarheid. Het is ook mogelijk om best practices en alle eerdere ervaring in op te nemen.
Een einde aan configuratiedrift
Ook voorkom je met infrastructure as code zogenoemde ‘configuratiedrift’. Deze term omschrijft het onbedoeld van elkaar afwijken van infrastructuur (van bijvoorbeeld servers tijdens migraties of van je acceptatie- en productie-omgeving) doordat er onbewust afwijkingen kruipen in configuraties. Het aanpakken van configuratiedrift verkleint het risico op onverwachte problemen en vergroot de voorspelbaar van je infrastructuur.
Inzicht in veranderingen door de tijd heen
Prettig zijn tevens de mogelijkheden tot versiebeheer, waarmee je de versiegeschiedenis van infrastructuur kunt bekijken. Zo kun je altijd een blik terug in de tijd werpen en eerdere configuraties terughalen. Hierdoor kun je nauwkeurig achterhalen hoe configuraties door de tijd heen zijn veranderd.
Populaire tools voor infrastructure as code: Terraform en Pulumi
Wil je aan de slag met infrastructure as code? Er zijn meerdere tools beschikbaar waarvan je gebruik kunt maken. Een populaire tool voor infrastructure as code is Terraform, een opensource tool ontwikkeld door HashiCorp. Ontwikkelaars kunnen met behulp van Terraform, dat ook wel een ‘declarative tool’ wordt genoemd, infrastructuur in een eenvoudige syntax omschrijven in HashiCorp Configuration Language (HCL) en JSON. Een belangrijk voordeel van HCL is dat deze programmeertaal eenvoudig leesbaar is voor mensen en daarnaast relatief eenvoudig leerbaar is voor wie niet bekend is met andere programmeertalen.
Terraform werkt onder meer met modules, waarmee je resources kunt groeperen. Je kunt deze resourcegroep vervolgens beheren als een enkelvoudige resource, wat het beheer aanzienlijk vereenvoudigt en versnelt. Modules zijn daarnaast herbruikbaar, kunnen onderling communiceren en meermaals worden opgeroepen. Ook kun je infrastructuur provisioneren verspreid over meerdere cloudomgevingen en datacenters.
Een andere populaire tool is Pulumi, een opensource infrastructure as code tool. In tegenstelling tot Terraform ondersteunt Pulumi een flink aantal populaire programmeertalen voor het provisioneren en beheren van infrastructuur. Denk hierbij aan Python, TypeScript, JavaScript, Go, C#, F#, Java en YAML. Ontwikkelaars kunnen dan ook werken in de programmeertaal die hun voorkeur heeft en waarmee zij vertrouwd zijn, wat het gebruik ervan vereenvoudigt.
Video: een introductie in de wereld van infrastructure as code
Armon Dadgar, medeoprichter en CTO van HashiCorp, gaat in de onderstaande video in op infrastructure as code. Dadgar zet uiteen wat infrastructure as code is, legt uit waarom deze aanpak belangrijk is en door welke veranderingen steeds meer bedrijven overstappen op infrastructure as code.
Infrastructure as Code bij True
Ook engineers van True maken gebruik van Infrastructure as Code. Onder meer om je te helpen bij security binnen infrastructuur en om configuratiedrift te voorkomen. We maken er veel gebruik van binnen onze dienst Managed Azure, waardoor jouw infrastructuur optimaal presteert, op maat voor jouw webapplicatie, webshop of website.
Meer informatie over Managed Azure voor jouw applicatie of webshop?
Profiteer direct van alle mogelijkheden van Azure. Vanuit onze jarenlange ervaring ondersteunen we je tijdens het migratieproces, en ontwerpen en implementeren de meest geschikte omgeving en services voor jouw landschap.