Website gered door caching

Bij de lancering van de nieuwe website over Spaanse Wijnen heeft La Buena Vida veel reclame gemaakt. Ze stuurden onder meer onweerstaanbare promoties uit naar een publiek van meer dan 12000 lezers. Tijdens zo'n bezoekerspiek zagen we dat de webserver het zwaar kreeg. Pagina's begonnen trager te laden tot er zelfs een time-out optrad en de website tijdelijk onbeschikbaar was. 

In de bovenstaande grafiek kan je zien dat de laadtijd van een pagina steeds trager werd, naarmate er meer simultane bezoekers waren tijdens een promo-mailing. Na enige tijd werd de webserver unresponsive en kregen de bezoekers een time-out te zien. De laadtijd van pagina's liep op tot 120 seconden.

We hebben toen met ons team van ontwikkelaars drie mogelijke oplossingen naar voren geschoven:

Nieuwsbrieven spreiden in de tijd

Een eerste optie was om de nieuwsbrieven te spreiden in de tijd. Zo zou men elk uur 1000 nieuwsbrieven kunnen sturen in plaats van ineens naar de 12.000 ontvangers te sturen.  Het nadeel van deze optie was dat de eerste 1000 ontvangers sterk bevoordeeld zouden zijn bij een promotie-verkoop. Immers iedereen wil wel als eerste ingaan op een koopje met een beperkte voorraad, maar tegen dat de laatste zijn bericht in de inbox ontvangt zou de promotie al afgelopen zijn. Deze oplossing hebben we niet gekozen.

Zwaardere webserver

De tweede, en meest voor de hand liggende oplossing zou zijn om een zwaardere webserver te huren. Echter bij deze oplossing hoort een ander nadeel: onze klant La Buena Vida zou maandelijks meer moeten betalen voor een zwaardere hosting, terwijl de bezoekerspieken zich slechts 2 keer per week voordoen (tijdens het uitsturen van de promoties). Daarom werd deze oplossing ook niet weerhouden.

Doorgedreven caching inbouwen

En wij zouden niet Analyz-it zijn, moesten we niet verder zoeken naar een goedkopere en meer definitieve oplossing. Dat is de derde optie geworden: De programmatiecode aanpassen om een doorgedreven caching-mechanisme in te bouwen.

Om het in niet-technische termen te zeggen: we hebben een methode ontwikkeld waarbij de gegevens van de getoonde wijnen (vb prijs, voorraad, foto's, etc...) al op voorhand uitgerekend zijn, in tegenstelling tot het real-time berekenen van gegevens voor elke bezoeker en elke pagina apart. Vooraf berekende gegevens bewaren in het geheugen - de cache - geeft een enorme snelheidswinst bij veel website bezoekers. Want in plaats dat de webserver steeds trager wordt door meer berekeningen van meer bezoekers, blijft deze nu even snel. Alle berekeningen zijn immers op voorhand gebeurd.

Er zijn ook nadelen verbonden aan het werken met een caching systeem. Er bestaat namelijk een gevaar dat als je elke keer aan de database vraagt om te kijken of er iets veranderd is, dat je gegevens op de website dan verouderd zouden kunnen zijn. Zo zou je een wijn kunnen zien die al lang uitverkocht is. Om dat te vermijden gaan we bij la Buena Vida elke 5 minuten checken of er gegevens veranderd zijn in de database. Dus de gegevens die je ziet worden uiterlijk elke 5 minuten vernieuwd. En tenslotte doen we nog een éénmalige controle in het winkelmandje, zodat niemand een wijn kan bestellen die uitverkocht zou zijn.

Conclusie: een veel snellere website, ook bij extreem veel bezoekers.

na de implementatie van caching is de website nu supersnel met laadtijden tussen de 0,3 en 1 seconde. Ook tijdens de enorme bezoekerspieken blijft deze snel en performant, met een maximale wachttijd van enkele seconden, als de gevraagde data nog niet in de servercache zit.

Links:
Uitleg over het project: lees meer »
De website van La Buena Vida, specialist in Spaanse Wijnen: bekijk hier »

Je digitale doelstellingen in een stroomversnelling brengen?

Contacteer ons nu voor een vrijblijvend gesprek.


Neem vrijblijvend contact