Infrastructure as code

Soms lijkt het wel alsof er elke dag nieuwe termen worden bedacht binnen de IT. In de meeste gevallen gaat het daarbij om oude concepten die met een nieuwe term nieuw leven wordt ingeblazen. Dat zou je in eerste instantie misschien ook verwachten met infrastructure as code, maar deze term brengt zowaar iets nieuws en is zeer interessant.

Programmeerbare infrastructuur

Infrastructure as code staat ook wel bekend onder de naam programmable infrastructure en die iets minder mooie term geeft eigenlijk precies aan wat het is. Het is programmeerbare infrastructuur die geheel door de programmeur kan worden geconfigureerd. In het verleden was het met talen als Powershell natuurlijk al mogelijk om met behulp van scripts computers te configureren, maar met infrastructure as code gaat men een stap verder en wordt met behulp van virtualisatie en speciale talen de gehele infrastructuur als het ware in het programma gestopt en kan echt alles worden ingesteld.

Betere afstemming

En dat heeft grote voordelen voor ontwikkelaars, zij kunnen immers de software en de infrastructuur perfect op elkaar afstemmen en ervoor zorgen dat de code in alle gevallen perfect draait. De server of computer die de code draait zal in geen enkel geval meer afwijken van de verwachting van de ontwikkelaar en dat zorgt ervoor dat er geen onverwachtse problemen of bugs aan het licht zullen komen die veroorzaakt worden door een verschil in configuratie. Het is daarbij natuurlijk wel belangrijk dat er na het configureren van de infrastructuur geen handmatige veranderingen meer worden gemaakt.

 

Nieuwe uitdagingen

Hoewel infrastructure as a code nu al zeer veelbelovend is, zullen er voor een definitieve doorbraak nog een aantal uitdagingen moeten worden overwonnen:

  • Er is op dit moment eigenlijk alleen volledige functionaliteit met Linux-systemen. Door de gesloten aard van Windows en de Microsoft Stack is er op dit gebied wat minder mogelijk en Windows-oplossingen zijn bovendien over het algemeen duurder.
  • De talen voor het configureren van de infrastructuur zijn nog niet perfect en daardoor kan het erg complex worden bij applicaties die uit meerdere lagen bestaan en netwerkcomponenten en componenten voor de beveiliging van vlan’s.
  • De tools die op dit moment beschikbaar zijn zijn vrij moeilijk in gebruik en daardoor kost het veel tijd om te leren hoe er optimaal gebruik van gemaakt kan worden.