Het implementeren en beheren van een public cloud-omgeving kan een tijdrovende taak zijn. Er is een breed scala aan keuzes in platforms, diensten en leveranciers en hoe meer keuze, hoe lastiger het is om snel up and running te zijn. Daarnaast moet de omgeving betrouwbaar, schaalbaar én veilig zijn. Met behulp van Infrastructure-as-Code (IaC) wordt het een stuk eenvoudiger om aan deze uitdagingen te voldoen. Ook een compliant public cloudomgeving behoort hierdoor tot de mogelijkheden.
Veel organisaties en teams maken nog steeds gebruik van handmatige wijzigingen in de configuratie, voeren handmatig maatwerk scripts (in Bash of PowerShell) uit, en gebruiken niet-geautomatiseerde tools en ‘golden images’ voor het bouwen en beheren van hun infrastructuur. Dit resulteert in (menselijke) fouten en trage deployments. Door de ontwikkeling van infrastructuur op dezelfde manier als software development te benaderen, wordt het mogelijk om sneller betrouwbare deployments van de infrastructuur uit te voeren.
Door gebruik van Infrastructure-as-Code (IaC) kunnen voor infrastructuur dezelfde ontwikkelprocessen en tools gebruikt worden als voor softwareontwikkeling, zoals versiebeheer, continuous integration, deployment pipelines, code review, automatisch testen en automatische rollback-mogelijkheden. Hierdoor worden infrastructuurwijzigingen eenvoudiger, sneller, veiliger en betrouwbaarder.
Skillset
De functionaliteiten en mogelijkheden van IaC maken het tot een mechanisme dat eigenlijk ieder bedrijf zou moeten toepassen bij het inrichten en beheren van een public cloudomgeving. Grote cloudpartijen zoals Amazon, Google en Azure investeren niet voor niks flink in IaC. Zij zijn van mening dat het de enige manier is om betrouwbare, schaalbare en beheersbare public cloudomgevingen te bouwen.
Toch wordt er nog onvoldoende gebruikgemaakt van de mogelijkheden. Een belangrijke oorzaak hiervan is dat het werken via IaC vraagt om een infrastructure-engineer met een developer-mindset. ‘Traditionele’ infrastructure-engineers moeten software gaan schrijven om een infrastructuur te kunnen bouwen, en dat vraagt om een andere skillset. Grote enterprise-organisaties beschikken vaak over werknemers die zich alleen bezighouden met infrastructuur en deze nieuwe developer-vaardigheden nog niet eigen hebben gemaakt. Of zelfs nooit eigen zullen kunnen maken.
Maar dit geldt niet alleen voor de engineers binnen grote organisaties. Veel bedrijven zijn zich bewust van de mogelijkheden van de public cloud, maar lopen tegen de beperkingen van cloudleveranciers aan. Het is op dit moment nog steeds zo dat ook partijen die public cloudomgevingen voor bedrijven opzetten en beheren, niet over de juiste skillset beschikken om via het IaC-principe te bouwen. Veel cloudinfrastructuren worden op de public cloud via de console bij elkaar geklikt en servers worden handmatig bijgewerkt.
Meer IaC
Er zijn verschillende redenen te noemen waarom IaC veel meer toegepast moet worden. Allereerst biedt het de mogelijkheid heel eenvoudig deployments te herhalen en te repliceren. Een testomgeving wordt in code vastgelegd en met één druk op de knop wordt een blueprint gemaakt die gelijk kan zijn voor zowel de acceptatie- als de productieomgeving, en door middel van parameters kan de sizing worden aangepast. Bouwen via IaC biedt organisaties mogelijkheden om best practices af te dwingen. Een blueprint bestaat uit componenten die bepalen hoe een omgeving eruit moet zien als het gaat om monitoring, schaalbaarheid en security & compliance. Deze hoeft vervolgens niet telkens weer opnieuw uitgewerkt te worden.
Voor veel bedrijven is het bij een overgang naar de public cloud moeilijk, zo niet onmogelijk, de oplossingen die op deze public cloud draaien te laten voldoen aan de security- en compliance-eisen voor het behalen van certificeringen als ISO 27001 en ISO 9001. Door het toepassen van IaC, en de eerdergenoemde best practices die hierbij worden afgedwongen, komt het behalen van de benodigde certificeringen een stap dichterbij. Zo kunnen bijvoorbeeld alle acties op de omgeving gelogd en opgeslagen worden in een andere omgeving waar alleen geautoriseerde gebruikers bij kunnen. Bij een security-incident heeft een bedrijf de garantie dat er te achterhalen valt wat er gebruikt is en wie wat gedaan heeft. Deze audit trail kan zelfs voor forensisch onderzoek worden gebruikt.
Geen utopie
IaC maakt het voor public cloudomgevingen ook mogelijk om blueprints geautomatiseerd te implementeren in verschillende omgevingen die aansluiten bij application lifecycle management. Menselijke fouten worden op deze manier tot een minimum beperkt, en de mogelijkheden te voldoen aan de strenge security- en compliance-eisen worden gemaximaliseerd.
Kortom, een compliant public cloudomgeving komt met de inzet van de juiste tools, processen en expertise binnen handbereik.
Luc van Donkersgoed, senior cloud systems consultant & APN ambassador bij Sentia