Aparte kamers

Applicatiebeheer — deel 9

Een rustige maandag, een verhaal over hoe je test en echt uit elkaar houdt in hetzelfde gebouw, en iets wat Joost altijd al wist over deuren.

Concepts

Maandag was het rustig, en daar was Joost dankbaar voor.

De slechte versie van vrijdag bleek een domme fout, eentje die in het licht van de maandagochtend bijna grappig was. Yara had het uitgezocht, ze had het hem laten zien, en samen hadden ze gelachen om hoe klein het was geweest, dat ene dingetje dat een hele vrijdagavond had kunnen verzieken. Ze rolden de gerepareerde versie uit, rustig, kopie voor kopie, en deze keer deugde hij wel.

Daarna was er ruimte. Ravi kwam langs Joosts bureau, niet met haast, en ging op de rand zitten.

"Ik wil je iets laten zien wat je rustig vindt," zei hij. "Geen brand vandaag. Gewoon een stuk huishouding waar jij je thuis bij gaat voelen."

"Ik luister."

Ravi wees naar het scherm, waar het cluster in een overzicht stond. "Vrijdag ging er iets live wat niet deugde. Yara dacht dat ze een veilige bugfix uitrolde. Maar de vraag die ik me stelde was: hoe kon ze dat niet eerst ergens proberen? Ergens waar het geen kwaad kon als het misging?"

Joost dacht na. "Een testomgeving."

"Een testomgeving. En heb jij die gehad, vroeger?"

Joost lachte kort. "Natuurlijk. Ik had testservers en ik had de echte servers. Dat hield ik streng gescheiden. Een testmachine kon je laten ontploffen, daar leerde je van, geen mens die er last van had. De echte machines kwam je met ander gereedschap, met andere handen bijna. Daar deed je niks zomaar." Hij schudde zijn hoofd. "Het ergste wat er kon gebeuren was dat iemand de twee door elkaar haalde. Dat iemand dacht dat hij op test bezig was terwijl hij op de echte boel stond. Dan ging het pas echt fout."

"En hoe hield je ze uit elkaar?"

"Verschillende machines. Andere namen. Andere kleur op het scherm soms, dat had ik zelf ingesteld, zodat ik in één oogopslag zag waar ik was. Rood voor de echte boel. Dan keek je twee keer voordat je iets deed." Hij haalde zijn schouders op. "Het was niet hightech. Het was een muur tussen test en echt, met de hand opgetrokken. Maar hij stond er."

Ravi knikte. "Dan ga je dit meteen snappen. Want het systeem heeft daar een manier voor, en hij heet aparte kamers."

"Aparte kamers."

"Stel je het cluster voor als één groot gebouw. Eén gebouw, veel machines, allemaal achter elkaar. En in dat ene gebouw draait van alles. De echte Spelveld waar de mensen op spelen. Een testversie waar Yara haar dingen op probeert. De meet-apparatuur die alles in de gaten houdt. Een hoekje voor een ander team." Ravi tekende met zijn vinger denkbeeldige vakken op het scherm. "Als je dat allemaal in één grote ruimte gooit, op één hoop, zonder ordening, dan krijg je precies de ellende die jij beschreef. Iemand denkt dat hij iets in de testhoek pakt, maar het was de echte. Twee dingen die toevallig dezelfde naam hebben botsen op elkaar. Het wordt een rommel."

"Dus je deelt het op," zei Joost.

"Je deelt het op. Je verdeelt het ene gebouw in aparte kamers. Een kamer voor de echte Spelveld. Een aparte kamer voor de test. Een aparte kamer voor de meet-apparatuur. Allemaal in hetzelfde gebouw, op dezelfde machines, maar elk met een eigen naambordje op de deur." Hij hief even een vinger. "En let op het woord. Het zijn aparte kamers, niet aparte gebouwen. Dat verschil komt zo nog terug, want het is belangrijker dan je denkt."

Joost keek naar de denkbeeldige vakken. "En in elke kamer mag dezelfde naam bestaan zonder dat het botst?"

