Application Insights: verbeter de gebruikerservaring door eenvoudig inzicht te krijgen in de performance van je applicatie [Technical Azure Hacks]

Monitoring, analyse en het rapporteren is een vraagstuk waar vaak achteraf naar wordt gekeken waardoor het uiteindelijk uitmondt in een complex vraagstuk. Als organisatie moet je nagaan met welk doel je welke gegevens wilt verzamelen, over welke gegevens je beschikt en wat je dan inzichtelijk wil maken.

 

Wesley Haakman, Intercept

In de praktijk is er bijna een onuitputtelijke bron van data met betrekking tot performance beschikbaarheid en gedrag. Door het verkrijgen van inzichten kun je tijdig bijsturen en duidelijke vergelijkingen maken om problemen te voorkomen. Altijd met als doel om de beschikbaarheid en gebruikerservaring voor je klanten en eigen medewerkers zo optimaal mogelijk te maken en behouden.

 

Inzicht verkrijgen, hoe doe je dat?
De klassieke analyse oplossingen bieden vele mogelijkheden, maar vergen vaak ook een handmatige configuratie en een zorgvuldige selectie van data. Als dit niet zorgvuldig wordt geselecteerd dan resulteert dit in een onoverzichtelijke verzameling van meldingen, waarvan men vaak niet weet waar te beginnen. Het monitoren en analyseren van de infrastructuur hebben organisaties doorgaans wel onder de knie. Kijken we naar applicatieontwikkeling dan wordt deze uitdaging groter. Waarom krijgt de eindgebruiker een foutmelding of hoe komt het dat een actie binnen mijn webapplicatie ineens 0.5 seconden trager reageert dan normaal? Komt dit door de infrastructuur of is dit een gevolg van een wijziging in de code?

Dit vraagt om een meer complexe technologie als het gaat om monitoring en analyse. Zeker als we kijken naar de DevOps processen dan zijn deze inzichten cruciaal voor het succes van de oplossing. Dit betekent ook dat monitoring niet langer een vraagstuk is wat aan het einde van de cyclus plaatsvindt, maar een integraal onderdeel is van de applicatie.

 

Inzicht in je applicaties
De inrichting, monitoring en analyse is een vraagstuk welke wij veelvuldig behandelen binnen de Independent Software Vendor (ISV) markt. Hoe gaan we hier mee om, wat kan Microsoft Azure hierin betekenen en niet geheel onbelangrijk: waar begin je?

Van veel tooling kun je kosteloos gebruik maken, ga het wiel dan ook niet zelf uitvinden en maak eenvoudig gebruik van verschillende beschikbare monitoring, analyse en rapportage oplossingen. Microsoft Azure biedt deze services voor de analyse van de infrastructuur en de applicatie. Met name dit laatste biedt veel interessante en onverwachte mogelijkheden voor ISVs. Microsoft heeft met Application Insights een Application Performance Management oplossing op de markt gezet waarbij de mogelijkheden bijna on-uitputtend zijn.

 

Application Insights
Application Insights werkt op basis van Machine Learning. Het identificeert afwijkend gedrag, standaard foutmeldingen en registreert gebruikersactiviteiten. Als integraal onderdeel van de applicatie infrastructuur biedt Application Insights de mogelijkheid om relaties te leggen tussen de verschillende componenten, tijdig een waarschuwing te versturen of complete rapportages aan te leveren met behulp van Power BI. Ook is het mogelijk om Application Insights te gebruiken om op basis van performance levels een Virtuele Machine of Web Applications automatisch te laten schalen. Wordt de applicatie minder gebruikt dan kan de omgeving lager ingeschaald worden om zo onnodige kosten te voorkomen.

Bron: https://docs.microsoft.com

 

Hoe begin je met Application Insights?
Hoe begin je en hoeveel werk is het? Dat is een keuze die je als ISV zelf maakt. Wil je klein en (standaard) beginnen? Dan kan Application Insights achteraf aan de applicatie worden toegevoegd. Dit vergt alleen een kleine wijziging in de bestaande app en de installatie van de Status Monitor (IIS). Binnen enkele minuten beschik je al over de nodige informatie.

