Infra as code: wanneer wel, wanneer niet?

Infra as Code (IaC) is een term die in cloud-projecten en -implementaties continu wordt gebruikt. IaC maakt het mogelijk om door middel van code IT-componenten, of zelfs een complete IT-omgeving uit te rollen. Dat gebeurt dan in de vorm van scripts en/of configuratiebestanden, zonder dat een engineer uren bezig is om elke afzonderlijke component goed in te richten.

Die code moet natuurlijk eerst worden geschreven, maar is vervolgens wel herbruikbaar. Zeker voor bedrijven waar hetzelfde IT-component meerdere keren moet worden uitgerold (bijvoorbeeld een OTAP-straat of een load balanced backend), wordt de investering in het maken van code snel terugverdiend.

Meer voordelen
IaC heeft ook andere voordelen. Zo is documentatie over de installatie nauwelijks meer nodig, omdat de code precies beschrijft wat er is gebeurd. Dat is een grote verbetering, omdat in de praktijk de infra-documentatie meestal achterloopt op de werkelijkheid en bovendien vaak incompleet is. Functionele documentatie blijft nodig maar die is veel minder aan verandering onderhevig.
Verder wordt de voorspelbaarheid en betrouwbaarheid van de IT-omgeving beter. Het risico op handmatige fouten wordt bijna volledig weggenomen. Als de eerste installatie is getest en goed bevonden, kan de rest veilig worden uitgerold. In zeer volwassen IaC-omgevingen is het testen zelfs onderdeel van het uitrolproces, waardoor de betrouwbaarheid nog meer wordt gegarandeerd. En als er toch een keer een fout optreedt, kan snel naar de laatste (goede) versie van de code worden teruggegaan waardoor de omgeving weer snel in goed werkende staat is terug te brengen.
Tenslotte maakt IaC het met de juiste tooling mogelijk om de uitrol van nieuwe IT-componenten te delegeren of te automatiseren. Niet langer hoeft de engineer met zijn speciale rechten en kennis te worden ingeschakeld; de helpdesk of een developer kan zelf de uitrol uitvoeren.

Maar wanneer niet?
Als er zoveel voordelen zijn aan IaC, waarom dan toch maar beter niet doen? Het werken met code vereist een aanzienlijke investering in zowel kennis als in tijd. De benodigde kennis voor het implementeren van IaC is uitgebreid en best complex, niet iedere engineer zal dit kunnen of willen. Daarnaast kost het maken van code tijd, zeker in de beginfase. Wie van plan is IaC te implementeren, moet er zeker van zijn dat de investering in tijd en geld kan worden gedaan.

Engagement is een voorwaarde
Om echt van de voordelen van IaC te kunnen genieten, is het van belang dat de hele organisatie meewerkt. De code kan bijvoorbeeld waardeloos worden als er wijzigingen worden aangebracht op de infra zonder dat dit in de code wordt verwerkt. De waarde neemt ook sterk af als de business of developers met software komen die niet of nauwelijks in IaC te verwerken is.

Conclusie?
Zoals bij veel andere technische oplossingen staat of valt de implementatie van IaC met de aanpak op het menselijke vlak en de processen. Alleen als ook dat goed wordt gedaan, kun je echt de vruchten plukken van IaC.

Benieuwd of IaC iets is voor jouw organisatie? Neem dan even contact op: matthijs.kerssemakers@neonomads.nl. We hebben ruime ervaring en kunnen snel de kansen en mogelijkheden voor jouw organisatie schetsen.
PS. Ben je werkzaam in de IT, en heb je 6 tot 8 jaar ervaring? En wil je een nieuwe stap maken naar ons team waarin je je weer verder kunt ontwikkelen, in een door jou gewenste richting? Neem dan ook even contact op. Dan doen we eerst even een bak koffie (irl of online).