De opdracht: Voor een bedrijf met 1 miljoen klanten een landkaart met informatie tonen. Qua capaciteit is het even opletten bij het serveren van de kaarten aan zoveel gebruikers.

Onze oplossing bestaat uit een platform met virtuele servers en loadbalancing.

Onze klant heeft al een aantal servers bij ons hangen, maar nu hadden ze wat nieuws. Zij moeten een kaart aan hun gebruikers (ongeveer 1 miljoen) laten zien met informatie. Zij zijn sterk in het creëren van dergelijke kaarten, maar ze voorzagen problemen in het serveren van die kaarten aan zoveel gebruikers.

De oplossing

De opzet op dat moment was een enkel uitgevoerde mapserver die de kaarten genereerde. Er werd wel caching toegepast zodat de kaarten niet telkens gegenereerd hoefden te worden, maar toch.. Een enkele server die zoveel requests zou moeten verwerken, dat zou een probleem gaan worden.

Tuxis heeft vier virtuele servers en loadbalancing geleverd. Twee van de vier machines (VPS Small) zouden fungeren als webserver, de andere twee (VPS Large) als databaseserver voor de zoekopdrachten die de bezoekers konden uitvoeren. Loadbalancing moet ervoor zorgen dat HTTP- en HTTPS-verkeer probleemloos over de twee machines verdeelt wordt en dat er -als dat nodig is- nog snel een derde, vierde of vijfde machine bijgeplaatst kon worden.

Alle machines zijn geconfigureerd met Puppet, dus wij kunnen ervan uit gaan dat de twee clusters 100% identiek geconfigureerd zijn. Daarnaast houdt Tuxis Monitoring precies bij hoe zwaar de machines belast worden en of de diensten allemaal nog functioneren. Een complete oplossing dus zonder investering in hardware of software!

De vuurdoop

Op woensdag 5 juni 2014 is de mailing de deur uitgedaan om de gebruikers te informeren en dat was de aankondiging waarop we wachtten. Langzaam maar zeker kwamen er meer bezoekers op de site, en meer en meer kaarten werden opgevraagd.

Tussen 12.00 en 13.00 uur werden er gemiddeld ongeveer 5 hits per seconde veroorzaakt door de bezoekers. Tussen 15.00 en 16.00 uur waren dat er al 110 per seconde. Tot de piek uiteindelijk kwam tussen 20.00 en 21.00 uur: 212 hits per seconde kreeg het kaartenplatform te verwerken en die hits werden ook geregistreerd door een statistieken server. 424 hits per seconde in totaal voor het volledige platform.

De techniek

Hoe krijgen we het voor elkaar om met twee cores en twee GB geheugen 212 hits per seconde te verwerken? nginx. nginx gecombineerd met TileCache, om precies te zijn. De TileCache, wat draait in een Fcgi-setup, was in staat om die plaatjes met zo’n hoge snelheid uit te sturen, terwijl het op de achtergrond plaatjes opvroeg die het nog niet in de cache had staan.

Olb (een door Tuxis gemaakte schil om Keepalived) zorgde ervoor dat de twee machines gelijk belast werden en dat bezoekers altijd uitkwamen op een webserver die functioneerde. Dat laatste is niet nodig gebleken, geen van de twee webservers heeft ook maar een seconde dienst geweigerd.

De statistieken

Maar hoe komen we op al die cijfers? Piwik en Observium leveren ons die. Tuxis levert hosted oplossingen voor zowel Piwik als Observium en die hebben we gebruikt. Observium heeft iedere vijf minuten verse grafieken gemaakt over de belasting van alle servers, terwijl Piwik iedere hit die de bezoekers veroorzaakten onthield, om er uiteindelijk heel interessante bezoekersstatistieken uit de destilleren. Met al deze gegevens hebben wij precies uiteen kunnen zetten hoe de belasting van de servers ten opzichte van het aantal bezoekers zich verhoudt en of er nog verbeterpunten zijn.

Nog vragen?

 

LiveZilla Live Chat Software