De klok

Applicatiebeheer — deel 10

Werk dat één keer moet gebeuren, en werk dat op een vast tijdstip terugkomt. Dit is het hoofdstuk waar Joost thuiskomt in de nieuwe wereld, want dit kende hij allang.

Concepts

Het was dinsdag toen Hassan bij Joosts bureau kwam staan met een papiertje in zijn hand, en Joost wist meteen dat dit iets voor hem was.

"De back-up van Spelveld, het spelplatform," zei Hassan. "Die draaide vroeger op een van de oude machines, automatisch, elke nacht. Sinds de verhuizing doet iemand het met de hand. En die iemand vergeet het de helft van de tijd. Kun jij dat oplossen?"

Joost keek naar het papiertje. Een back-up, elke nacht, automatisch.

En hij voelde iets wat hij in geen weken had gevoeld. Niet de prik van angst. Niet het zoeken naar grond onder zijn voeten. Iets wat bijna op trots leek. Want hij wist dit. Dit was zíjn werk. Dit was wat hij twintig jaar lang had gedaan, voordat iemand het woord container ooit tegen hem had gezegd.

"Een nachtelijke back-up," zei hij. "Elke nacht op een vast tijdstip. Dat is een cron."

Ravi, die net langsliep met zijn mok, bleef staan. "Zeg dat nog eens."

"Een cron." Joost zei het zonder twijfel. "Dat woord ken ik. Dat ken ik beter dan jullie het kennen, durf ik te wedden. Een cron is een klok in de machine die op vaste tijden iets aanzet. Elke nacht om twee uur. Elke maandagochtend. Elke kwartier. Ik heb er honderden geschreven. De helft van wat er op mijn servers automatisch gebeurde, gebeurde door een cron die ik ergens in een lijstje had gezet."

Ravi leunde tegen het bureau en sloeg zijn armen over elkaar. "Vertel mij dan maar hoe het werkt. Ik luister."

Joost merkte dat hij rechtop ging zitten. "Goed. Twee dingen. Eerst het simpele." Hij hield een vinger op. "Soms heb je werk dat één keer moet gebeuren en dan klaar is. Niet voor altijd draaien, zoals het spelplatform. Eén keer doen, klaar melden, stoppen. Een back-up die je nu meteen even wilt draaien. Of dat ene script dat alle oude scores omzet naar een nieuw formaat, dat hoeft maar één keer."

"En dat is anders dan het spelplatform," zei Ravi, hem aanmoedigend.

"Heel anders. Het spelplatform moet de hele dag overeind staan. Als het omvalt, zet de waakhond het weer overeind, want het hoort te draaien." Joost schudde zijn hoofd. "Maar werk dat één keer moet gebeuren, dat wil je niet zo. Stel je voor dat je een schoonmaker inhuurt voor één klus. Hij komt, hij doet het werk, hij gaat weg. Als je hem behandelt zoals het spelplatform, dan zou de waakhond hem na afloop steeds weer naar binnen sturen. Klaar? Nee, terug naar binnen. Weer klaar? Terug naar binnen. Eindeloos. Dat is fout. Voor eenmalig werk wil je iets dat zichzelf als klaar mag melden en dan met rust gelaten wordt."

"En hoe heet zoiets, denk je?"

"Geen idee hoe jullie het noemen. Bij mij was het gewoon een script dat ik draaide en dat afliep." Joost haalde zijn schouders op. "Een opdracht. Doe dit, en als het af is, ben je klaar."

"Wij noemen het een Job," zei Yara, die was komen luisteren. "En je hebt het precies goed. Eenmalig werk. Het draait, het meldt klaar, het stopt. En het systeem weet het verschil: het probeert een Job niet eindeloos overeind te houden zoals het spelplatform. Een afgeronde Job mag afgerond blijven."

"Een Job," herhaalde Joost. Hij proefde het woord. "Goed. Een opdracht die één keer loopt en dan klaar is. Dat is het simpele deel."

"En het tweede deel?" vroeg Ravi.

"Het tweede deel is de klok eromheen." Joost wees naar het papiertje van Hassan. "Want die back-up moet niet één keer. Die moet elke nacht. En dáárvoor heb je de cron. Je neemt zo'n opdracht, die eenmalige Job, en je hangt er een wekker aan. Je zegt: doe dit elke nacht om twee uur. En dan gaat de wekker elke nacht om twee uur af, en elke keer maakt het systeem vanzelf een nieuwe opdracht aan die de back-up draait. Jij hoeft er niks meer voor te doen. Je zet de wekker één keer en dan loopt het."

"Dat," zei Ravi, "heet bij ons een CronJob. Met precies die naam. Een Job, met een wekker eraan."

Joost lachte hardop. "Een CronJob. Jullie hebben er gewoon het woord cron in laten zitten."

"Natuurlijk. Het idee is hetzelfde als wat jij twintig jaar deed. Wij hebben het alleen in het systeem gestopt, zodat de wekker niet op één machine staat die kan omvallen, maar in het cluster zelf zit." Ravi nam een slok. "Als de machine waar jouw cron op stond 's nachts omviel, ging je back-up niet door, en dat wist je pas de volgende ochtend. Hier zit de wekker niet vast aan één machine. Valt er eentje om, dan gaat de wekker ergens anders af. De back-up draait toch."