Ravi keek hem even aan. "Dat is precies de goeie vraag. Ja. In de kamer test mag iets Spelveld heten, en in de kamer echt mag óók iets Spelveld heten, en die twee bijten elkaar niet. Het zijn aparte kamers. Net zoals in een kantoorgebouw op de tweede verdieping een prullenbak bij de deur staat, en op de derde ook, en niemand die in de war raakt. Het is de prullenbak van die kamer. Niet dezelfde."

"Dat scheelt." Joost dacht terug aan een oude ellende. "Ik heb weleens een nacht verloren omdat twee dingen op verschillende machines dezelfde naam hadden en iemand ze door elkaar haalde in een script. Als ik ze gewoon in aparte kamers had kunnen zetten, met hetzelfde gemak, was dat nooit gebeurd."

"Goed dat je dat zegt," zei Ravi. "Want hier moet ik eerlijk zijn, anders krijg je een verkeerd beeld. Het naambordje op de deur regelt twee dingen, en het is belangrijk welke twee. Eén: namen botsen niet meer, dat zag je net. Twee, en dat is het echte slot: je bepaalt per kamer wie er iets mag. In de testkamer mag iedereen rommelen. In de kamer met de echte Spelveld mogen maar een paar mensen iets veranderen. Net zoals jij rood op je scherm zette voor de echte machines, kun je hier een echte grendel op de deur zetten. Niet alleen een waarschuwing aan jezelf, maar een slot dat ook de vermoeide collega om drie uur 's nachts tegenhoudt."

Daar zat Joost even mee. Want dat was meer dan hij vroeger had gehad. Zijn rode scherm was een waarschuwing geweest, niets meer. Een oplettende collega zag het, een vermoeide niet. Een echt slot op de deur, dat hield ook de vermoeide tegen.

"Maar nu het ding waar je niet in moet trappen," ging Ravi verder, en hij keek Joost recht aan. "Een kamer scheidt namen en rechten. Hij scheidt niet vanzelf het verkeer. Denk niet dat wat er in de testkamer gebeurt automatisch binnen die kamer blijft. De kamers zitten in hetzelfde gebouw, en standaard kunnen ze gewoon met elkaar praten. De testkamer kan in principe de echte kamer aanspreken, dwars door het bordje heen. Het bordje houdt geen verkeer tegen."

Joost fronste. "Dus de muur die ik in mijn hoofd had, die staat er niet."

"Niet voor het verkeer, nee. Niet vanzelf. Als je wilt dat de testkamer en de echte kamer elkaar echt niet kunnen aanspreken, moet je dat apart afdwingen. Een aparte afscherming die zegt: dit verkeer mag wel, dat niet. Dat is werk dat je er bovenop doet. De kamer geeft je het zoeken zonder gedoe en het slot op wie-mag-wat, maar de afscherming van het verkeer regel je los." Ravi haalde zijn schouders op. "Ik vertel je dat liever nu. Ik heb mensen zien denken dat een aparte kamer betekent dat een ongeluk in test nooit bij echt kan komen, en dat is precies het soort aanname waar je een nacht aan verliest."

Joost knikte traag. Dat luchtte op, op een rare manier. Hij had het zelf nooit anders gehad. Zijn testservers en echte servers konden ook gewoon bij elkaar als je niets deed. Pas als je er een echte scheiding tussen legde, een aparte kabel, een firewall, hielden ze elkaar buiten. Het was niet anders. Het was eerlijk.

"Er is nog iets," zei Ravi, "een tweede regel die je per kamer kunt zetten, en die ga jij waarderen. Je kunt per kamer afspreken hoeveel die mag pakken. Hoeveel rekenkracht, hoeveel geheugen. Een plafond. Zo kan de testkamer niet zoveel opslokken dat er voor de echte Spelveld niks overblijft."

Joost ging rechtop zitten. "Dát ken ik. Dat is het ergste wat er is. Een of ander testproces dat op hol slaat en de hele machine leegtrekt, en ineens hapert de echte boel ook, omdat ze op hetzelfde ijzer draaiden. Daar heb ik nachten aan verloren."

