Alles wat je moet weten over een CDN

Een Content Delivery Network (CDN) is een netwerk van servers verspreid over verschillende datacenters in de wereld. Een CDN maakt het mogelijk om een website of webapplicatie wereldwijd aan te bieden en te ontwikkelen. Wanneer je aangesloten bent bij een dergelijk netwerk, zorgt je webserver er automatisch voor dat je ook met een aantal andere servers verbonden wordt. Met behulp van een distributiesysteem wordt de statische content van een webserver overgebracht naar de server die het zal verwerken, ook wel replicaserver genoemd. Wanneer gebruikers bepaalde gegevens van de website opvragen, zal een request-routingsysteem bepalen welke server in het CDN het meest geschikt is voor de overdracht van de gegevens. Het aantal servers en de verdeling ervan is afhankelijk van de CDN provider, evenals de integratie van een krachtig backbone-netwerk.


Content Delivery Network

Zo verloopt de overdracht van gegevens in het CDN

Gebruikers merken tijdens het surfen niet of de gegevens die ze opvragen rechtstreeks van de oorspronkelijke server komen, of van de replicaserver; dit proces speelt zich namelijk op de achtergrond in het CDN af. Het enige dat de gebruiker zal merken, is de korte laadtijd van de opgevraagde gegevens.

De twee belangrijkste componenten met betrekking tot het CDN proces zijn het verdelings-/ distributiesysteem en het request-routingsysteem. Het distributiesysteem zorgt er niet alleen voor dat de content wordt overgedragen aan de replicaserver, maar ook voor de actualiteit en de correctheid ervan. Dit kan op twee manieren: het distributiecentrum verzendt de nieuwe en geüpdatete gegevens direct aan alle servers van het CDN, of er wordt alleen een bericht gestuurd aan de replicaserver en vermeld dat de actuele gegevens beschikbaar zijn. Indien nodig kunnen deze opgevraagd worden.


De passende replicaserver in het CDN vinden

De passende replicaserver in het CDN vinden

De eerste stap is het vinden van de server die het beste het verzoek van de gebruiker kan beantwoorden. Hiervoor richt het request-routingsysteem zich op specifieke prestatie-indicatoren, die door verschillende meetmethoden bepaald worden. De verschillende prestatie-indicatoren geven bijvoorbeeld aan of het om een verbinding gaat vanaf de browser van de client (client-side) of vanaf de webserver (server-side). Aan de hand van de gemeten waarden van de server-side, waartoe het algemene CPU-gebruik of het aantal actieve verzoeken op de server behoren, wordt de replicaserver met de laagste belasting gekozen. Op basis van de eigenschappen van de verbinding tussen client en server bepaalt het request-routingsysteem van de server de beste verbinding met de client. De factoren die in acht genomen worden, zijn onder meer de latentieperiode, de gemiddelde overdrachtssnelheid, de pakketverliezen en ook de geografische ligging. De prestatie-indicatoren aan de kant van de client bieden informatie over de identiteit van gebruikers die de aanvraag doen. Deze gegevens worden door het systeem gebruikt, wanneer de geleverde kwaliteit voor bijvoorbeeld standaard en premium klanten van elkaar afwijkt. De weging van de verschillende prestatie-indicatoren is bovendien afhankelijk van de opgevraagde gegevens. Zo zal bij dynamisch gegenereerde content eerder een server met goede prestatie-indicatoren nodig zijn, terwijl een stabiele verbinding tussen client en server het beste is bij gebruik van streamingmedia.


Doorsturen van het verzoek

Doorsturen van het verzoek

Wanneer de doelserver in het Content Delivery Network is bepaald, zal het request-routingsysteem het verzoek doorsturen; dit is stap twee in het proces. Voor deze zogenoemde “request redirection” zijn verschillende methoden, die vooral afhankelijk zijn van de plaats waar de request redirection in gang wordt gezet; bij de client, op het netwerk of op de replicaserver.

