11. De ultieme GO

Publicatie: 19/05/2024

Dit is een vrij uitgebreid vervolg op het vorige verhaal.

Van in het begin bij dit project had ik duidelijk gemaakt dat mijn allereerste doel was om heel de boel op z’n minst stabiel
te krijgen, maar dat daarvoor was het noodzakelijk om drastische maatregelen te treffen. Het was zeer verrassend vast te stellen dat er 0,0% (zero comma zero procent !) documentatie bestond. Er waren wel heel veel scripts, maar met uiteenlopende versies, en totaal onoverzichtelijk.

Niet alleen was dit één gigantische puzzel, maar de spectaculaire groei van het bedrijf bleef maar aanhouden. Eigenlijk was men buildings aan het bouwen op moerasgrond. 

Zeker dat eerste jaar heb ik letterlijk zwarte sneeuw gezien, maar ik was er wel in geslaagd om bij de eerstvolgende jaarwisseling de boel overeind te houden, tot ieders enorme opluchting. In de loop van mijn tweede jaar heb ik nog een massa werk uitgevoerd om de nodige stabiliteit te verzekeren, zodat iedereen op z’n oren kon slapen.

Ook de daaropvolgende jaarwisseling zijn er we er zonder kleerscheuren vanaf gekomen. Met als resultaat dat ik vanaf dan zo goed als carte blanche kreeg. Maar het was overduidelijk dat de bestaande infrastructuur al lang op z’n tandvlees zat, en er werd koortsachtig gewerkt om een gans nieuw systeem op poten te zetten.

Als ik spreek over meer dan 300 IT-mensen die bijkomend ingeschakeld werden, kan men zich wel inbeelden welk gigantisch budget men er tegenaan smeet. Maar de drang om snel tot een goede oplossing te komen bleek meermaals op een fiasco uit te draaien. Met als uiteindelijk gevolg dat de ingebruikname van de nieuwe applicatie en structuur … 20 (twintig !) maanden vertraging opliep, met verstrekkende gevolgen. Niet alleen rezen de kosten spectaculair de pan uit, maar ook de bestaande omgeving (waarbij ik verantwoordelijk was voor de ganse database infrastructuur) bleef maar verder groeien.

Zoals ik keer op keer hebben moeten vaststellen bij grote werkzaamheden, maakt zowat elk bedrijf keer op keer dezelfde zware inschattingsfout, namelijk het parallel werken tijdens de overgangsfase.

Laat me het voorbeeld nemen van de brug van Vilvoorde, die gebouwd werd van 1974 tot 1978, met een lengte van 1.700 meter, een hoogte van 35 meter en op 22 rijen pijlers rust. De constructie bestaat uit een combinatie van beton en staal, maar er diende zich een grootschalige renovatie aan. De totaaltijd zal … 8 (acht !) jaar in beslag nemen, dus bijna het dubbele van de oorspronkelijke bouw. En daar zit nu het grote dilemma: mocht je de brug volledig kunnen afsluiten tijdens de werken dan zouden die slechts mogelijk maar één jaar duren. Maar dan ligt half België plat gedurende al die tijd, wat dus in de verste verte geen optie kan zijn.

Een van de grote gevolgen was dat men een slechte inschatting had gemaakt inzake de infrastructuur, met name de omvang van de servers. 

Daarbij kwam ook nog dat er géén ruimte was om het hoogstnoodzakelijke onderhoud uit te voeren. Even ter verduidelijking: GEEN ENKEL bedrijf hanteert een 100% availability. De hoogste availability bestaat uit de beruchte (en zéér dure) ‘five nines’, oftewel 99,999%, wat betekent dat er op één jaar tijd 5,5 minuten downtime is. Zelfs dàt was mij, als databasebeheerder, niet gegund.

En ondertussen bleven de data massaal van alle kanten binnenstromen. Met heel veel moeite heb ik middelen moeten uitvinden om het zwaar beladen schip door hevige stormen toch veilig in de haven te krijgen (amai, even mijn poëtische kant bovengehaald).

De  overstap naar het nieuwe systeem werd steeds maar uitgesteld, vooral omdat zowel de functionaliteit als de stabiliteit zwaar onderschat werd. Uiteindelijk was het zowel structureel als financieel niet meer verantwoord om nog langer te wachten. Donderdag 23 augustus 2018 om 20u00 werd de ultieme datum.
 
De actieve database bevatte 6 tabellen van enkele miljarden (!) records en een volledige backup duurde gemiddeld zo’n 20 uur. Zo’n backup kan in delen gerestored worden, maar elk deel is afhankelijk van het vorige. Gedurende enkele maanden had ik meerdere testen uitgevoerd om er 100% zeker van te zijn dat alles volgens plan kon verlopen.
 
De allerbelangrijkste stap is de checksum die helemaal op het einde bevestigt dat àlle data correct gerestored zijn. En het is heel simpel: ofwel is het correct, ofwel niét, m.a.w. zou alles (alweer) uitgesteld moeten worden. Bij alle tests liep die checksum tussen de 8 à 11 minuten. 
 
Eindelijk brak de grote dag aan, en letterlijk alle ogen waren gericht op ondergetekende. Ik had wel duidelijk gewaarschuwd dat ik NIEMAND in mijn buurt wou, om mij 100% te kunnen concentreren. En dan wordt het aftellen naar 20u00, met het besef dat er ruim 300 mensen zitten te wachten op mijn signaal.
 
20u00: de laatste partiële restore is een feit, en nu maar wachten op de checksum. 20u05, … 20u10, … 20u15, … 20u20, … 20u25, … 20u30, … Niet alleen begonnen er meer en meer vragen te rijzen, maar ook de zenuwen begonnen zich op te stapelen. Soms zag ik een hoofd achter de deur verschijnen, maar dat werd zeer kordaat teruggewezen. It was out of my hands, en het enige wat ik kon doen was afwachten en … keep cool. Spannend ? Wrééééd spannend !!!
 
Om 20u37 (!!!) kwam uiteindelijk het verlossende signaal en kon ik de langverwachte bevestiging rondsturen. Kort daarna hoorde ik langs verschillende kanten een stevige ‘yes !’ galmen. Zelden zo’n opluchting meegemaakt.
 

In principe was mijn taak zo goed als afgelopen, maar de IT-verantwoordelijke wou dat ik aanbleef als databasebeheerder tot aan mijn pensioen, ruim 9 maand later. In die laatste periode heb ik gemiddeld zo’n 2 minuten per dag moeten werken aan het opkuisen en doorsturen van mails. De rest werd ingevuld met YouTube, muziek en lectuur.