Ga naar hoofdinhoud Ga naar hoofdnavigatie Ga naar footer
Terug naar overzicht

Hoe Cube wereldwijd piekverkeer mogelijk maakt voor de Just Eat Takeaway Awards.

Wanneer honderdduizenden mensen wereldwijd tegelijkertijd een website bezoeken of stemmen op hun favoriete restaurant tijdens de restaurant awards-competitie van Just Eat Takeaway, kan dat een enorme belasting vormen voor de servers. Voor de organisatie die wereldwijd opereert is het essentieel dat hun website zelfs tijdens deze piekmomenten soepel blijft draaien. Leer hoe onze Cube developers, in samenwerking met Managed Hoster Shock Media, ervoor hebben gezorgd dat de website altijd beschikbaar is, zelfs tijdens piekverkeer.

Afbeelding zonder omschrijving
Auteur Software Architect
Leestijd
3 min
Afbeelding zonder omschrijving

Twee soorten verkeer.

De kern van onze aanpak begint met het onderscheiden van twee soorten verkeer: het opvragen van informatie (zoals het bekijken van de website) en het insturen van informatie (zoals het stemmen op een restaurant). Voor beide verkeersstromen hebben we aparte technieken toegepast, elk specifiek afgestemd op de vereisten van de taak.

Het opvragen van informatie: Cloudflare Pages.

Cloudflare Pages is een krachtig platform voor het hosten van statische websites, waarmee informatie efficiënt kan worden opgeslagen en wereldwijd gedistribueerd. Wanneer een gebruiker de website voor de eerste keer bezoekt, wordt de inhoud door Cloudflare Pages vanuit het dichtstbijzijnde datacenter geleverd. Cloudflare slaat deze inhoud tijdelijk op in hun netwerk van wereldwijde datacenters (caching), waardoor bij volgende bezoeken de content direct vanuit de dichtstbijzijnde locatie kan worden geleverd. Dit vermindert de belasting op de oorspronkelijke server en maakt het mogelijk om grote aantallen gelijktijdige bezoekers te bedienen zonder server overbelasting.

In ons specifieke geval wordt de meest recente versie van de websites beheerd via een CMS en vervolgens opgeslagen bij Cloudflare Pages. Wanneer er een wijziging in de content wordt aangebracht, kan per land een nieuwe versie van de website worden gedeployed. Dit betekent dat de bijgewerkte versie via een API-koppeling naar Cloudflare Pages wordt verzonden en wereldwijd beschikbaar wordt gesteld. Hierdoor hebben gebruikers altijd toegang tot de meest actuele versie van de website, terwijl de belasting op de server minimaal blijft. De wereldwijde aanwezigheid van Cloudflare Pages zorgt bovendien voor een snelle en efficiënte afhandeling van verkeer, ongeacht de locatie van de gebruiker. Dit resulteert in consistente, hoge prestaties en beschikbaarheid van de website over de hele wereld.

Afbeelding zonder omschrijving

Het insturen van informatie met behulp van de Message Queue.

Het insturen van informatie, zoals het stemmen op een restaurant, vereist een andere benadering. Omdat deze informatie uniek is voor elke gebruiker en niet gecached kan worden, hebben we gekozen voor een systeem gebaseerd op een Message Queue. Dit systeem werkt als een buffer tussen de gebruiker en de verwerking van de stemmen. Wanneer iemand zijn stem uitbrengt, wordt deze stem als een bericht in de wachtrij geplaatst. Het unieke aan de Message Queue is de schaalbaarheid. Deze wachtrij kan honderdduizenden, zelfs miljoenen berichten tegelijk verwerken door ze op te slaan en op een gecontroleerd tempo af te handelen. Dit betekent dat zelfs bij een enorme piek in het aantal stemmen, de website blijft functioneren en elke stem uiteindelijk verwerkt wordt.

De Message Queue werkt door een geordende wachtrij van berichten te beheren. Elke stem wordt als een gestructureerd object in de wachtrij geplaatst, compleet met meta-informatie. Een achtergrondproces leest deze wachtrij en verwerkt de berichten in batches, afhankelijk van de beschikbare verwerkingscapaciteit. Dit systeem zorgt ervoor dat de verwerking van stemmen zeer flexibel is en aanpasbaar aan de hoeveelheid binnenkomende gegevens

