Wat is Infrastructure as code (IaC)?
Een methode om de configuratie van infrastructuur zoals servers, netwerken en opslag niet met de hand, maar in code (definitiebestanden) te beschrijven en haar met tools automatisch aan te maken en te wijzigen. Bij declaratieve tools schrijft men de gewenste configuratie, en de tool past alleen het verschil met de werkelijke toestand toe; dezelfde definitie willekeurig vaak toepassen geeft dus hetzelfde resultaat (idempotentie). Door de definities in Git of iets vergelijkbaars te beheren, worden de wijzigingsgeschiedenis, reviews en het reproduceren van identieke omgevingen eenvoudig.
Japanse benaming: IaC(Infrastructure as Code)
“Infrastructure as code (IaC)” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Basis van cloud en containers.
Vakgebied: Basis van cloud en containers
Declaratief tegenover procedureel
In een declaratieve stijl schrijft men het resultaat, zoals „twee virtuele machines”, en de tool vergelijkt dat met de huidige toestand om te bepalen wat er moet gebeuren. In een procedurele stijl schrijft men handelingen in volgorde, zoals „maak een virtuele machine”, en moet men dus met de huidige toestand rekening houden; twee keer uitvoeren kan vier machines opleveren. Declaratieve methoden, die idempotentie eenvoudig maken, worden veel gebruikt voor de configuratie van infrastructuur.
Veelgestelde vragen
Maakt IaC handmatige configuratie overbodig?
Veel van het werk kan in code worden omgezet, maar sommige handmatige stappen, zoals de eerste instelling van de authenticatie, blijven. Waar het om gaat, is handmatige wijzigingen niet zo te laten, maar ze in de code op te nemen, zodat de code en de werkelijke toestand overeen blijven komen.
Hoe hangt IaC samen met containers?
IaC wordt gebruikt om fundamenten zoals netwerken, virtuele machines en clusters te bouwen, en de applicaties die daarop draaien, worden vaak als containerimages geleverd. Manifesten van Kubernetes volgen hetzelfde idee als IaC, omdat ze een gewenste toestand declareren.