Het doorsturen van het verzoek van de client is een eenvoudig te implementeren methode, waarbij de client een lijst aan replicaservers gepresenteerd krijgt waaruit gekozen kan worden. Dit heeft echter als nadeel dat het Content Delivery Network maar weinig invloed heeft op de toewijzing. Ook de HTTP-302-redirection aan de server-side is gemakkelijk te implementeren en bevat bovendien goede informatie over het CDN. De uitgaande server antwoordt in dit geval op het verzoek met de HTTP-statuscode en deelt zo de juiste replicaserver mee aan de client, die deze vervolgens automatisch contacteert. Het grootste nadeel van deze methode is de verdubbeling van de benodigde verbindingen.

De meest gebruikte doorstuurmethode is de DNS-gebaseerde request-routing. Bij deze methode wordt het verzoek van de client aan een lokale DNS-server naar een speciale DNS-server binnen het Content Delivery Network doorgestuurd. Deze antwoordt hier op zijn beurt weer op met het IP-adres van een replicaserver. Het grootste nadeel van deze methode is dat door het herhaaldelijk opzoeken van gegevens in het domeinnaamsysteem, de toegang vertraagd wordt.


Voordelen van een CDN

Welke voordelen biedt een CDN?

Doordat de servers van een Content Delivery Network wereldwijd verspreid zijn, profiteren clients van snelle laadtijden en een lager gebruik van de bandbreedte. Maar ook websitebeheerders profiteren met een Content Delivery Network van aanzienlijke voordelen. Door het doorsturen van verzoeken wordt namelijk niet alleen de belasting op de webservers geminimaliseerd, maar ook de veiligheid van cachegegevens verhoogd. Dit komt omdat aanvallen, zoals bijvoorbeeld DDoS-aanvallen, de uitgaande server niet bereiken. Hiervoor is het overigens wel vereist dat gevoelige gegevens, zoals gebruikersgegevens en wachtwoorden, niet in het CDN terecht komen. Deze gegevens kunnen potentiële aanvallen verhogen, maar ook gegevensconflicten veroorzaken. Verder is het aan te raden om een eigen domein voor de uitgegeven CDN-inhoud toe te wijzen. Op deze manier wordt verspreiding van mogelijke aanvallen op andere websites voorkomen. Onderstaande lijst vat de voordelen van een CDN samen:

  • Statische elementen zoals HTML-sites, afbeeldingen, stylesheets, documenten of client-side scripting worden in de cache van de replicaserver tijdelijk opgeslagen en hoeven niet meer door de webserver opgevraagd te worden. Hierdoor wordt de server beschermd en zijn kortere laadtijden voor de gebruikers gegarandeerd. De websitebeheerder profiteert zo van een lage bounce rate en goede zoekmachineresultaten.
  • De servers worden verminderd belast en door de betrokken toepassingen beschermd tegen overbelasting en eventuele schade of storing. Dit heeft op zijn beurt weer een positief effect op de hardware die nodig is voor hosting.
  • Websitebeheerders kunnen zelf bepalen welke statische elementen in het Content Delivery Network moeten laden. Als bijvoorbeeld alleen de afbeeldingen van een weblog worden uitbesteed, dan kunnen deze parallel met de rest van het blog worden geladen, waardoor de website in zijn geheel sneller laadt.
  • Vooral bij video- en muziekstreams profiteren websites van CDN’s omdat hier in korte tijd grote hoeveelheden gegevens overgedragen moeten worden; dit geldt ook voor live-uitzendingen op het internet.
  • Bezoekerspieken en stijgende gebruikersaantallen worden door middel van een CDN gemakkelijk verwerkt. Vooral bij bestanden die kunnen worden gedownload, of bij een webshop, loont het om het request-routingsysteem te laten zoeken naar replicaservers met weinig belasting.
  • Een CDN server reduceert niet alleen de laadtijden, maar vermindert ook het gebruik van de bandbreedte die gekoppeld is aan het opvragen van content.
  • De beveiliging van de server, en dus ook de gegevens en de gebruikte toepassingen, wordt door gebruik van een CDN verhoogt; aanvallen kunnen namelijk vroegtijdig geïdentificeerd en voorkomen worden.