Recentelijk zijn we naar het Microsoft Ignite event geweest. Tijdens dit tweedaagse event zijn we meegenomen in de laatste ontwikkelingen op het vlak van development en cloud technologie. Hier hebben we een aantal interessante inzichten opgedaan over nieuwe technieken en ook over hoe je betere processen in kan richten om om te gaan met storingen. We hebben voor jou de belangrijkste inzichten op een rij gezet.
We hebben kennisgemaakt met verschillende nieuwe technologieën zoals Azure KeyVault voor het beheren van je credentials en Azure Pipelines voor het inrichten van je ontwikkelstraat. Ook waren er verbeteringen voor bestaande technologieën zoals tag boosting voor Azure Search en Traffic redirection voor deployment slots. In dit artikel gaan we in op Site Reliability Engineering (SRE in het kort).
Site Reliability Engineering omvat alles wat nodig is om ervoor te zorgen dat een applicatie of applicatielandschap goed blijft functioneren. Hierbij wordt gekeken naar welke processen er moeten zijn en wat voor technologieën je hierbij nodig hebt.
De term “reliability” verraad al dat betrouwbaarheid van een applicatie een belangrijk onderwerp is binnen SR, maar betrouwbaarheid van een applicatie is iets wat lastig vast te stellen is. Wanneer kun je zeggen dat een applicatie betrouwbaar is? Moet deze altijd beschikbaar zijn, moet de data up-to-date zijn, moet een website snel laden? Dit zijn een aantal dingen waar je naar kan kijken, maar naast deze factoren kunnen er nog een hoop andere factoren invloed hebben op de betrouwbaarheid van een applicatie. Elk van deze factoren kan meer of minder belangrijk zijn voor een applicatie binnen het applicatielandschap. Als er een uurtje geen order bevestigingen verstuurd kunnen worden dan is dit minder erg dan wanneer je een uur lang geen producten in je winkelmandje kan stoppen. In de afbeelding hieronder kan je een aantal verschillende vectoren zien die invloed hebben op de betrouwbaarheid van een applicatie.
Wat veelal een grote impact heeft op betrouwbaarheid is de beschikbaarheid van een applicatie. Ondanks alle moeite die er gestopt wordt in het voorkomen van verstoringen zal je ongetwijfeld een keer een storing krijgen. Het applicatielandschap is tegenwoordig dusdanig complex door o.a. koppelingen tussen externe systemen dat je soms een verstoring niet kan voorkomen. Hierom is het belangrijk dat je afspraken maakt over wat je monitort en hoe je dit monitort. Ook moet er een goed proces zijn voor wanneer er iets fout gaat.
Bij het maken van deze afspraken moet je per functionaliteit kijken wat de impact is als deze het niet meer doet. Wanneer reviews achterlaten in je winkel het niet meer doet dan is dit erg vervelend, het zal echter in de meeste gevallen geen groot probleem zijn als dit het een keer een dag niet doet. Echter, wanneer gebruikers niet kunnen betalen dan wil je dat dit direct opgelost wordt. Ook moet je afspraken maken over hoe mensen geïnformeerd worden en hoe er geëscaleerd wordt. Je wilt niet om 23:00 ‘s avonds gaan nadenken over wie er gebeld moet worden om een probleem op te lossen.
Door de juiste tooling in te zetten kan je dit proces zelfs automatiseren. Er kan automatisch een ticket aangemaakt worden in je bugtracker en de first responders kunnen via SMS of Telefoon op de hoogte gebracht worden. Ook kunnen er mails verstuurd worden naar bijvoorbeeld een servicedesk zodat deze direct op de hoogte is van een storing, zodat deze klanten beter te woord kan staan.
Nadat een verstoring is opgelost is het belangrijk om met alle betrokkenen te reviewen wat er is gebeurd. Doel hiervan is alle feiten op een rij krijgen en kijken naar alle dingen die goed en dingen die slecht zijn gegaan. Deze dingen kan je meenemen als lessen voor de volgende keer om zo je processen nog beter te maken. Belangrijk is dat dit niet bedoeld is om een schuldige aan te wijzen. Wanneer mensen zich niet veilig voelen dan zullen ze niet hun fouten delen en kan je dus ook niet leren van de fouten die gemaakt zijn.
Om dit alles correct in te richten moet je verschillende aspecten van je organisatie hierop ingericht hebben. Er moeten duidelijk afspraken zijn, je moet processen opstellen op basis van die afspraken en je moet tooling en monitoring hebben ter ondersteuning van die processen. Dit inrichten heeft dan ook impact op een groot gedeelte van je bedrijf.
Hulp nodig van een professionele e-commerce servicedesk waar ontwikkelaars en vormgevers met elkaar samenwerken? Onze servicedesk zorgt ervoor dat problemen snel worden verholpen en wijzigingen soepel worden doorgevoerd. Doordat we gebruik maken van proactieve monitoring zijn we in staat om problemen te voorkomen. Een wijziging kan een front-end, functionele of interface aanpassing zijn, waar we je graag mee helpen. Neem gerust eens contact op!