Vier strategieën om pieken in het websiteverkeer op te vangen
Je verstuurt een nieuwsbrief, je website komt op televisie, je houdt een grootschalig live evenement of jouw website is dé plek voor informatie over COVID-19. Zulke gebeurtenissen kunnen zorgen voor een plotselinge piek in het aantal websitebezoeken, met alle gevolgen van dien. Zo was rijksoverheid.nl een uur niet of slecht bereikbaar na een persconferentie. Hoe ga je om met piekbelasting?

Wanneer mensen je website bezoeken wil je er alles aan doen om ze aan je te binden, vertrouwen te winnen en ze te helpen bij hun hun vraag of behoefte. Wanneer veel mensen tegelijk je website bezoeken, kan dit zorgen voor een trage laadtijd, een foutmelding of een storing waardoor je website compleet uit de lucht is. Dit zorgt voor behoorlijk wat irritaties en staat een positieve ervaring onnodig in de weg. Tijd voor een oplossing voor piekbelasting!
Binnen Intracto realiseren we vaak websites met hoge bezoekersaantallen. Expert Raymond Muilwijk vertelt over onze strategieën om websites, ongeacht het aantal bezoekers, goed te laten functioneren.
Een druk bezochte content website met een CMS
Wanneer je een CMS gebruikt, doorloopt je website bij het laden van de pagina altijd een aantal stappen: de server aanroepen, de pagina opbouwen en de content laden. Wanneer veel mensen tegelijk je website bezoeken kan dit voor de nodige problemen zorgen. Een HTTP-accelerator zoals Varnish biedt uitkomst. Deze maakt een kopie van de pagina en slaat deze op in het geheugen (cache). Bij het aanroepen van de pagina ontvangt de bezoeker direct de kopie van de pagina. Breng je wijzigingen aan op de pagina? Dan maakt het systeem een nieuwe kopie. Deze techniek kan voor alle websites met een CMS worden ingezet en heeft een positief effect op de laadtijd.
Een goede case waar we deze techniek inzetten is Drupal voor Gemeenten. Bij een regionale crisis of calamiteit kan de website van de gemeente een belangrijke rol spelen voor de burgers. Het is dan cruciaal dat de website blijft draaien. Voor alle websites van Drupal voor Gemeenten met de crisis-functionaliteit, zetten we Varnish in. Ook bij VREG, de energiewaakhond in België, zetten we deze techniek in. Wanneer VREG in het nieuws komt, stijgt het aantal bezoekers explosief: tot wel 100 keer hoger dan normaal.

Interactieve elementen in een website
Wanneer je website interactieve componenten bevat, bijvoorbeeld een rekentool, quiz of test, kost dit extra rekenkracht voor de server. De applicatie haalt data op meerdere plekken op, bewerkt deze data en zet het om in HTML. Normaal gebeurt dit allemaal op je server, waardoor deze bij pieken overbelast kan raken. Wanneer je regelmatig veel bezoekers op je website hebt, is het verstandig om de logica (het bewerken en omzetten van data) deels in de browser van je bezoeker uit te voeren. De server stuurt dan een opdracht naar de browser en dat scheelt rekenkracht voor de server. Als bezoeker merk je hier overigens niets van.
Een goede case waar we dit hebben gedaan is Alzheimer Nederland. Deze stichting zet zich in voor een toekomst zonder dementie. We hebben een online geheugentest ontwikkeld die inzicht geeft in de mate van vergeetachtigheid bij jezelf of een ander.

Alzheimer Nederland komt vaak op televisie, bijvoorbeeld bij talkshows of in een speciale show rondom dementie. Op zulke momenten zien we een piek op de website en het aantal mensen die de geheugentest maken. Voorheen draaide de applicatie volledig op de server waardoor deze bij enorme drukte uit de lucht ging. Intracto heeft de applicatie omgebouwd met een zogenaamde javascript framework (Vue) waarmee een deel van de logica in de browser van de bezoeker wordt uitgevoerd. In combinatie met HTTP-accelerator kunnen nu duizenden mensen tegelijk de geheugentest maken. Deze progressively decoupled aanpak kan bij bestaande websites worden doorgevoerd.
Een headless aanpak
Gaat je website, of onderdelen hiervan, op termijn schalen? Of gaan andere apps, websites of intranet intensief gebruikmaken van data? Dan ligt een headless aanpak voor de hand. Bij een headless CMS zijn de frontend (design) en backend (content) van je website losgekoppeld. Zo zijn ontwikkelaars niet meer afhankelijk van de beperkingen van het CMS en kan de editor content gemakkelijk blijven toevoegen en aanpassen via het CMS. Met deze aanpak zendt de API de content naar de browser. Het design wordt grotendeels via de browser opgebouwd. Zo kan je website veel meer afhandelen in dezelfde tijd.
Eén van onze klanten kon door COVID-19 geen live event op een grote beurs organiseren. Met een headless aanpak bouwden we een online platform waar tot 3.000 mensen tegelijk het interactieve online launch event konden bijwonen. Het evenement was een groot succes.
Een headless aanpak biedt vele mogelijkheden. Zo passen we vaak static site generation toe die de gehele website opslaat en ontsluit via een zogenaamde CDN waarbij de redacteur de content kan bewerken in het headless CMS. Een CDN is een wereldwijd netwerk van servers en datacenters die content zo snel mogelijk bij de bezoeker aanbiedt. Zo weet je zeker dat je website wereldwijd duizenden bezoekers tegelijk aan kan. Veel cloud leveranciers en partijen zoals Cloudflare bieden een CDN.
Wanneer het om een enterprise content website gaat of om een applicatie is het ook interessant om deze te bouwen volgens MACH-architectuur (Microservices, API-first, Cloud-native SaaS en Headless). Hierbij bouwen we deelapplicaties die afzonderlijk geschaald kunnen worden, met een eigen strategie per deelapplicatie.
Op en afschalen van resources
Met voorgaande strategieën vang je met dezelfde hosting/hardware veel extra bezoekers op. Maar welke architectuur je ook kiest, je zult op een gegeven moment altijd tegen de limieten aanlopen. Om de piek af te handelen kun je meerdere servers afnemen. Dit kan op klassieke VPS hosting met een loadbalancer met meerdere servers. Nadeel is dat je altijd betaalt voor de maximale piek die je wilt afhandelen.
Wanneer het verschil in piek en normale belasting erg groot is, maken wij gebruik van auto scaling in de cloud. Veel cloud leveranciers zoals AWS, Azure en Google bieden deze functionaliteit aan. Hierbij wordt in de gaten gehouden hoe druk een server is en zodra deze een bepaalde waarde bereikt komt er automatisch een zelfde server bij. Zodra het weer rustig is wordt er weer een server weggehaald.
Een klant waar we niet verder konden optimaliseren in de architectuur in verband met te veel logins en transacties is het high-end fashion platform winkelstraat.nl. Voor webwinkels zijn er cruciale campagnes zoals Black Friday. Op zulke momenten kun je met een combinatie van cloud-technologie en goede voorspellingen toch zorgen voor optimale performance. Voor kritische momenten in piekbelasting zijn virtuele wachtrijen een optie.
Een andere klant waar we periodiek resources schalen is Basispoort; een portal voor 1.600.000 basisschoolleerlingen. Bij de start van het schooljaar loggen veel meer leerlingen in omdat alle accounts dan worden ingericht. In deze periode zetten we tijdelijk een zwaardere database instance in waardoor deze wel tien keer beter presteert.

