Help, m’n Azure kosten rijzen de pan uit!

Help, m’n Azure kosten rijzen de pan uit!

Azure is een fantastisch platform, met een paar clicks heb je een mooie omgeving aan de praat. Je kunt je data opslaan, applicaties bouwen en hosten, dashboards ontwerpen en nog heel veel meer. Alles is scalable en het is heel eenvoudig om extra resources aan te slingeren. En, nog mooier … dat allemaal voor een paar euro per maand. Maar goed, er zit een keerzijde aan dit gemak. Bij veel Azure klanten zien we dat naar verloop van tijd de maandelijkse kosten significant worden. De uitdaging die dan veelal bij de IT-afdeling komt te liggen is om de kosten te verlagen bij een gelijkblijvende (of betere) gebruikersbeleving. Om deze paradox te slechten zul je gedetailleerde Azure kennis moeten combineren met specifieke gebruikerswensen. In dit blog beschrijven we cruciale handvatten waarmee je de Azure kosten onder controle gaat krijgen.

 

Right sizing resources

Het uiteindelijke doel is om de kosten structureel te verlagen met behoud van de gebruikersbeleving, ‘right sizing van de resources’. We kunnen aan verschillende knoppen draaien om dit te realiseren. Enkele voorbeelden:

  • Selecting data stores: door te bepalen welke storage je gebruikt voor welke toepassing kan je veel kosten besparen. Storage als, Azure Datalake Storage, Azure SQL database, Cosmos DB en Synapse Analytics hebben allemaal hun sweet spots. Maar indien ze verkeerd worden ingezet kan de teller snel oplopen.
  • Scaling databases: performance van diverse Azure databases kan omhoog en omlaag worden geschaald. Dit kan handmatig of automatisch worden gedaan en je kunt in bepaalde gevallen ook kiezen voor een serverless oplossing. Deze keuzes hebben zeer veel invloed op de Azure kosten.
  • Azure Reserved Instances: Door resources voor 1 of 3 jaar vast te leggen kun je een korting realiseren tot zo’n 80%.
  • Azure Dev/Test Pricing: Voor development- en testomgevingen gelden specifieke prijs niveaus. Door deze slim te configureren kun je veel kosten besparen.
  • Azure Hybrid Benefit: Wanneer je nog een groot ‘on-premise landschap’ met Microsoft tools hebt staan is Microsoft bereid om grote kortingen aan te bieden bij een migratie naar Azure.
  • Selectief provisionen met Azure DevOps: Azure resources provisionen is een kwestie van minuten. Heel anders dan de oude wereld van on-premise landschappen die 24/7 aan staan. Zet je Azure oplossingen in versiebeheer en provision ze op Dev / Test / Acceptatie omgevingen alleen als ze gebruikt worden. Gooi ze na gebruik weer weg… dat kan dus in de nieuwe wereld van de cloud!

 

Blind gaan draaien aan bovengenoemde knoppen raden we af omdat het grote invloed kan hebben op kwaliteit en stabiliteit van je Azure omgeving. Eerst zou je aandacht moeten geven aan Structureren en Monitoring.

 

Structureren

De eerste cruciale stap om grip te krijgen op de Azure uitgaven is ‘het inregelen van processen en fiateringsregels’. Hiermee kun je voorkomen dat er wildgroei ontstaat in je Azure omgeving en de kosten steeds hoger worden. Onder meer kan je met Azure Policy bepalen wie welke resources (en van welke sizing) kan aanzetten. Handig om te voorkomen dat een enthousiaste power user een Cosmos DB server met wereldwijde replicatie van de hoogste performance tier aanzet á vijfduizend euro per maand. Er zijn mensen voor minder ontslagen…

 

Bovendien zal je een intern proces moeten inrichten om te borgen dat er niet alleen extra resources worden aangezet, maar dat ook regelmatig wordt gekeken of resources uitgezet kunnen worden dan wel op een lager kostenniveau of alleen on-demand kunnen worden ingezet. Ook is het zinvol om reguliere meetmomenten, budgetten, targets en alerts te definiëren.

 

Monitoring

‘Meten is weten’ geldt ook voor Azure kosten. Azure biedt met de Azure Cost Management en Billing tools veel inzichten. Dit inzicht kun je sterk verbeteren door op een slimme manier tags toe te wijzen aan je actieve resources. Het gebruik van de tags helpt je in het toewijzen van kosten aan personen, afdelingen of projecten, maar het biedt ook een basis voor een gedetailleerde analyse van mogelijke besparingsgebieden.

 

Als de processen zijn ingeregeld en de tags zijn gestructureerd dan is het volgende zinvolle hulpmiddel een gepersonaliseerd Power BI dashboard om te sturen op lage Azure kosten. Dit dashboard moet een basis bieden voor de reguliere ‘kosten analyses’ maar het kan je ook helpen om targets te zetten en alerts in te richten.

 

Tijdens het ontwerpen van het gepersonaliseerde Power BI dashboard is het belangrijk om de bestaande Azure architectuur goed te analyseren. Hiermee bepalen we de belangrijkste cost drivers en de inzichten die we willen visualiseren met Power BI. Cost drivers die veel impact hebben zijn doorgaans Storage, Compute en Data movements.

 

Azure Cost Optimizer

Om structureel grip op je Azure kosten te houden heeft Powerdobs de ‘Azure Cost Optimizer’ ontwikkeld. We hebben deze propositie al verschillende malen succesvol geïmplementeerd bij onze klanten waarbij we het volgende stappenplan gebruiken:

  1. Azure architectuur & functionaliteit scan: Welke functionaliteit wil je je eindgebruikers bieden, nu en in de nabije toekomst, en met welke Azure architectuur doe je dat? Dit inzicht is cruciaal om de verdere stappen van onze Cost Optimizer goed te doorlopen.
  2. Kosten forecast volgens huidige implementatie: Als we een forecast maken qua users, licenties en gebruik van Azure resources, wat wordt dan de kosten prognose? Dit is onze baseline waartegen we besparingen afzetten.
  3. Identificeren van suboptimalisaties: Welke besparingen zijn er mogelijk, afgezet tegen de baseline, met behoud van de in stappen één en twee bepaalde functionaliteit en usage? In deze stap bepalen we de business case.
  4. Implementatie van verbeteringen: Uitvoeren van de besparingen die zullen leiden tot het verzilveren van de business case. Dit is vaak te combineren met de realisatie van nieuwe business gedreven features, wat goed is voor business buy-in.
  5. Inrichten proces & middelen om te sturen op kosten: Eenmalig de kosten onder controle brengen is natuurlijk een goede idee! Continue sturen en onnodige kosten voorkomen is beter. Dat is goed mogelijk door die verantwoordelijkheid te benoemen, te beleggen, en die rol de middelen te geven om inzicht te krijgen, optimalisaties te spotten en door te voeren.

 

Mocht je interesse hebben in de bevindingen en onze aanpak dan delen we dit graag.

Leon Huijsmans