Blog

Checklist deel 5: Maak je performance inzichtelijk

Als laatste deel van de reeks van artikelen gaan we het hebben over het inzichtelijk maken van de performance en het gedrag van je oplossing.

De performance van jouw applicatie heeft een grote impact op de gebruikerservaring. Het is dan ook vanzelfsprekend dat je wilt weten hoe je applicatie presteert na de migratie naar Azure. Montoring wordt nog wel eens als een lastig onderwerp gezien. De implementatie van een monitoringoplossing wordt vaak aan het einde van een project gedaan, terwijl we allemaal wel weten dat je hier op voorhand aan moet denken.

Het is lastig om de capaciteit en de performance van je applicatie te vergelijken wanneer je migreert van een traditionele on-premise omgeving naar een Public Cloud infrastructuur. Dit komt doordat de overhead anders wordt verdeeld dan dat je gewend bent bij een traditionele hoster, de resources worden efficiënter ingezet en je oplossing kan anders reageren op de nieuwe infrastructuur.

Wat betreft monitoring zijn traditionele oplossingen die hardware en besturingssystemen monitoren niet altijd toepasbaar op een Public Cloud. Dit komt doordat ze voornamelijk gefocust zijn op het monitoren van de componenten binnen het besturingssysteem, waarbij je bij een Public Cloud zoals Microsoft Azure juist wilt weten wat er gebeurt op resource niveau. Daarbij komt dat door de trend van het verplaatsen van je software naar een platform based scenario, zoals Platform as a Service (PaaS) met Azure App Services of Azure SQL en CosmosDB (om een paar te noemen), het besturingssysteem steeds minder relevant wordt.

In plaats van het monitoren van de traditionele metrics zoals CPU gebruik, geheugen en disk capaciteit, wil je nu focussen op transacties, gebruikersgedrag en ervaringen. Dit is iets wat men altijd al heeft gewild, maar in de realiteit stopt bij veel organisaties de implementatie van een monitoringoplossing nadat de standaard maatstaven worden gemonitord.

Performance monitoren op Azure
Om goed inzicht te krijgen in de performance van je applicatie biedt Azure verschillende oplossingen en al deze configuraties komen samen in Azure Monitor. Microsoft heeft ervoor gezorgd dat je door gebruik te maken van Azure Monitor over een volledige oplossing beschikt die je inzichten geeft, analyseert en reageert op bepaalde gebeurtenissen.


Veel monitoroplossingen binnen Azure Monitor zijn out-of-the-box beschikbaar en kun je met een druk op de knop (of twee) configureren voor jouw oplossing. Maar als je echt wilt profiteren van alle monitoring mogelijkheden, kun je ook gebruik maken van Application Insights SDK en telemetrische gegevens  ophalen vanuit je applicatie (voorbeeld: https://docs.microsoft.com/en-us/azure/azure-monitor/learn/dotnetcore-quick-start).

Azure Monitor
Azure Monitor is gebaseerd op twee verschillende data types:

  • Metrics;
  • Logs.

Metrics kennen we van traditionele monitoring scenario’s: de waarden (numeriek) worden verzameld en bij een bepaalde (ingestelde) grens gaat er een alarm af (bijvoorbeeld: CPU gebruik is te hoog gedurende een bepaalde periode). Logs daarentegen bestaan uit events welke voorkomen binnen de Azure omgeving, jouw applicatie of virtuele machine. Deze logs worden opgeslagen binnen Log Analytics, en dit is waar Azure monitor écht waarde toevoegt. Azure Monitor geeft je namelijk, zonder enige configuratie al ontzettend veel inzicht in deze logging.


Doorgaans schrijft een oplossing/software naar de Azure Log Analytics-database, maar als een directe verbinding niet wordt ondersteund kun je altijd de oplossing configureren om de log registratie naar een Azure storage te schijven. Azure Monitor kan dit als bron gebruiken.

Bron: Microsoft, maart 2019

Als je eenmaal alles geconfigureerd hebt kun je gebruik maken de wereld aan opties. Je kunt eenvoudig inzicht krijgen in de prestaties en het gedrag van je applicatie, dat gedrag kun je visualiseren (dashboards en PowerBI) of zelfs automatisch reageren op gebeurtenissen op basis van notificaties (bijvoorbeeld automatisch schalen, een wijzigen van de configuratie of een berichte versturen naar het Ops team).


Logboeken opvragen
Mocht de standaard logging niet voldoende zijn, geen probleem; Azure Monitorbiedt de wereld aan inzichten doordat het je de mogelijkheid geeft om zoekopdrachten te schrijven. Aangepaste zoekopdrachten worden geschreven met behulp van de Kusto (KQL) taal. Het is te vergelijken met SQL en gemakkelijk te lezen:

Wat deze functie vooral krachtig maakt is dat je alerts kunt aanmaken op basis van deze zelf geschreven queries. Wil je bepaald gedrag detecteren? Zet een alert, zo eenvoudig is het.

 
De inzichten en data visualiseren
Het visualiseren van de inzichten kun je op verschillende manieren doen. Je kunt een aangepast dasboard maken in het Azure Portaal, gebruik maken van Azure Monitor of data exporteren naar je eigen monitor oplossing. Daarnaast kun je eenvoudig waarschuwingen configureren; bijna iedere resource binnen Azure beschikt over de optie om alerting in te stellen.

Bron: Microsoft, januari 2019

Waarschuwingen worden gekoppeld aan zogenaamde Action Groups. Dit klinkt behoorlijk tactisch en high-tech, maar gelukkig valt dat best wel mee. Deze groepen zijn een verzameling van meldingsvoorkeuren die je zelf kiest. Als een waarschuwing/alert eenmaal gegenereerd wordt, wordt de actiegroep geactiveerd. De Action Group start een vooraf geconfigureerde actie, bijvoorbeeld het  versturen van een e-mail, sms of het verzenden van een API call. Maar als je echt van plan bent om het servicebeheer te automatiseren: actiegroepen kunnen ook de IT Service Management Connector gebruiken die beschikbaar is voor Azure. Het genereren van waarschuwingen kan dan bijvoorbeeld resulteren in het maken van een item in jouw ITSM oplossing. Hoe gaaf is dat? 😊

Samenvattend 
Betekent dit het einde voor je huidige monitoringoplossing? Dat hangt ervan af. Wanneer je naar de cloud migreert, wil je waarschijnlijk niet alles wat je tot dusver gebouwd hebt weggooien. Uiteindelijk wil je waarschijnlijk wel af van je eventuele traditionele monitoroplossing, maar ondertussen biedt Azure Monitor je vele manieren om logging te koppelen aan je eigen monitoroplossing en vice versa. Er is een grote kans dat Azure Monitor je inzichten kan geven die je eigen oplossing je momenteel niet geven. Ze zullen elkaar op zijn minst aanvullen. Microsoft werkt elke dag aan het toevoegen en optimaliseren van nieuwe logging en monitoring opties. Als er iets nu mist, is de kans groot dat dit binnen een paar maanden wel beschikbaar is. Logging is doorgaans standaard ingeschakeld, dus er is geen reden om het niet te gebruiken.

Dit is het einde van de reeks met artikelen over jouw migratiereis naar Azure. Hebben we alles besproken? Waarschijnlijk niet! Microsoft Azure is ontzettend uitgebreid en het groeit zo snel dat tegen de tijd dat dit artikel wordt gepubliceerd er al nieuwe functies worden toegevoegd om de migratie naar de cloud nóg makkelijker te maken. Maar welke weg je ook neemt, neem de onderwerpen van de checklist goed door zodat je geen belangrijke dingen over het hoofd ziet!