"Dan snap je waarom dit fijn is. Je geeft de testkamer een plafond. Slaat er iets op hol, dan loopt het tegen dat plafond aan en houdt het daar op. De echte kamer merkt er niks van, want die heeft zijn eigen ruimte gereserveerd." Ravi wees naar de denkbeeldige vakken. "Dat is het tweede wat een kamer je geeft, naast het slot op de deur. Een eigen portie van het gebouw."

"Dus de testkamer kan de echte kamer niet leegeten," zei Joost, het hardop nalopend.

"Niet als je het plafond goed zet."

Joost knikte, en hij liep het nog eens hardop na. "Dus de testkamer en de echte kamer staan in hetzelfde gebouw, op dezelfde machines. Verschillende namen mogen, dat botst niet. Wie wat mag, regel je per kamer met een slot. En je geeft elke kamer een eigen portie, zodat de een de ander niet leegtrekt. Maar of ze met elkaar praten, dat moet ik los afschermen, want vanzelf gaat dat niet."

"Precies," zei Ravi. "Je hebt het beter dan de meeste mensen die er voor het eerst van horen. En als Yara vrijdag haar nieuwe versie eerst in zo'n testkamer had geprobeerd, met een eigen portie..."

Yara, die was meegelopen en achter hen was blijven staan, zei: "Ja, dat zit me ook dwars sinds vrijdag. Ik had het eerst in de testkamer moeten doen. Dat ga ik vanaf nu altijd doen."

Joost draaide zich half om. "Dat is precies hoe ik het deed. Nooit iets nieuws meteen op de echte boel. Eerst op test, en pas als test het deed, ging het naar echt." Hij zei het zonder verwijt, gewoon als een feit dat ze nu deelden. "Het is een van de oudste regels die er is. Jullie hebben er alleen mooiere kamers voor dan ik vroeger had."

Yara glimlachte. "Jij had rood scherm."

"Ik had rood scherm." Hij grinnikte. "En een mapje met de datum erop. Ik was een man van eenvoudige middelen."

Ravi stond op van de rand van het bureau. "Dat is het eigenlijk voor vandaag. Geen drama. Aparte kamers in hetzelfde gebouw. Een voor test, een voor echt, een voor wat je verder wilt scheiden. Geen botsende namen meer, een slot op wie wat mag, en een eigen portie per kamer." Hij pakte een appel van het bureau en woog hem in zijn hand. "Het verkeer tussen de kamers afschermen is een apart klusje, dat onthoud je. Maar dit, de ordening zelf, is gewoon goede huishouding. En goede huishouding scheelt je de halve ellende waar je vroeger je nachten aan verloor."

Joost knikte. Het was waar. Het waren niet de spectaculaire dingen die de meeste nachten hadden gekost. Het waren de domme dingen. De verwarringen. De twee servers die dezelfde naam hadden. De test die per ongeluk op echt stond. Het testding dat de hele machine leegtrok. Dat soort dingen, en die werden hier opgeruimd met naambordjes, sloten en een eigen portie per kamer.

Hij werkte die middag rustig door. En aan het eind, voordat hij naar huis ging, keek hij nog even naar het overzicht van het cluster, naar de aparte vakken die Ravi met zijn vinger had aangewezen. Echt. Test. Meten. Allemaal in hetzelfde gebouw, netjes uit elkaar.

Het deed hem denken aan het ketelhuis, vreemd genoeg. Aan Bertha, die er niet meer was. Hij had daar ook alles in zijn hoofd gehad, welk programma waar stond, wat je wel en niet door elkaar mocht halen. Het had alleen in zijn hoofd gezeten en in een paar zelfgemaakte trucjes. Hier zat het in het systeem zelf, met echte sloten en eigen porties en bordjes die niet konden botsen. Het was niet zo dat zijn oude manier verkeerd was geweest. Het was alleen met de hand wat hier voor een groot deel vanzelf ging.

Hij reed naar huis. Het was nog licht. Mirjam vroeg hoe zijn dag was geweest, en hij zei: rustig. En voor het eerst sinds weken klonk dat woord niet als opluchting na een storm, maar gewoon als wat het was. Een rustige maandag.