Het alternatief biedt echter veel meer inzichten en controle. Door het toevoegen van de Application Insights SDK binnen de bestaande code kunnen de afgevangen foutmeldingen (Exceptions) worden verstuurd naar Application Insights. Eigenlijk iedere vorm van telemetrie kan worden verstuurd naar Application Insights, zowel server als client-side. Deze SDK is onder andere beschikbaar voor ASP.NET, Node.js en Java. Enkele voordelen van Application Insights?

 

Inzicht in gebruikersacties
Deze oplossing biedt de mogelijkheid binnen en buiten de applicatie te monitoren, wat betekent dat gebruikersacties vanuit de browser automatisch vergeleken kunnen worden met back-end performance. De performance kan eveneens zowel binnen als buiten de applicatie worden getest vanuit verschillende locaties over Azure Regio’s. Ben je benieuwd wat de responsetijden zijn vanuit de Verenigde Staten, Japan en West Europa? Application Insights biedt dergelijke inzichten standaard. Deze correlatie biedt een hele nieuwe wereld aan inzichten en geeft waardevolle input aan developers en beheerders van het platform.

 

Gebruikersinteractie in kaart brengen
Ook kunnen specifieke URL’s gemonitord worden en kan het resultaat van de gebruikers interactie in kaart worden gebracht. Waar nodig kunnen op terugkomende events meldingen worden verstuurd naar bijvoorbeeld Microsoft Teams of Visual Studio Team Services.

 

Bottlenecks in je applicatie identificeren
Wanneer je webapplicatie wat complexer wordt en uit meerdere componenten bestaat, biedt de application map functionaliteit nog meer inzichten. Er wordt een compleet overzicht gegeven van alle afhankelijkheden (resources) en de performance tussen deze componenten. Een bijzonder sterke functionaliteit om de bottlenecks in je applicatie te identificeren en te verhelpen.

Bron: https://docs.microsoft.com

 

Diepgaande event inzichten
Application Insight in combinatie met Log Analytics biedt de mogelijkheid om root cause analysis uit te voeren om bijvoorbeeld een verregaand onderzoek uit te voeren om de oorzaak van een event te achterhalen.

Log Analytics is de ‘go-to’ dienst als het gaat om het verzamelen van operationele logging en het analyseren van deze gegevens door middel van een eenvoudige query taal.

Door aanvullend andere resources te koppelen aan Log Analytics (bijvoorbeeld Security Center of Virtuele Machines) kunnen de gegevens vergeleken worden en kan er nog verder ingezoomd worden op de werking van de infrastructuur en de relatie(s) met de applicatie zelf. Application Insights maakt standaard gebruik van Log Analytics maar bij complexe problemen kan een kijkje onder de motorkap geen kwaad.

 

DevOps feedback
De feedback loop is misschien wel het belangrijkste proces in een DevOps organisatie. Het in kaart brengen van de gevolgen van een release, lering trekken uit nieuwe builds en de relatie met betrekking tot performance en foutmeldingen is key als het gaat om een succesvolle DevOps strategie te voeren.

Sinds enige tijd is het mogelijk om Application Insights te integreren met de build en release processen binnen Visual Studio Team Services. We noemen dit “Continuous monitoring”. Door de telemetrie te integreren met de release pipeline kan op basis van alerting worden vastgesteld of een release door mag naar de volgende fase (bijvoorbeeld van Test naar Acceptatieomgeving) of dat de deployment moet worden gestaakt. De resultaten worden teruggekoppeld aan het development team met daarbij de nodige informatie als de alert en het build nummer.

Daarnaast biedt deze integratie met Visual Studio Team Service ook doorlopende inzichten in de relatie tussen release en performance. Ervaart de omgeving ineens een performance dip? Dan weet je wanneer dit gedrag is voortgekomen uit een nieuwe release.

Deze configuratie verkort de feedback loop en zorgt ervoor dat developers eerder kunnen ingrijpen, soms al voordat de eindgebruiker hinder ondervindt.

 

Application Insights - Quick Start
Wil je (nog) meer inzicht in je applicaties? Bekijk de uitleg van Microsoft om snel te kunnen starten met Application Insights. Bereik je niet direct het gewenste resultaat? En wil je weten voor welke toepassingen je application Insights nog meer kunt gebruiken? Neem dan gerust contact op met een van onze Azure Experts.