Infrastructure as Code: programmeerbare infrastructuur

23 november 2022

Infrastructure as Code (IaC) doet precies wat de naam zegt: het linkt infrastructuur aan code. IaC biedt je de mogelijkheid om je infrastructuur als code te behandelen en daarbij dezelfde tools en methodes te hanteren als bij elk ander softwareproject.   Infrastructure as Code (IaC) is een moderne manier van het beheren van infrastructuur. In […]

Infrastructure as Code (IaC) doet precies wat de naam zegt: het linkt infrastructuur aan code. IaC biedt je de mogelijkheid om je infrastructuur als code te behandelen en daarbij dezelfde tools en methodes te hanteren als bij elk ander softwareproject.

 

Infrastructure as Code (IaC) is een moderne manier van het beheren van infrastructuur. In plaats van het handmatig opzetten en configureren van infrastructuur via een grafische interface, is alle infrastructuur beschreven in een configuratiebestand, dat vervolgens de infrastructuur automatisch uitrolt. Daarbij kan je gebruikmaken van hetzelfde versiebeheer dat DevOps-teams gebruiken voor het beheer van hun broncode. Meer algemeen laat het gebruik van IaC toe om allerlei best practices uit de wereld van de softwareontwikkeling op je infrastructuur toe te passen, van versiecontrole tot het hergebruik van codepatronen.

 

Infrastructuur deployen via code

Zoals je de code van je software bijstuurt, zo kan je ook aan je infrastructuur alle nodige aanpassingen aanbrengen, zonder dat je meteen aan de fysieke hardwareconfiguratie hoeft te sleutelen of speciale configuratietools hoeft aan te schaffen. Door IaC te gebruiken zoals Azure Bicep, kun je je infrastructuur deployen via code. Zo kun je snel en eenvoudig Azure resources aanmaken. IaC is code. Daardoor past het in het ontwikkelingsproces van DevOps. Je kunt snel veranderingen aanbrengen aan de infrastructuur, terwijl je ook een versiebestand van de veranderingen bijhoudt.

Ben je al overtuigd van het IaC-concept? Dan heb je nog de keuze uit twee basisopties: de zogenaamde declaratieve en imperatieve IaC. Vaak valt de keuze op een declaratieve beschrijving van de infrastructuur, omdat je daarmee het gewenste beeld kan beschrijven dat je niet gelijk kunt stellen met de imperative benadering. Het volgende voorbeeld maakt het al snel duidelijk. Stel dat je een witte tafel wil met vier poten. In declaratieve IaC gaat dat als volgt: er moet een tafel zijn, de tafel is wit en de tafel heeft vier poten.

Imperatieve IaC pakt het zo aan: als er geen tafel is, maak dan een tafel. Als de tafel niet wit is, maak de tafel wit. Als de tafel meer dan vier poten heeft, verwijder dan een poot. Als de tafel minder dan vier poten heeft, voeg dan een poot toe. Het verschil is hier dat je bij declaratieve IaC de gewenste tafel (desire state) al hebt beschreven, terwijl er bij imperatieve IaC altijd een conditie geldt, waarbij niet zeker is of die al dan niet juist is. Dat is meteen ook een nadeel van de imperatieve aanpak, waardoor de keuze vaak valt op een declaratieve taal, zoals Azure Bicep.

 

De voordelen van IaC

Welke optie je ook kiest, IaC biedt heel wat voordelen. Of het nu gaat om het uitrollen van een server of het schrijven van acceptatietesten, de automatisering van je infrastructuur met IaC zorgt ervoor dat je tijd wint, kosten bespaart en risico’s vermindert. De automatisering garandeert bovendien ook altijd dezelfde, consistente uitkomst. IaC beschrijft de gewenste code in een bestand. Via een IaC-tool kun je dat bestand hergebruiken, wat opnieuw veel tijd bespaart en de consistente kwaliteit van het resultaat waarborgt. IaC maakt het mogelijk om declaratief code te schrijven, wat betekent dat je de gewenste staat van de infrastructuur kunt vastleggen, in plaats van te focussen op hoe je die staat bereikt. IaC maakt het daarbij mogelijk om jouw infrastructuur in een leesbaar formaat vast te leggen, een zogenaamd human-readable format, waardoor ontwikkelaars de staat van de infrastructuur makkelijk uit de code kunnen aflezen. Een eerste positief gevolg is dat de IT-afdeling dankzij de automatische provisioning van IT-infrastructuur sneller nieuwe of bijkomende IT-diensten kan leveren aan de business, waardoor ook je time-to-market aanzienlijk korter wordt. Een tweede
positief effect is dat je IT-afdeling tijd vrij krijgt voor andere taken met meer toegevoegde waarde.

 

