-

Infrastructure as code: configuraties van infrastructuur slim en automatisch vastleggen

De infrastructuur waarop bedrijven vertrouwen is steeds dynamischer. Zo is de levensduur van de gemiddelde virtuele machine (VM) steeds korter en schalen we instances gericht mee met de vraag vanuit gebruikers.

Traditionele vormen van infrastructuurbeheer zijn niet ontwikkeld voor het beheren van dergelijke dynamische infrastructuur en kennen op dit vlak dan ook hun beperkingen. Infrastructure as code, waarbij je configuraties voor infrastructuur in code vastlegt, biedt uitkomst. In dit artikel lees je meer over infrastructure as code, de voordelen en populaire tools.

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 aan het uitrollen van de gewenste infrastructuur en het leveren 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 beschrijft het onbedoeld van elkaar afwijken van infrastructuur (van bijvoorbeeld servers tijdens migratie of van je acceptatie- en productieomgeving) doordat er onbewust afwijkingen kruipen in configuraties. Het aanpakken van configuratiedrift verkleint het risico op onverwachte problemen en vergroot de voorspelbaarheid 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 leesbaar 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 cloud omgevingen en datacenters.

Een andere populaire tool is Pulumi, een opensource-infrastructuur als 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, mede-oprichter 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.

Kijk voor meer informatie op onze website.

 

Deel dit bericht

Plaats een reactie

Uw e-mailadres wordt niet op de site getoond