Iedereen weet wat een website is. Vrijwel elk bedrijf heeft er een. Maar verrassend weinig bedrijven weten wat je moet doen als het ineens druk wordt.
Vandaag wil ik het daarom eens hebben over schalen. Dat kan opschalen of afschalen zijn. Als een website veel bezocht wordt, kan het nodig zijn om de computer waarop die website draait sneller of krachtiger te maken. Zo'n computer noemen we een server. En servers kunnen het te druk krijgen. Dat is gewoon een feit.
De meeste website-eigenaren merken hier weinig van. De server die ze huren is vaak krachtig genoeg voor het aantal bezoekers dat de site heeft. Maar soms wordt een website ineens heel populair, of gaat het om een dienst waarbij drukte ineens flink kan oplopen. Denk bijvoorbeeld aan ticketverkoop, of video-on-demand. Dan kan het gebeuren dat de server het allemaal niet meer bijhoudt. En wat doe je dan?
Is het wel te druk?
De eerste stap is om vast te stellen of de problemen echt door drukte komen. Als een website traag is of foutmeldingen geeft, hoeft dat niet altijd aan de hoeveelheid bezoekers te liggen. Maar als dat wel zo is, dan kun je dat vaak zien aan de zogenaamde “load average”. Dat is een reeks van drie getallen die aangeven hoe zwaar de server het heeft gehad: in de afgelopen minuut, de afgelopen vijf minuten en de afgelopen vijftien minuten.
Nog beter is het om deze gegevens op te slaan en in een grafiek te zetten. Dan kun je precies zien wanneer het druk is, bijvoorbeeld elke avond of tijdens kantooruren. Als blijkt dat de server structureel te zwaar belast is, of regelmatig pieken ervaart, is het tijd om iets te doen. Zodat alle bezoekers een prettige ervaring blijven houden.
Verticaal schalen
Maar wat doe je dan? De meest voor de hand liggende oplossing is om de server sneller te maken. Dat heet in vaktermen “verticaal schalen”. Je kunt bijvoorbeeld het werkgeheugen (RAM) uitbreiden, een snellere processor (CPU) kiezen, of overstappen op een snellere hardeschijf (zoals een SSD). Dat kan soms al voldoende zijn.
Maar bij grotere diensten is dat niet altijd genoeg. En dan? Daar houd het voor veel mensen de kennis op. Toch is er wel degelijk een oplossing. Grote bekende platforms, die dagelijks miljoenen mensen bedienen, kunnen het immers ook aan. Maar hoe dan?
Horizontaal schalen
Dan kom je bij wat we “horizontaal schalen” noemen. Dat betekent: gebruikmaken van meerdere servers. Een simpel voorbeeld is om een server in de VS te hebben en een tweede in Europa. Door middel van DNS-routing kan bepaald worden naar welke server een bezoeker wordt gestuurd, meestal op basis van locatie.
Je kunt dit verder uitbreiden, met meerdere servers per regio. Als het echt druk wordt, kom je al snel bij iets wat we een “CDN” noemen, een Content Delivery Network. Dat is een netwerk van servers over de hele wereld, die allemaal een kopie van dezelfde data bevatten. Bezoekers krijgen de content dan geleverd vanaf de server die het dichtst bij hen staat.
Uitdagingen bij schalen
Maar hier begint het pas interessant te worden, want horizontaal schalen brengt z’n eigen uitdagingen met zich mee. Denk bijvoorbeeld aan gebruikersaccounts. Als je een account aanmaakt op de server in Europa, weet een server in Zuid-Amerika daar nog niets van. Daar moet dus een oplossing voor zijn. Zodat je altijd toegang hebt tot je account, ongeacht welke server je bedient.
Kortom, horizontaal schalen is een vak apart. Alleen daarover kun je boeken vol schrijven. Maar het is mogelijk, en het wordt dagelijks toegepast door grote partijen. Het is zelfs noodzakelijk als je echt succes hebt. Dus mocht je een aanhoudende piek in bezoekers krijgen en weet je niet hoe je het bij moet benen, verdiep je dan eens in horizontaal schalen, of laat je hierover adviseren.
Succes moet je vieren, niet afremmen.