Klaas Heek Cloud Solution Architect
15 september 2017

De Azure compute businesscase geautomatiseerd

Het Probleem

Het mappen van uw huidige virtuele machines naar Azure machines is een tijdrovende klus. Microsoft biedt geen API om de specificaties van machinetypes inclusief de bijbehorende prijzen op te vragen. Dus wordt het uren knippen en plakken uit de Azureprijzencalculator en elke keer opnieuw afwegen wat de beste keuze is.

De ‘beste keuze’ is afhankelijk van een groot aantal factoren. Gaat het om een ontwikkel, test of productie server? Is de processor capaciteit belangrijker dan de geheugen capaciteit? Brengt u zelf uw Microsoft Windows licenties in? Draait er software op de server waarvan de prijs afhankelijk is van het aantal cores (zoals Microsoft SQL)? Welke beschikbaarheid (SLA) is vereist? Wilt u gebruik maken van promotie prijzen? Etc.

Ook is de kans op fouten groot, omdat er machinetypes zijn die u vergeet af te wegen of omdat machine types (nog) niet in uw Azure regio aanwezig zijn.

Tot slot, is de praktijk dat serverlijsten met de tijd variëren. Alleen al het starten van een Azure transitie project heeft tot gevolg dat een aantal servers zal worden uitgefaseerd of wordt vervangen door een dienst (PaaS, SaaS).

Genoeg argumenten om zelfs als architect maar eens te gaan automatiseren en het MapReduce principe in de praktijk te gaan brengen.

De Oplossing

FMO = MapReduce(CMO, Requirements)

Het doel is om geautomatiseerd de mapping van de Current Mode of Operation (CMO) naar de Future Mode of Operation (FMO) voor virtuele machines uit te voeren. Heel praktisch: je voert een CMO.xlsx met huidige machine specificaties in en er komt een FMO.xlsx met Azure machines, inclusief prijsinformatie uit.

Map
De mapping wordt gestuurd door requirements vast te stelllen. In bovenstaand overzicht is bijvoorbeeld voor de SQL productie machine aangegeven dat deze een core bound license (cbl) heeft. Het gevolg is dat het algoritme het aantal cores probeert gelijk te houden. Ook is te zien dat machines die een SLA hebben niet op de ‘goedkope’ basic tier van Azure landen. Verder wordt van bepaalde type machines aangeven of ze CPU optimized of memory optimized moeten zijn. Bij de test/ontwikkel machine is aangegeven dat deze price optimized mag zijn.

Reduce
Of er een businesscase voor Azure Compute (IaaS) is kan nu snel en repeteerbaar berekend worden door de kosten uit de CMO(.xlsx) te vergelijken met de huidige kosten. Als er wijzigingen zijn in het huidige server landschap kunnen deze met een druk op de knop doorgerekend worden. De businesscase is dus actueel en ook in de operationele fase kan bepaald worden of kostoptimalisatie mogelijk is.

In de praktijk - Matching Algorithm

Met deze tool is het ook mogelijk per machine de alternatieven te bekijken, zie hieronder bijvoorbeeld de uitkomsten voor een 2 core, 6GB RAM machine, memory optimized, waarbij de D2_V2 met actuele promoprijs de hoogste score krijgt:

Price & Size informatie

Het is met de tool ook mogelijk om voor je Azure Pay-As-you-Go, CSP of MSDN subscriptie alle actuele machine types met prijs en specificaties voor een Azure regio op te vragen (en te exporteren naar Excel).

Onder de motorkap

Ik heb de tool geschreven in Python en deze draait online op Azure Notebooks (Powered by Azure machine learning). Daarbij wordt gebruik gemaakt van de Azure RateCard API, de Azure Resource Manager Compute API en een API voor het authentiseren tegen je subscriptie. Ik wil de tool uitbreiden met optimalisaties voor IOPS en de kosten voor Managed Disks en Azure Backup.

Demo (EN)

Meld je aan voor de Solvinity Nieuwsbrief

Ontvang elk kwartaal het laatste nieuws, blogs, artikelen en events. Meld je aan voor onze nieuwsbrief.

Lees ook

Meer

Kunnen we je verder helpen?

Maandag t/m vrijdag van 09:00 - 19:00 uur