NoSQL in een CDN

Wanneer we een nieuwe CDN SuperPoP ontwikkelen of onze infrastructuur op een andere manier verbeteren, doen we dat met schaalbaarheid in het achterhoofd. We hebben immers niet ‘gewoon’ een CDN gecreëerd. Ons CDN is gebouwd om de strijd aan te gaan met de grootste spelers in de markt.

We mikken dan ook op grote volumes: we hebben een halve Terabit bandbreedtecapaciteit gereserveerd voor streaming, en we gebruiken ongeveer 1500 SSDs, elk met een halve Terabyte capaciteit. Hierdoor kunnen we honderdduizenden aanvragen per seconde behandelen. de verwerking van big data is een van de belangrijkste kenmerken van ons CDN-product geworden. Maar dat brengt een nadeel met zich mee. Want hoe weten we wie wat doet op onze CDN-nodes?

We zouden de klanten kunnen scheiden met behulp van virtualisatie en de accounting baseren op de interface counters (bij voorkeur op de hypervisors). Maar dat doen we niet, voornamelijk vanwege de verwachte I/O overhead.

In plaats daarvan hebben we gekozen voor loganalyses op de toegangslogs. Een bijkomend voordeel daarvan is dat we hiermee ook CDN-dataverkeerstatistieken kunnen verzamelen. Dat levert onder meer informatie op over browserversies, soorten apparaten, en populaire URL’s. Ons dashboard kan deze cijfers in real-time weergeven (met maximaal vijf minuten vertraging). Dat betekent dat de logregels vrijwel direct van de logs naar de database stromen en dat de Hadoop-aggregatietaken continu uitgevoerd worden. De geaggregeerde data wordt opgeslagen, en is vervolgens toegankelijk via ons CDN control panel, waarmee we de data in real time kunnen bekijken en interactief filteren op diverse variabelen.

Momenteel werken we met 15 database servers die samenwerken als één gedistribueerde database. Op deze servers draait geen relationele ACID compliant database zoals MySQL. We gebruiken Cassandra om over een schaalbare NoSQL key-value data store te beschikken. Op die data voeren we constant aggregatiejobs uit om de real-time data te berekenen die we op ons control panel weergeven.


Maurits van der Schee is Innovation Engineer CDN bij LeaseWeb.

Dit artikel verscheen begin april (in het Engels) op de blog van LeaseWeb en is met toestemming van de auteur op ISP Today gepubliceerd.

Over Maurits van der Schee

Laatste artikelen