Een openbare post mortem van een storing
Veel dingen in het leven kennen een algemeen geaccepteerde “conservatieve” aanpak en een algemeen geaccepteerde “risicovolle” aanpak die vermeden zou moeten worden, althans volgens de heersende opvatting. Bij beleggen zien we bijvoorbeeld vaak het kopen van staats- of gemeenteobligaties als laag risico en het beleggen in aandelen (bedrijfsaandelen) als hoog risico – maar de statistische cijfers vertellen ons dat dit andersom is en dat vrijwel iedereen geld verliest op obligaties en geld verdient op aandelen. De gangbare “wijsheid” blijkt, wanneer ze op de proef wordt gesteld, puur gebaseerd te zijn op emoties, die op hun beurt gebaseerd zijn op misvattingen, en het meest risicovolle bij beleggen is het laten leiden van beleggingsstrategieën door emotie.
Op vergelijkbare wijze is bij bedrijfsrisicobeoordelingen de gangbare aanpak het ervaren van een emotionele reactie op gevaar, en dit veroorzaakt een paniekreactie en maakt het een sterke neiging van mensen om te overcompenseren voor waargenomen risico. We zien dit vaak bij kleine bedrijven waarvan de IT-infrastructuur zeer weinig omzet genereert of niet erg cruciaal is voor de kortetermijnactiviteiten, en die grote sommen geld uitgeven om zich te beschermen tegen een risico dat slechts gedeeltelijk wordt waargenomen en zeer slecht is verwoord. Dit wordt vaak zo dramatisch dat het mitigatieproces vaak emotioneel in plaats van intellectueel wordt afgehandeld, en we treffen regelmatig bedrijven aan die slechte systeemontwerpen implementeren die het risico juist vergroten in plaats van verkleinen, terwijl ze zeer grote sommen geld uitgeven en vervolgens, aangezien het risico grotendeels denkbeeldig was, het project een succes noemen op basis van laag na laag van misvattingen: denkbeeldig risico, denkbeeldige risicomitigatie en denkbeeldig succes.
In het recente verleden mocht ik betrokken zijn bij een complete ramp voor een klein bedrijf. De ramp trof wat bijna een “worstcasescenario” was. Niet helemaal, maar zeer dichtbij. De emotionele reactie op de ramp was destijds sterk, en zodra de ramp volledig in gang was gezet, was het voor vrijwel iedereen gangbaar om te stellen en te herhalen dat de rampenplanning gebrekkig was geweest en dat het probleem voorkomen had moeten worden. Dit is heel gebruikelijk in elke rampsituatie; mensen hebben het gevoel dat er altijd iemand de schuld zou moeten krijgen en dat er nul-risicoscenario’s zouden moeten bestaan als we ons werk goed doen, maar dit is volkomen onjuist.
Gelukkig hebben we een volledige post mortem uitgevoerd, zoals men dat na elke echte ramp zou moeten doen, om te bepalen wat er fout was gegaan, wat er goed was gegaan, hoe we processen en beslissingen die hadden gefaald konden verbeteren en hoe we de processen en beslissingen die ons hadden beschermd konden behouden. Doorgaans, wanneer er een grote systeemgebeurtenis plaatsvindt, mag ik er niet publiekelijk over praten. Maar af en toe mag ik dat wel. Het is zo gebruikelijk om op een ramp te reageren, op elke ramp, en te denken “ach, hadden we maar….”. Maar je moet de ramp onderzoeken. Er valt zoveel te leren over processen en over onszelf.
Eerst wat achtergrondverhaal. Een kritieke server, draaiend in een enterprise-datacenter, herbergt diverse belangrijke workloads die voor verschillende bedrijven zeer belangrijk zijn. Hij is iets meer dan vier jaar oud en draait al vele jaren geïsoleerd. Oudere servers zijn altijd een beetje zorgwekkend naarmate ze hun einde levensduur naderen. Vier jaar is nauwelijks einde levensduur voor een enterprise-class server, maar hij was zeker ook niet jong meer.
Dit was een enkele server zonder enig failover-mechanisme. Back-ups werden extern afgehandeld naar een enterprise-back-upappliance in hetzelfde datacenter. Een zeer eenvoudig systeemontwerp
Ik zal niet alle interne details opnemen, aangezien elke situatie als deze veel complexiteiten kent in de planning en in de uitvoering. Die kunnen het beste worden overgelaten aan een intern post mortem-proces.
Toen de server uitviel, viel hij op spectaculaire wijze uit. De storing was zo volledig dat we niet in staat waren hem op afstand te diagnosticeren, zelfs niet met de hulp van de technici ter plaatse in het datacenter. Zelfs de serverleverancier was niet in staat het probleem te diagnosticeren. Dit bracht ons in een lastige positie – hoe ga je om met een dode server wanneer de hardware niet betrouwbaar gerepareerd kan worden. We konden schijven vervangen, we konden voedingen vervangen, we konden het moederbord vervangen. Wie wist wat de oplossing zou zijn.
Uiteindelijk was de beslissing dat zowel de server als het back-upsysteem moest worden teruggebracht naar het hoofdkantoor, waar ze persoonlijk en met maximale middelen konden worden getrieerd. Uiteindelijk bleek het systeem gerepareerd te kunnen worden en ging er geen data verloren. De beslissing om af te zien van het overschakelen op de back-up werd genomen omdat dataherstel belangrijker was dan systeembeschikbaarheid.
Toen alles achter de rug was, was de ramp een van de meest complete die men zich kan voorstellen zonder daadwerkelijk dataverlies te ervaren. De storing duurde vele dagen voort en er werden veel reserveonderdelen, manuren en pogingen tot reparatie ingezet. Het proces was uitputtend, maar toen het voltooid was, was het systeem succesvol hersteld.
De lange storing en het gevoel van chaos terwijl zaken werden gediagnosticeerd en reparatiepogingen werden ondernomen, leidden tot een algeheel gevoel van falen. Mensen begonnen het te zeggen en dit leidt ertoe dat mensen het gaan geloven. Onder een noodresponsconditie is het heel gemakkelijk om buitensporig emotioneel te worden, vooral wanneer er zeer weinig slaap te krijgen valt.
Maar toen we een stap terug deden en naar de uiteindelijke uitkomst keken, was wat we aantroffen voor vrijwel iedereen een verrassing: de triageoperatie en de initiële risicoplanning waren succesvol geweest.
De chaos die zich tijdens een triage voordoet, doet de zaken vaak veel erger lijken dan ze in werkelijkheid zijn. Maar onze afhandeling van de triage was voortreffelijk geweest. Triage betekent geen magie en er is een ontdekkingsfase en een reactiefase. Toen we de volgorde van de gebeurtenissen analyseerden en op een tijdlijn uiteenzetten, ontdekten we dat we zo goed hadden gehandeld dat er bijna geen mogelijke plek was waar we het tijdsbestek hadden kunnen inkorten. We hadden een goede diagnose gesteld, de juiste partijen op het juiste moment ingeschakeld, onderdelen zo snel mogelijk logistiek in beweging gezet, en het grootste deel van wat een hectische, verspilde tijd leek, was in werkelijkheid “vultijd” waarin we probeerden te bepalen of er aanvullende opties bestonden of er fouten waren gemaakt terwijl we wachtten op de benodigde onderdelen voor de reparatie. Hierdoor leken de zaken veel erger dan ze in werkelijkheid waren, maar dit alles was de juiste reeks acties om te hebben ondernomen.
Vanuit het oogpunt van triage en herstel was het proces vlekkeloos verlopen, ook al duurde de storing uiteindelijk vele dagen. Zodra de ramp eenmaal had plaatsgevonden, en in de ongelooflijke mate waarin dat gebeurde, verliep het herstel eigenlijk ongelooflijk soepel. Niets is absoluut perfect, maar het ging buitengewoon goed. De machine werkte zoals bedoeld.
Het veel verrassendere deel was het bekijken van de impact van de ramp. Er zijn twee manieren om hiernaar te kijken. De ene is de verstandigere, de “geen achteraf”-aanpak. Hier kijken we naar de ramp, de impactkosten van de ramp, de mitigatiekosten en passen we de waarschijnlijkheid toe dat de ramp zou hebben plaatsgevonden, om te bepalen of de juiste planningsbeslissing was genomen. Dit is moeilijk te berekenen omdat de risicofactor altijd een geschat getal is, maar je kunt normaal gesproken nauwkeurig genoeg komen om te weten hoe goed je planning was. De tweede manier is de aanpak van wijsheid achteraf – wat als we hadden geweten dat deze ramp zou gaan plaatsvinden, wat zouden we hebben gedaan om hem te voorkomen? Het is uiteraard volkomen oneerlijk om de risicofactor weg te nemen en te kijken wat de ramp in ruwe cijfers heeft gekost, omdat we niet kunnen weten wat er mis zal gaan en alleen voor die ene mogelijkheid kunnen plannen of onbeperkt geld kunnen uitgeven voor iets waarvan we niet daadwerkelijk weten of het zal gebeuren. Bedrijven maken vaak de fout om de laatste berekening te gebruiken en planners de schuld te geven dat ze geen perfecte vooruitziende blik hadden.
In dit geval waren we redelijk overtuigd dat we vanaf het begin de juiste gok hadden gewaagd. Het systeem was bijna een decennium lang in gebruik geweest met nul downtime. De totale systeemkosten waren laag geweest, de triagekosten waren gematigd geweest en de gebeurtenis was uiterst onwaarschijnlijk geweest. Dat we, rekening houdend met de risicofactor, een goede planning hadden gemaakt, was voor niemand echt verrassend.
Wat verrassend was, is dat toen we de berekeningen uitvoerden zonder de risicofactor, we zelfs als we hadden geweten dat het systeem zou uitvallen en dat er een langdurige storing zou plaatsvinden, nog steeds dezelfde beslissing zouden hebben genomen! Dit was ronduit schokkend. De kosten van de langdurige storing waren in werkelijkheid lager dan de kosten van de benodigde apparatuur, hosting en arbeid om een functioneel risicomitigatiesysteem te hebben gebouwd – in dit geval zou dat zijn geweest het hebben van een volledig redundante server in het datacenter naast de server die in productie was. In feite had de kostenbesparing door het accepteren van deze langdurige storing bijna tienduizend dollar bespaard!
Dit bleek een extreem geval te zijn waarin de storing verwoestend slecht was, moeilijk te voorspellen, niet snel te repareren en toch resulteerde in enorme kostenbesparingen op de lange termijn, maar de les is een belangrijke. Er komt zoveel emotionele bagage kijken bij elke ramp dat we, als we geen goede post mortem-analyse uitvoeren en niet werken aan het verwijderen van emotionele reacties uit onze besluitvorming, vaak overgaan tot grootschalig financieel verlies of het onterecht toewijzen van schuld, zelfs wanneer de zaken goed zijn verlopen. Veel bedrijven zouden naar deze ramp hebben gekeken en hebben gereageerd door dramatisch te veel uit te geven om te voorkomen dat dezelfde onwaarschijnlijke gebeurtenis zich in de toekomst zou herhalen, zelfs wanneer ze de cijfers voor zich hadden die hun vertelden dat dit geld zou verspillen, zelfs als die gebeurtenis zich wél zou herhalen!
Er waren nog andere lessen te leren uit deze storing. We leerden waar de communicatie niet ideaal was geweest, waar de juiste mensen niet altijd op de juiste plek voor de besluitvorming zaten, waar de communicatie met de klant niet was wat ze had moeten zijn, dat de klant ons niet op de juiste manier over wijzigingen had geïnformeerd, en meer. Maar over het geheel genomen waren de lessen dat we correct hadden gepland, dat onze triageoperatie correct had gewerkt en dat we de klant enkele duizenden dollars hadden bespaard ten opzichte van wat de “conservatieve” aanpak had geleken, en dat we er door een goede post mortem uit te voeren in slaagden om hen, en onszelf, ervan te weerhouden om overdreven te reageren en een goede beslissing te veranderen in een slechte voor de toekomst. Zonder een post mortem hadden we zeer waarschijnlijk onze goede processen kunnen veranderen in de veronderstelling dat het slechte processen waren geweest.
De lessen die ik u, de lezer, hier wil meegeven, zijn dat post mortems een cruciale stap zijn bij elke ramp, dat traditioneel conservatief denken vaak zeer risicovol is, en dat emotionele reacties op risico vaak financiële rampen veroorzaken die groter zijn dan de technische rampen waartegen ze beogen te beschermen.