Delen via


Wat is infrastructuur als code (IaC)?

Infrastructuur als code (IaC) gebruikmaakt van DevOps-methodologie en versiebeheer met een beschrijvend model voor het definiëren en implementeren van infrastructuur, zoals netwerken, virtuele machines, load balancers en verbindingstopologieën. Net zoals dezelfde broncode altijd hetzelfde binaire bestand genereert, genereert een IaC-model steeds dezelfde omgeving wanneer deze wordt geïmplementeerd.

diagram van infrastructuur als code voor het definiëren van de omgeving in een bestand met versiebeheer.

IaC is een belangrijke DevOps-praktijk en een onderdeel van continue levering. Met IaC kunnen DevOps-teams samenwerken met een geïntegreerde set procedures en hulpprogramma's om toepassingen en hun ondersteunende infrastructuur snel en betrouwbaar op schaal te leveren.

Handmatige configuratie voorkomen om consistentie af te dwingen

IaC is ontwikkeld om het probleem van omgevingsdrift in release-pijplijnen op te lossen. Zonder IaC moeten teams de instellingen voor de implementatieomgeving afzonderlijk onderhouden. Na verloop van tijd wordt elke omgeving een 'sneeuwvlok', een unieke configuratie die niet automatisch kan worden gereproduceerd. Inconsistentie tussen omgevingen kan implementatieproblemen veroorzaken. Infrastructuurbeheer en onderhoud omvatten handmatige processen die foutgevoelig en moeilijk te volgen zijn.

IaC vermijdt handmatige configuratie en dwingt consistentie af door de gewenste omgevingsstatussen weer te geven via goed gedocumenteerde code in indelingen zoals JSON. Infrastructuurimplementaties met IaC zijn herhaalbaar en voorkomen runtimeproblemen die worden veroorzaakt door configuratiedrift of ontbrekende afhankelijkheden. Release-pijplijnen voeren de omgevingsbeschrijvingen en versieconfiguratiemodellen uit om doelomgevingen te configureren. Als u wijzigingen wilt aanbrengen, bewerkt het team de bron, niet het doel.

Idempotentieis het vermogen van een bepaalde bewerking om altijd hetzelfde resultaat te produceren, een belangrijk IaC-principe. Met een implementatieopdracht wordt de doelomgeving altijd in dezelfde configuratie ingesteld, ongeacht de beginstatus van de omgeving. Idempotentie wordt bereikt door het bestaande doel automatisch te configureren of door het bestaande doel te verwijderen en een nieuwe omgeving te maken.

Handige hulpprogramma's

Stabiele testomgevingen snel op schaal leveren

IaC helpt DevOps-teams toepassingen in productieachtige omgevingen vroeg in de ontwikkelingscyclus te testen. Teams kunnen op betrouwbare wijze en op afroep meerdere testomgevingen inrichten. De cloud richt dynamisch omgevingen in en scheurt ze uit op basis van IaC-definities. De infrastructuurcode zelf kan worden gevalideerd en getest om veelvoorkomende implementatieproblemen te voorkomen.

Declaratieve definitiebestanden gebruiken

IaC moet indien mogelijk declaratieve definitiebestanden gebruiken. Een definitiebestand beschrijft de onderdelen en configuratie die een omgeving nodig heeft, maar niet noodzakelijkerwijs hoe u die configuratie kunt bereiken. Het bestand kan bijvoorbeeld een vereiste serverversie en -configuratie definiëren, maar niet het installatie- en configuratieproces van de server opgeven. Deze abstractie biedt meer flexibiliteit om geoptimaliseerde technieken te gebruiken die de infrastructuurprovider levert. Declaratieve definities helpen ook bij het verminderen van de technische schuld van het onderhouden van imperatieve code, zoals implementatiescripts, die zich na verloop van tijd kunnen opstapelen.

Er is geen standaardsyntaxis voor declaratieve IaC. De syntaxis voor het beschrijven van IaC is meestal afhankelijk van de vereisten van het doelplatform. Verschillende platforms ondersteunen bestandsindelingen zoals YAML, JSON en XML.

IaC implementeren in Azure

Azure biedt systeemeigen ondersteuning voor IaC via het Azure Resource Manager--model. Teams kan declaratieve ARM-sjablonen definiëren met behulp van JSON-syntaxis of Bicep- om de infrastructuur op te geven die nodig is voor het implementeren van oplossingen. Er zijn ook oplossingen van derden beschikbaar, zoals Terraform- via specifieke Azure-providers.