Magento Development Magento E-commerce

SpikePerformance module voor de beste performance tijdens een piekmoment

Black Friday, Kerst, een nieuwsbrief of een zomeropruiming. Wanneer er op jouw webshop een actie plaatsvindt, kan het erg druk worden. Dat is natuurlijk precies wat je wilt! Maar zo’n piekmoment kan ook negatieve gevolgen hebben voor de laadtijd van jouw webshop. Om deze problemen voor te zijn, hebben wij onze SpikePerformance module ontwikkeld.

Wat is de SpikePerformance module?

De HYPR SpikePerformance module is een lichtgewicht module en is volledig ontwikkeld om de belasting op de server te minimaliseren bij piekmomenten, zoals tijdens Black Friday.

Op zo’n druk moment gebeurt er heel veel op jouw webshop. Naast de vele bezoekers die een bestelling plaatsen, vinden er ook verschillende achtergrondprocessen plaats. Al deze processen bij elkaar kunnen invloed hebben op de snelheid van jouw webshop. Met de SpikePerformance module zorg je ervoor dat tijdens de piekmomenten aanpassingen tijdelijk worden tegengehouden en de server load minder wordt.

Pro’s

  • Geen stress meer tijdens drukke acties;
  • Een optimale gebruikerservaring tijdens topdrukte;
  • Minder belasting voor jouw server tijdens acties met veel bezoekers;
  • Geen mogelijkheid om per ongeluk caches te legen (ja, we zien dit nog regelmatig gebeuren);
  • Gemakkelijk instelbaar via de backend; aan- en uitzetten wanneer jij wilt.

Con’s

  • Wanneer jouw producten uit voorraad gaan, worden deze nog wel in de categorie getoont en is de winkelwagen button er nog wel. Bestellen is echter niet meer mogelijk, dus je verkoopt nooit onterecht.

Wat is cache?

Cache is een opslagplek waar tijdelijk gegevens worden bewaard om een pagina van jouw webshop sneller te laden. Wanneer je een wijziging aan bijvoorbeeld een product of een categorie doorvoert, wordt de opslag van deze pagina geleegd. De eerste bezoeker die op deze pagina komt, zal hierdoor langer moeten wachten totdat deze pagina geladen is. Is deze pagina inmiddels opgeslagen in de cache van jouw webshop? Dan kan deze pagina direct ingeladen worden zonder de server aan te roepen. Dit scheelt aanzienlijk veel tijd en belasting.

Wanneer je een Magento webshop hebt is het aan te raden om Varnish cache te gebruiken. Varnish is een applicatie op jouw webserver die de pagina’s opslaat. Varnish is als het ware de ’tussenlaag’ tussen de bezoeker en jouw webserver. Vraagt jouw bezoeker een pagina op welke al in de opslag aanwezig is, dan zal Varnish deze direct teruggeven aan de bezoeker zonder de webserver aan te roepen. Dit scheelt een aanzienlijke load voor jouw server en geeft de pagina zeer snel terug. Alles voor een goede gebruikservaring!

Om deze reden wil je meteen de SpikePerformance module gebruiken

Zoals we ook al eerder benoemd hebben, kan het tijdens een actie erg druk worden op jouw webshop. Hoe drukker het wordt, hoe meer de server belast wordt. De server wordt belast omdat veel mensen de pagina’s bezoeken die daarom opgevraagd worden (bij de server). Een gevolg hiervan is dat de draaiende processen op de server langer kunnen duren. Denk hierbij aan het uitvoeren van cron taken, het plaatsen van een bestelling of het afhandelen van een bestelling.

Hoe meer deze belasting toeneemt, hoe minder snel deze processen afgerond kunnen worden. Zeker tijdens een actie als Black Friday, kan dit in hoog tempo toenemen. Het kan zelfs zo druk zijn op jouw server dat bepaalde processen in een wachtrij worden gezet, en daarmee niet meteen uitgevoerd kunnen worden. Dit zorgt voor langere laadtijden, en langere laadtijden binnen jouw webshop zorgen weer voor een slechtere gebruikservaring.

“Een klant wil graag een product toevoegen in de winkelwagen. Omdat het Black Friday is, wil deze graag gebruik maken van de mooie actie. Doordat het druk is op de website en de server een hoge load heeft, duurt het toevoegen van een product veel langer dan normaal. Dit kan ervoor zorgen dat de klant afhaakt en zijn bestelling niet afmaakt.”

Om ervoor te zorgen dat je zoveel mogelijk bezoekers een pagina uit de opslag (Varnish cache) kunt geven, is het belangrijk dat deze opslag niet continu geleegd wordt. Het legen van de opslag kan je zelf handmatig uitvoeren via de Magento backend, echter raden wij dit niet aan. Daarnaast gebeurt het ook automatisch. Dit kan bijvoorbeeld op de volgende momenten zijn:

  • Je maakt een wijziging aan een CMS pagina;
  • Je past een product attribuut aan;
  • Je update via een mass-update meerdere producten tegelijk;
  • Jouw leverancier importeert automatisch voorraden in jouw webshop.