Application load testing (stress test)
Wanneer je applicatie ontwikkeld is, wil je valideren of je de verwachte bezoekersstroom aan kan. Hierbij simuleren we via een test tool de verwachte bezoekersstromen op je website. Het is uiteraard eenvoudiger om duizend mensen de homepage te laten bezoeken dan dat ze ook allemaal te laten inloggen of wat in hun winkelmandje te laten zetten. Dit vraagt een heel andere rekenkracht van je website of applicatie.
Bij het opzetten van de test gaan we als volgt te werk:
- In onze samenwerking spreken we af aan welke non-functional requirements we moeten voldoen. De ISO 25010 norm geeft handvatten over performance en betrouwbaarheidseisen.
- Onze marketeers en data analisten halen uit Google Analytics informatie op over de meest gevolgde scenario’s. Is deze data er nog niet? Dan bepalen we samen met jou de meest verwachte scenario’s.
- In onze test tool programmeren wij de scenario’s.
- De test tool simuleert de bezoekersstroom waarbij we de grens opzoeken van de pieken.
- Tijdens de test monitoren we de applicatie en servers om te kijken om eventuele problemen in kaart te brengen.
- De test is geslaagd als de applicatie en servers geen problemen geven. Als dat wel het geval is, bekijken we hoe we deze problemen kunnen oplossen.
Je kunt de test tool kan op elk moment herhalen, of zelfs automatisch bij wijzigingen. Zo weet je zeker dat je website altijd werkt.
Test je website via een performance audit
De performance van je website, waar de snelheid een cruciale rol in speelt, is super belangrijk. Er bestaat een direct verband tussen de performance van je website en de conversie. Ook Google neemt in 2021 de performance van je website mee in je ranking. Het optimaliseren van je piekbelasting loont dus ook op deze vlakken!
Een website of applicatie kan vaak op meerdere manieren geoptimaliseerd worden om de piekbelasting op te vangen. Ben je benieuwd hoe jouw website ervoor staat en wil je weten hoe je je website kunt verbeteren? Vraag dan een performance audit aan. In deze audit kijken we bijvoorbeeld naar:
- Het verplaatsen van cache naar Memcache/Redis;
- Het inzetten van Cloudflare voor CDN, Rate limiting en DDOS preventie;
- Lighthouse / Google Pagespeed;
- Trage queries naar de database;
- Rekenkracht intensieve code door middel van tracking zoals Blackfire.
Server monitoring: inzicht in je website performance
Heb je je website of applicatie op de juiste manier ontwikkeld en de verwachte bezoekersstroom gevalideerd? Wanneer je bezoekers toch anders te werken blijken te gaan of op een andere manier binnenkomen, kan dit toch nog voor problemen zorgen. Daarom is het belangrijk om je website continu te monitoren, zodat je tijdig kunt ingrijpen. Met website performance monitoring volgen onze experts de servers, database, user scenario tests en responstijden van je website. Zo ben je er zeker van eventuele problemen snel worden opgepakt.
Continuous application performance monitoring
Wil jij echt zeker zijn van de snelheid van je website? Dan is het mogelijk om te werken met application performance monitoring. Hierbij wordt tooling ingericht waarmee voor elke bezoeker tot op code niveau trage plekken worden geïdentificeerd zodat het ontwikkel team dit kan verbeteren.
Wil je meer weten over snelle, betrouwbare websites?
Kan je website de pieken lastig of niet aan? Wil jij er zeker van zijn dat je website altijd goed en snel werkt, ongeacht het aantal websitebezoekers? Onze software architecten denken graag mee over je website.
Wil je meer weten over snelle, betrouwbare websites?
Kan je website de pieken lastig of niet aan? Wil jij er zeker van zijn dat je website altijd goed en snel werkt, ongeacht het aantal websitebezoekers? Onze software architecten denken graag mee over je website.