techradar.setechradar.se

Plattformens gränssnitt som control plane

crossplanekubernetescrdapiabstraktion
TRIAL

I stället för att teamen anropar molnets API:er direkt, deklarerar de vad de behöver mot ett eget gränssnitt, och en control plane får verkligheten att matcha. Crossplane och egna CRD:er med en operator är två sätt, Terraform-moduler bakom en pipeline ett tredje.

Varför TRIAL

Det starka med mönstret är att gränssnittet blir smalt och ägt. En Database med fyra fält döljer trettio Azure-resurser, och plattformsteamet kan byta ut vad som händer bakom utan att röra ett enda team. Det är skillnaden mellan en plattform och ett bibliotek av exempel.

Det tar också bort en hel klass av drift. Resurser som avviker rättas tillbaka löpande i stället för att upptäckas vid nästa plan.

Vad det kostar

Du bygger ett eget API, med allt det innebär: versionering, migreringar, felmeddelanden som någon annan ska förstå klockan två på natten, och en abstraktion som måste hålla när det tredje teamet vill ha något den inte tänkte på. Läckan är det vanliga misslyckandet. Så fort en Database behöver ett undantag börjar fälten växa, och efter ett år har du ett gränssnitt som är lika brett som molnets eget, fast sämre dokumenterat och underhållet av tre personer.

Kompetensen är en egen post i budgeten. En control plane felsöks inte med terraform plan, den felsöks i loggar från en operator.

När det är fel val

När du har färre än ungefär tio team eller en handfull tjänstetyper. Då är Terraform-moduler i ett delat repo enklare, räcker hela vägen och kan bäras av en person. Börja där, och byt först när du kan peka på undantagen som gör modulerna ohållbara.