Panoptes: rogue resources herstellen in een multicloudomgeving met Infrastructure as Code
Het beheren van systeemarchitecturen is historisch gezien een tijdrovend en foutgevoelig proces. DevOps, een set van werkwijzen gericht op het verbeteren van deploy-snelheid en kwaliteit, adresseert deze uitdagingen door automation en consistentie te bevorderen. Een kernpraktijk binnen DevOps is Infrastructure as Code (IaC), waarbij infrastructuur wordt beschreven in code en systemen automatisch worden geconfigureerd op basis van deze definities. Dit staat in contrast met traditionele methoden, waarbij beheerders systemen handmatig en interactief configureren.
Infrastructure as Code in cloud- en multicloudomgevingen
IaC is bij uitstek geschikt voor cloud computing, omdat cloudservices het mogelijk maken om systeemresources on-demand toe te wijzen en automatisch te provisionen met behulp van IaC. Bij de adoptie van cloud computing kunnen organisaties kiezen voor één cloudprovider of voor meerdere leveranciers tegelijk, wat wordt aangeduid als een multi-cloudomgeving. Multi-cloudstrategieën helpen vendor lock-in te voorkomen en verminderen de afhankelijkheid van één provider. Tegelijkertijd brengt het beheer van meerdere vendors extra complexiteit met zich mee, onder meer door verschillen in producten en API’s, wat interoperabiliteit bemoeilijkt.
De uitdaging van configuratiedrift en rogue resources
Ondanks de voordelen van IaC introduceert deze aanpak ook uitdagingen, waaronder configuratiedrift, vaak omschreven als “ongedocumenteerde configuratiewijzigingen in een draaiend systeem”. Dit onderzoek richt zich specifiek op het detecteren en herstellen van rogue resources: resources die buiten de door IaC beheerde “state” vallen, maar wel invloed hebben op resources binnen die state. Met “state” wordt hier de verzameling resources bedoeld die door IaC wordt beheerd. Rogue resources kunnen de werking van IaC verstoren, bijvoorbeeld doordat deployments falen wanneer deze afhankelijk zijn van infrastructuur die buiten IaC om is aangemaakt. Daarnaast vormen zij een securityrisico, omdat hun bestaan buiten de IaC-documentatie het lastig maakt om ze te monitoren en te controleren. Deze rogue resources moet je aanpakken om het systeem terug te brengen naar een bekende, beheersbare toestand.
Onderzoeksafbakening en implementatie
Dit onderzoek onderzocht methoden voor het detecteren en herstellen van rogue resources in multicloudomgevingen. Op basis van de onderzoeksresultaten is een tool ontworpen en ontwikkeld om deze uitdagingen praktisch aan te pakken. Om de haalbaarheid binnen de beschikbare tijd te waarborgen, is de scope bewust beperkt. AWS en Hetzner Cloud zijn gekozen als focusplatformen vanwege hun toegankelijkheid en de combinatie van een grote cloudprovider met een kleinere aanbieder. Terraform is geselecteerd als IaC-tool vanwege de brede adoptie en populariteit. Daarnaast richt het onderzoek zich specifiek op compute resources, wat een diepgaandere analyse van rogue resource management mogelijk maakt.
Bijdragen en resultaten
Door deze uitdagingen te onderzoeken en concrete oplossingen te implementeren, draagt dit onderzoek bij aan beter beheer van multicloudomgevingen en aan het verhogen van de betrouwbaarheid van systemen die gebruikmaken van IaC. De bevindingen bieden verdiepend inzicht in hoe rogue resources effectief kunnen worden aangepakt, zodat systemen veilig, controleerbaar en operationeel blijven.