Beschikbaarheid, transparantie, consistentie

Diezelfde automatisering neemt ook veel risico’s weg die gepaard kunnen gaan met menselijke fouten bij het handmatig configureren van servers of andere infrastructuursystemen. Het resultaat: minder systeemuitval en een hogere beschikbaarheid en betrouwbaarheid van de kritieke infrastructuur in je datacenter. Infrastructure as Code biedt nog een ander interessant voordeel: zichtbaarheid. Typische softwaremogelijkheden zoals het al eerder aangehaalde versiebeheer zorgen ervoor dat veranderingen in de code duidelijk zichtbaar en traceerbaar zijn. Daarbij is het een goede zaak dat die code ook voor niet-gespecialiseerde IT-profielen vrij goed lees- en begrijpbaar is. De hoge mate van transparantie die IaC biedt, in combinatie met de herhaalbaarheid
van code, helpt ten slotte ook voorkomen dat beheerders handmatig wijzigingen aanbrengen aan je systemen. Zo kan je steeds een consistente configuratie en een correct gebruik van die systemen garanderen en vermijd je dat ze (teveel) afwijken van het vooropgestelde design.

 

Infrastructure as Code en Azure Cloud: de gouden combinatie

IaC maakt werken in de cloud nog makkelijker. Microsoft schuift hierbij Azure Resource Manager (ARM) naar voren, waarmee je herbruikbare templates aanmaakt. Met Azure Bicep beschik je over een tool die het beheer van cloudinfrastructuur laagdrempeliger maakt. Eenvoudig gesteld: met een Bicep-bestand definieer je de infrastructuur die je in Azure wil opzetten. Met dat Bicep-bestand kun je daarna door de hele levenscyclus de status van de infrastructuur bewijzen. Het garandeert dat je je resources op een consistente manier implementeert.

Het eerste voordeel van Bicep is dat de taal heel begrijpbaar is. Dat zorgt ervoor dat bedrijven makkelijker de adoptie van Azure Cloud kunnen versnellen, zonder dat ze daarbij de druk op het IT-team nodeloos verhogen. Door daarbij het vierogenprincipe toe te passen, waarbij er altijd een tweede persoon mee toelating geeft om een extra dienst op te starten, vermijd je tegelijkertijd dat er een wildgroei aan cloud resources ontstaat. Bij de combinatie van Azure en IaC is herhaalbaarheid een groot voordeel. Naarmate je Azure-omgeving steeds verder groeit, wordt het een uitdaging om het overzicht te bewaren. Via het gebruik van Bicep laat IaC het toe om je implementatie consistent te houden, bijvoorbeeld in combinatie met de Azure policies die je hebt opgesteld. IaC helpt je zo de betrouwbaarheid, veiligheid en beschikbaarheid van je infrastructuur te garanderen.

 

Veelgestelde vragen over Infrastructure as Code:


1. Wat is Infrastructure as Code?

Infrastructure as Code is de methodologie waarbij je je infrastructuur beheert en voor de provisioning ervan voorziet via code. Jouw infrastructuur staat gedefinieerd in een bestand, waarbij je je infrastructuur op een snelle en efficiënte wijze kunt aanpassen. IaC verplicht je na te denken over patronen, broncontrol en automatisering, wat bijdraagt aan een voorspelbaar en herhaalbaar eindresultaat.

2. Wat is het belangrijkste voordeel van Infrastructure as Code?

Het belangrijkste voordeel van IaC is haar voorspelbaarheid en herhaalbaarheid. Omdat de infrastructuur in code staat beschreven, ga je configuration drift tegen en is de provisioning van je infrastructuur minder foutgevoelig.

 

3. Welk voordeel haal je uit de combinatie van Infrastructure as Code en Azure?
Bij de combinatie van Azure en IaC is herhaalbaarheid een groot voordeel. IaC laat toe je implementatie consistent te houden. IaC helpt je zo de betrouwbaarheid, veiligheid en beschikbaarheid van je infrastructuur te garanderen.

Kom in contact met ons

Vul het formulier in met uw vraag en laat ons contact met u opnemen. Of bel ons op 088-INFIELD om nog sneller te zijn.