Skip to content Skip to sidebar Skip to footer

Stabiliteit van online diensten vereist specifieke keuzes

Komt het goed online na uitgevallen te zijn? Als je er niet expliciet voor ontwerpt dan waarschijnlijk niet.

Halverwege de 90er jaren werkte ik met zowel HP als DEC workstations. Er was een interessant verschil als die opstartten Alle harddisks van de HPs begonnen meteen te draaien, terwijl je in de DEC computer elke harddisk apart op hoorde starten met een whoosh en een klik. HP werd gemaakt door ingenieurs die ervan uitgingen dat de stroom er altijd was. DEC door mensen die wisten dat de stroom ook uit kon vallen en dat als je een kudde van deze workstations had, je niet meteen het volle stroomverbruik wil hebben wanneer de stroom terug komt, die valt dan mogelijk meteen weer uit.

Toen ik bij Ziggo werkte aan een nieuw klanten email systeem, hielden we er rekening mee dat als het systeem tijdens het avondeten uitviel en weer opgestart moest worden, dat het zsm, en zeker die avond nog, moest kunnen werken.

We hebben beleefd afgeslagen toen de leverancier van de opslag aanbood om hun systeem sneller te maken met RAM caches. Die caches zijn nutteloos net na de opstart omdat ze dan nog leeg zijn. Als het mailsysteem daarop zou vertrouwen voor zijn snelheid, dan kan je het niet opstarten op die avond zonder meteen overbelast te raken. Opstart kon dan alleen op een rustig moment, dus in de volgende nacht…

Een collega architect heeft een aantal weken in het lab van de leverancier gekampeerd om te kijken welke configuratie van harddisks en SSDs 𝘸𝘦𝘭 goed genoeg werkte voor onze toepassing. Aangezien dit in 2012 was en we voor vele petabytes aan opslag gingen kopen, was het een significante investering die je goed wilde hebben.

Of het nu gaat over stroomverbruik, opslag, bandbreedte, netwerkverbruik, rekenkracht of welke gedeelde bron dan ook, wat gebeurt er als deze uitvalt en weer terugkomt. Elke generatie techneuten en elke technologie blijkt deze les opnieuw te moeten leren.

Vandaag de dag zijn clouddiensten fragiel. Als je jouw dienst al hebt voorbereid op dit scenario, is je cloud infra provider goed opgezet? Denk daarbij aan de recente outages bij AWS en Cloudflare of (mobiele) internetproviders.

Als je cloud goed is, zijn je clients wel zo netjes om een random tijd te wachten met verbinden met jouw dienst? Of komen ze allemaal op hetzelfde moment binnen, en dan 30 seconden later weer etc, waardoor je nooit goed op kan starten?

Je kan verbonden systemen niet stukje voor stukje maken, je moet het hele systeem overzien, end-to-end. Dat overzicht komt niet vanzelf.

Maar mensen hebben het vaak al druk genoeg met hun eigen stukje. Als je niet het hele systeem end-to-end kan bezien, ga je gegarandeerd de mist in. Je systeem komt niet elegant en snel weer beschikbaar, misschien niet elegant, misschien helemaal niet.

Je moet altijd denken aan het totaalplaatje, als je niemand hebt die dat in diens hoofd kan passen, vindt zo iemand! Suggestie, DM me 😉

Leave a comment