Als er een piek in het aantal stemmen is, zoals bijvoorbeeld tijdens de laatste dagen van de competitie, worden de stemmen tijdelijk opgeslagen in de wachtrij. Deze wachtrij fungeert als een buffer, waardoor de website niet overbelast raakt en de server continu operationeel blijft. Het afhandelen van de wachtrij gebeurt op een gestage manier, waarbij de beschikbare middelen worden ingezet om de stemmen efficiënt te verwerken, zonder de algehele prestaties van de website te beïnvloeden.

Weergeven van dynamische informatie met ElasticSearch

Naast Cloudflare Pages en Message Queue maken we ook gebruik van ElasticSearch voor het dynamisch tonen van content, zoals de genomineerde restaurants. ElasticSearch stelt ons in staat om grote hoeveelheden data snel en efficiënt door te zoeken en te filteren, wat essentieel is voor een soepele gebruikerservaring. Dit betekent dat gebruikers snel en gemakkelijk de informatie kunnen vinden die ze zoeken, zelfs tijdens drukke periodes.

Om de prestaties van ElasticSearch te optimaliseren, zetten we meerdere ElasticSearch-instanties in en gebruiken we een load balancer. De load balancer verdeeld inkomende zoek verzoeken gelijkmatig over deze verschillende instanties. Hierdoor wordt de belasting gelijkmatig verdeeld, waardoor elke instantie niet overbelast raakt en de zoekresultaten snel blijven. Dit zorgt ervoor dat de website betrouwbaar blijft functioneren, zelfs bij een hoog aantal gelijktijdige zoekopdrachten.

Afbeelding zonder omschrijving

Samenwerking met Shock Media.

Om ervoor te zorgen dat CloudFlare en de infrastructuur altijd beschikbaar en bereikbaar is werken we samen met Managed Hosting provider Shock Media. Een belangrijk aspect van onze samenwerking met Shock Media is het benchmarken en stresstesten van onze infrastructuur. Samen met hun team simuleren we de verwachte belasting op de servers, waarbij we precies in kaart brengen hoe de servers zich gedragen onder verschillende omstandigheden. Dit stelt ons in staat om te anticiperen op mogelijke knelpunten en om tijdig de benodigde aanpassingen door te voeren. Op basis van de resultaten van deze simulaties voert Shock Media en/of Cube verschillende optimalisaties en tweakings door, zodat de infrastructuur optimaal presteert. Zodra deze testfase succesvol is afgerond en Cube het groene licht heeft gegeven, zijn we klaar voor de livegang.

Shock Media blijft dan voortdurend bezig met het optimaliseren van de prestaties. Zij beheren niet alleen de Cloudflare-oplossing, maar ook andere belangrijke aspecten van onze infrastructuur, zoals de servers die de Message Queue en ElasticSearch beheren. Shock Media speelt een essentiële rol in het garanderen van de continue beschikbaarheid van de website door het bieden van 24/7 monitoring en ondersteuning. Hun expertise in het beheer van Cloudflare zorgt ervoor dat de caching en beveiliging altijd op peil zijn. Bovendien beheren zij de infrastructuur voor Message Queue en ElasticSearch, wat betekent dat we kunnen rekenen op een betrouwbare verwerking van stemmen en een snelle dataweergave.

Door het combineren van slimme wereldwijde caching via Cloudflare, schaalbare verwerking van stemmen met de Message Queue, en efficiënte dataweergave met ElasticSearch, heeft Cube een oplossing gecreëerd die Just Eat Takeaway de zekerheid biedt dat hun website zelfs tijdens de drukste momenten blijft functioneren. Met deze aanpak kunnen honderdduizenden gebruikers zonder problemen informatie opvragen en stemmen, terwijl de belasting op de servers tot een minimum wordt beperkt.

Afbeelding zonder omschrijving

Klaar voor de volgende stap? Wij ook.

Jouw uitdaging, onze expertise. Samen creëren we de beste oplossing – laten we kennismaken.

Dit sluit mooi aan..