Op al deze momenten vindt er een zogenaamde ‘cache invalidation’ plaats. Een cache invalidation wil zeggen dat de opgeslagen versie bij bijvoorbeeld jouw product niet meer geldig is. “Er is een wijziging geweest, dus de opgeslagen data klopt niet meer.” Deze pagina zal hiermee dus verwijderd worden uit de opslag. Gebeurt dit op een piekmoment, dan loopt de server compleet vol en schiet de load van jouw server door het dak. Dat is niet ideaal tijdens een goed lopende en drukke actie! 

Om tijdens deze piekmomenten bestand te zijn hebben wij de SpikePerformance module ontwikkeld.

Maar… hoe werkt de module?

De SpikePerformance module zorgt ervoor dat tijdens piekmomenten de aanpassingen, die de cache normaliter legen, worden tegengehouden. Middels een optie in jouw backend kan je zelf bepalen wanneer je de SpikePerformance module activeert. 

Wanneer je de SpikePerformace module hebt geactiveerd, zal deze een taak (cronjob) aanmaken welke periodiek de wijzigingen doorvoeren en de cache leeg maakt. We ‘zeggen’ tegen Magento dat er niets hoeft te gebeuren. Waar normaliter een cache invalidation plaatsvindt, gebeurt er nu niets. Geen enkel proces binnen Magento heeft op dit moment dus meer de mogelijkheid om de cache te legen, behalve de door de SpikePerformance aangemaakte taak.

De cache legen doet de module logischerwijs op een rustig moment. Wij gaan standaard voor in de nacht, maar dit kun je naar eigen wens instellen. Doordat het rustig is, heeft de server voldoende capaciteit om de pagina’s opnieuw in de cache te plaatsen.

Jouw gemaakte wijzigingen worden na het draaien van deze taak zichtbaar. Let er dus goed op dat jouw wijzigingen correct zijn doorgevoerd voordat je de SpikePerformance module activeert. Jouw shop blijft dus snel en kan zoveel mogelijk resources gebruiken om de orders af te handelen en jouw bezoekers blij te maken!

Een Cache Warmer module ter ondersteuning

Voor optimale performance raden wij een Cache Warmer aan. Een Cache Warmer zal de pagina’s van jouw webshop ‘bezoeken’ en hiermee dus cachen. Dit gebeurt op basis van jouw eigen instellingen, bijvoorbeeld de best bezochte pagina’s eerst. Als groot voordeel heeft het dat je niet afhankelijk bent van jouw bezoekers om de cache van jouw webshop op te bouwen. 

De Potato Cache Warmer is een aparte Magento 2 module. Deze kan je gebruiken ter ondersteuning voor wanneer de SpikePerformance module actief is. De Cache Warmer is dan alleen ’s nachts actief. Hoe rustiger het op jouw webshop is, des te meer pagina’s er per minuut in de cache gezet kunnen worden. Wanneer jouw actie begint en het bezoek toeneemt, is jouw webshop snel.

Hoe kan ik de SpikePerformance module gebruiken?

Zijn acties bij jouw webshop ook altijd erg populair en wil je volledig onbezorgd een piekperiode in gaan? Als Magento specialisten kunnen wij jou goed hierbij helpen.

De module is vrij door iedereen te gebruiken. Beheer je zelf een Magento webshop en wil je graag bestand zijn tegen de drukke actieperiodes? Je kan hier de volledige module bekijken.

Ben je reeds al klant bij ons? Neem contact op met Kevin of Iris, dan gaan we er gelijk mee aan de slag. Werken we nog niet samen maar lijkt het je wel wat? Kom gezellig een keertje koffie of thee doen, dan kijken graag met jou naar de opties.

Tips bij het gebruiken van de SpikePerformance module

  • Zet de SpikePerformance module tijdig aan. Wij adviseren altijd om dit aan het eind van de avond te doen, voordat de actie begint. Zo heeft jouw shop voldoende tijd om de cache op te warmen.
  • Heb alle informatie op orde in je webshop. Het is vervelend als je erachter komt dat er nog fouten in de shop staan, terwijl het druk is en de SpikePerformance module geactiveerd is.
  • Zorg ervoor dat jouw indexen ‘on schedule’ staan. Hiermee zorgt de Magento cron ervoor dat de zogenaamde invalidations plaatsvinden volgens een schema. Je kunt hierbij het verschil goed merken in de backend: sla een product op wanneer de indexen ‘realtime’ ingesteld staan. Dit zal langer duren dan wanneer jouw indexen ‘on schedule’ ingesteld staan.
  • Zorg ervoor dat bepaalde onderdelen van jouw webshop dynamisch worden ingeladen. Neem als voorbeeld de ‘in winkelwagen’ button. Het kan zijn dat tijdens een piekmoment het product wordt uitverkocht. Doordat de cache niet wordt geleegd, blijft deze button staan. Door dit dynamisch te bepalen, kan deze button alsnog verborgen worden wanneer het product toch is uitverkocht. Gelukkig heeft Magento hier beveiliging voor. Een product aan je winkelwagen toevoegen dat niet meer op voorraad is, kan ook in dit geval niet. Wij helpen je hier graag bij!