4min

Tags in dit artikel

,

The real troubles in your life are apt to be things that never crossed your worried mind, the kind that blindside you at 4 p.m. on some idle Tuesday. Deze zin uit de hit Everybody’s Free to Wear Sunscreen verwoordt precies de essentie van chaos engineering. Iedereen kent Murphy’s Law: alles wat fout kan gaan, gaat ook fout.

Een traditionele benadering van risicomanagement is dat je de kans op risico’s probeert in te schatten en je zo goed mogelijk voorbereidt op de grootste risico’s. Chaos engineering gaat ervan uit dat werkelijk alles wat fout kan gaan ook daadwerkelijk fout gaat. Het is de taak van IT om ervoor te zorgen dat de eindgebruiker daar zo min mogelijk last van heeft.

Microservices

Er zijn twee factoren die ervoor zorgen dat chaos engineering belangrijker is geworden. Als gevolg van de behoefte van bedrijven om steeds wendbaarder te zijn worden services steeds kleiner en autonomer gemaakt. Deze microservices zelf zijn relatief eenvoudig te onderhouden. Maar het geheel aan microservices maken IT-systemen zeer complex. Dit maakt het onmogelijk om volledig te overzien wat de effecten zijn van de aanpassing van individuele microservices. Chaos engineering is een extra hulpmiddel bij het bouwen veerkrachtige (resilient) systemen.

De acceptatie dat de echte wereld vele malen grilliger en onvoorspelbaarder is dan je kunt bedenken als developer of architect, is niet nieuw. Maar het is wel belangrijker geworden omdat organisaties steeds zwaarder leunen op IT. Als systemen uitvallen, dan heb je al gauw te maken met ontevreden klanten en dus imagoschade, om nog maar te zwijgen over de kosten.

Chaos Monkey van Netflix

Een van de bedrijven die dit aan den lijve ondervond was Netflix. Na een grote systeemuitval besloot de aanbieder van on-demand series en films voortaan voorbereid te zijn op absolute chaos.

Net als veel bedrijven kan Netflix het zich niet permitteren om een grote systeemstoring te hebben. Daarom ontwikkelde Netflix in 2011 een tool die willekeurig chaos creëert binnen de eigen infrastructuur. Het doel; de systemen weerbaarder maken.

Antonio Garcia Martínez beschrijft het in zijn boek Chaos Monkeys als volgt:Stel je een aap voor die een datacenter binnenloopt en willekeurig kabels uittrekt en devices kapot maakt. Je weet niet wanneer deze aap komt en wat hij gaat doen. Het is de uitdaging van IT-managers om informatiesystemen zo te ontwerpen dat ze kunnen blijven functioneren, ook als de chaos monkey onverwacht opduikt.’

Chaos Monkey hielp Netflix om de infrastructuur robuuster en weerbaarder te maken. Het concept werd zo populair dat Netflix besloot om de tool open source te maken. Inmiddels is er een hele community opgebouwd op het gebied van chaos engineering. Deze IT-community beschouwt Netflix nog altijd als ervaringsdeskundige op dit gebied.

Zelf toepassen

Een manier om het gedachtegoed van chaos engineering zelf toe te passen binnen je organisatie, is het bewust uitschakelen van (delen van) je systemen om te kijken wat er dan gebeurt. Waar het eigenlijk om gaat, is dat je bij alle ontwikkeltrajecten heel goed nadenkt over wat allemaal mis kan gaan en daarop anticipeert. Dat hoeft natuurlijk niet per se met een tool als Chaos Monkey; het gaat om de mindset.

In de praktijk ligt de nadruk van chaos engineering nu nog vooral op de techniek. En natuurlijk is het ook  belangrijk om grote systemen resilient te maken. Wat je niet moet onderschatten, is hoe cruciaal het is om hetzelfde te doen voor beheerprocessen. Dus denk niet alleen na wat het gevolg is als een server ineens niet meer met een andere server kan praten, maar wat de impact is op de processen: wie wordt er dan uit bed gebeld en heeft die persoon überhaupt wel een telefoon naast zijn bed, of de juiste materialen om die storing op te lossen?

De grootste les die chaos engineering biedt, is dat je chaos niet kunt voorkomen. Het gaat erom dat je de impact van onverwachte gebeurtenissen minimaliseert. Dingen gaan een keer mis. Waar het om gaat, is hoe goed je daarop kunt acteren. Zie het als een digitale brandoefening; hoe vaker je oefent, des te beter je voorbereid bent.

Test: hoe weerbaar is jouw infrastructuur?

Om te testen hoe goed jouw organisatie is voorbereid op chaos, kun je verschillende vragen stellen binnen een team:

-Welke gebeurtenissen in de wereld kunnen een directe impact hebben op een applicatie?
-Wat is de impact van de applicatie op onze organisatie?
-Wat is het ergste wat ons kan overkomen op IT-gebied?
-Als dat gebeurt, hoe kunnen we daar mee omgaan?
-Wat voor maatregelen kunnen we nu nemen om de impact te minimaliseren?
-Hoe kunnen we onze systemen testen op de impact van onverwachte gebeurtenissen?

Dit is een ingezonden bijdrage van Alex van Assem, DevOps Consultant en Agile Coach bij Info Support, en Peter Toonen, Product Owner en Architect bij Info Support. Via deze link vind je meer informatie over de mogelijkheden van het bedrijf.