Dat raakte iets, want het was waar. Joost herinnerde zich precies dat soort ochtenden. Wakker worden, koffie, en dan de ontdekking dat de nachtelijke back-up niet was gelopen omdat de machine waar de cron op stond een storing had gehad. En dan kon je een nacht aan gegevens kwijt zijn. Dat was elke keer een kleine schok geweest.

"Dus de wekker zelf kan niet omvallen," zei hij.

"De wekker zelf is zo goed als onverwoestbaar. Hij leeft in het cluster, niet op een machine. Dat is het enige echt nieuwe voor jou. De rest, de cron, de tijden, het idee dat je werk op een schema zet, dat ken je al."

Joost leunde achterover. En hij keek naar het papiertje, naar Hassan die er nog stond, naar Yara, naar Ravi, en hij voelde iets verschuiven dat groter was dan deze ene back-up.

Want hij telde het, ineens, in zijn hoofd. Alles van de afgelopen weken. Een container was een proces, dat had hij de eerste dag al gekend zonder het te weten. De bevroren foto, dat was zijn eigen gevecht met *het werkt wel op mijn machine*. De waakhond die dingen overeind houdt, dat was wat hij om drie uur 's nachts met de hand had gedaan. De wens beschrijven in plaats van de stappen typen, de kopieën, de naamkaartjes die hij al twintig jaar op zijn manier opplakte, het rustig terugrollen van een slechte versie, de aparte kamers voor test en echt. En nu de cron, die hij beter kende dan wie ook aan deze tafel.

Het was niet zo dat hij een nieuwe wereld had geleerd. Dat had hij de eerste week gedacht, in het donker naar het plafond, met die ene angst die maar niet wegging. *Wat als ik het niet meer leer.* Maar zo was het niet gegaan. Hij had niet zozeer een nieuwe wereld geleerd als wel de oude teruggevonden, in een ander jasje. Telkens was het iets gebleken wat hij al kon, netter gemaakt, in het systeem gestopt, zodat het niet meer in zijn hoofd hoefde te zitten en niet meer om drie uur 's nachts met de hand hoefde.

"Je bent stil," zei Ravi.

"Ik zat te tellen," zei Joost. "Hoeveel van dit alles ik eigenlijk al kende."

Ravi keek hem aan, en deze keer was zijn glimlach niet droog. "Dat is het hele punt geweest," zei hij. "Vanaf de eerste dag. Ik kwam je niks bijspijkeren. Ik kwam je iets laten zien wat je al kon, je wist het alleen nog niet. Weet je nog dat ik dat zei?"

"Bij mijn bureau. De eerste ochtend." Joost knikte langzaam. "Ik dacht dat het een praatje was om me gerust te stellen."

"Het was geen praatje."

Yara schoof haar stoel iets bij. "Toen ik in die eerste vergadering zat," zei ze, en ze keek even ongemakkelijk, "zei ik iets over de oude garde. Dat het even wennen zou zijn. Dat had ik niet moeten zeggen." Ze haalde haar schouders op. "Ik dacht dat dit allemaal nieuw voor je was. Maar de helft van wat ik weet, weet ik omdat slimme mensen het ooit hebben opgeschreven nadat ze het met de hand hadden gedaan. Mensen zoals jij. Ik kreeg het cadeau, al af. Jij hebt het zelf moeten uitvinden, in het donker, met een pieper in je zak."

Het bleef even stil aan tafel. Joost wist niet goed wat hij moest zeggen, dus hij zei: "Nou. Zullen we die back-up dan maar regelen."

En dat deden ze. Het kostte minder tijd dan het papiertje had gekost om te schrijven. Een opdracht voor de back-up, een wekker eraan op elke nacht, en klaar. De wekker stond, in het cluster, waar geen omvallende machine hem kon stilzetten.

Hassan keek mee toen het stond. "Dus dat draait nu vanzelf? Elke nacht?"

"Elke nacht," zei Joost. "En je hoeft er nooit meer aan te denken."

Hassan knikte, pakte zijn papiertje terug, en streepte er met een pen één regel op door. "Mooi werk," zei hij, en hij meende het, en hij liep weg.

Joost bleef nog even zitten. Er kwam nog van alles, dat wist hij. Ravi had het laten vallen, terloops: hoe het verkeer precies zijn weg vond door het gebouw, en wat er gebeurde met gegevens die bewaard moesten blijven als een kopie omviel. Daar had hij nog geen beeld bij. Dat zou nog komen, en het zou vast weer even wennen zijn op de plekken waar het echt nieuw was.

Maar de angst van de eerste week was weg. Hij ging niet onder in deze wereld. Hij hoorde er gewoon in thuis, op een plek die hij niet had verwacht: niet als de man die werd ingehaald, maar als iemand die iets meebracht.

Hij reed naar huis terwijl het nog licht was. Mirjam zat aan tafel toen hij binnenkwam, en ze keek op, en ze zag iets aan hem.

"Goeie dag gehad?"

"Een back-up geregeld," zei hij. "Eentje die elke nacht vanzelf loopt. Daar zal niemand meer 's nachts voor wakker worden."

Mirjam glimlachte, en ze draaide haar hand om op tafel, met de palm naar boven. Joost legde de zijne erin. Buiten was het nog niet donker.