Van Dev tot DevOps met betere monitoring

15 jun. 2018

Steeds meer bedrijven spreken de wens uit hun ontwikkelteams meer als DevOps teams te laten functioneren, maar hoe zorg je ervoor dat deze Dev teams starten met het toevoegen van Ops aan hun dagelijkse routine? Veel ontwikkelteams zijn nog steeds volledig gefocust op het leveren van hun product en beginnen met het ontwikkelen van het volgende product direct nadat het vorige is opgeleverd. Zulke teams richten zich op opleveren en niet op het product zelf. Een DevOps-team moet echter ook de producten die ze hebben geleverd, controleren, onderhouden en repareren. Voor veel Dev-teams (en hun organisaties) die transformeren naar DevOps, is het moeilijk om tijd in te ruimen voor monitoring en onderhoud. Is het niet veel cooler om nieuwe functies te bouwen dan om onderhoudstaken uit te voeren of monitoring gegevens te analyseren? Je kan de Ops taken opleggen aan teams maar het werkt veel beter als ze deze taken willen uitvoeren. Om dit te bewerkstelligen moeten teams hun applicaties leren kennen, niet alleen de code die ze ontwikkeld hebben maar het hele gedrag van hun applicaties, wanneer gedraagt deze zich afwijkend, hoe gaan gebruikers ermee om, wanneer is de performance slecht en waarom. Een goed gebruik van monitoring tooling kan hierbij helpen.

Waarom monitoren

De meeste organisaties hebben wel ergens een monitoringtool in gebruik. Als je geluk hebt kijkt de beheerafdeling periodiek naar deze tool en waarschuwt ontwikkelteams als er een fout gevonden is. Als je echt veel geluk hebt, worden automatische waarschuwingen van de monitoringtool gebruikt en krijgt de beheer afdeling onmiddellijk bericht als de tooling iets afwijkends geconstateerd heeft. Maar vaak worden monitoring tools slechts heel sporadisch gecontroleerd door een handjevol ontwikkelaars. Te vaak komen de eerste meldingen van een verstoring van klanten. Uiteraard is dit geen gewenste situatie. Afwijkend gedrag in een applicatie zou proactief gesignaleerd moeten worden en zo nodig meteen opgelost worden, liefst voordat klanten daadwerkelijk fouten ervaren.

Monitoring naar teams brengen

Teams alleen opdragen om de monitoringtools te gebruiken, werkt meestal niet. Je zult de tools actief naar de teams toe moeten brengen zodat ze er gevoel voor krijgen. Een aantal manieren om dit te doen zijn:

  • Toon de monitoringtool op een duidelijk zichtbaar scherm waar alle ontwikkelaars het kunnen zien
  • Maak het bekijken en bespreken van monitoringresultaten een integraal onderdeel van teamvergaderingen. Je kunt bijvoorbeeld de prestaties van de applicatie met het team beoordelen tijdens een team retro
  • Stuur meldingen over bepaalde gebeurtenissen in de applicatie (bijv. hoog aantal fouten, hoge responstijden) direct naar alle teamleden zodat deze meteen weten wanneer er iets afwijkends gebeurt in hun applicatie. Je kunt hiervoor team chattoepassingen zoals Slack gebruiken of gewoon e-mail
  • Stuur wekelijkse/dagelijkse mailings naar de teams met monitoringstatistieken van de laatste week/dag
  • Monitoringsstatistieken (aantal fouten, responsetijden, etc.) tonen tijdens teamdemo's om teamleden en stakeholders te laten zien wat de kwaliteit en stabiliteit van hun applicatie is en daarna afspraken maken over hoe dit te verbeteren is

Je moet je teams goed kennen om te kunnen bepalen welke combinatie het beste werkt. Na verloop van tijd zouden teamleden steeds meer gewend moeten raken met het gebruik van monitoring tools en zullen ze deze steeds actiever gaan gebruiken. Hoe snel dit gaat hangt vooral af van de volwassenheid van de teams. Zodra teams de monitoringtools op een proactieve manier gebruiken, beginnen ze zich meer verantwoordelijk te voelen voor hun applicatie. Dit zou moeten resulteren in teams die niet alleen ernstige productie verstoringen aanpakken, maar ook zelfstanding verbeteringen doorvoeren als ze bijvoorbeeld prestatieproblemen of afwijkend gedrag constateren. De focus van het team verschuift zo van het alleen bouwen en leveren van een applicatie tot het volledig verantwoordelijke zijn voor de hele applicatie live cycle.

Conclusie

Ontwikkelingsteams zover krijgen dat ze zich ook verantwoordelijk voelen voor hoe hun applicaties zich daadwerkelijk gedragen nadat ze deze hebben afgeleverd, is een complex proces. Gegevens van monitoringtools naar de teams brengen is een effectieve manier voor teams om meer gevoel met hun applicatie te krijgen. Dit zou er toe moeten leiden dat teams zich verantwoordelijk voelen voor het gedrag van hun applicatie. Het uiteindelijke doel is om teams zover te krijgen dat ze proactief verbeteringen doorvoeren in hun eigen applicaties en adequaat reageren als er een verstoringen optreden. Dit zorgt voor hogere kwaliteit van applicaties en minder fouten en ergernissen voor klanten.