Varnish bij Byte

Gastblog van Erik van Rijn, SupportDesk

Byte biedt sinds een jaar Varnish aan voor haar Dedicated Magento Servers. Voor ons als SupportDesk is het dus belangrijk om uit te pluizen hoe het precies zit met Varnish en Magento: hoeveel snelheidswinst levert het op, en tegen welke problemen kun je aanlopen? Onze bevindingen delen we graag met jullie. Nadat we in deel 1 verschillende Magento versies en in deel 2 Magento templates hebben getest, is het nu de beurt aan plugins: hoe werkt Magento in combinatie met plugins en Turpentine / Varnish?

Er zijn veel plugins voor de Magento omgeving, maar welke werken nu wel en welke werken nu niet in samenwerking met Varnish? Als je denkt ‘ik heb heel veel plugins, dat zal vast niet werken met Varnish’, lees dan snel verder! Want het valt stiekem wel mee …

Wat kan moeilijkheden opleveren?

Er zijn 2 aspecten die ervoor kunnen zorgen dat een plugin mogelijk niet goed gaat werken met Varnish:

  • wanneer de plugin niet gebruik van standaard blokken van Magento,
  • wanneer de plugin unieke gegevens moet genereren voor elke pagina of gebruiker.

Dit wil overigens niet zeggen dat de plugins die hier niet aan voldoen automatisch goed gaan en je ze dus niet hoeft te testen. Je moet ALTIJD goed testen voordat je Varnish activeert, en het liefst in meerdere browsers. Dan weet je zeker dat het goed gaat. En voor de plugins die voldoen aan het bovenstaande ligt het risico op problemen iets hoger.

Geteste plugins

Zelf heb ik getest met een Ajax plugin voor de shopping cart en met een speciale plugin voor de navigatie.

Ajax plugin voor de shopping cart

Als eerste testen we een plugin die de normale shopping cart van Magento omzet naar een ajax shopping cart. Kortgezegd, de pagina wordt hiermee niet ververst bij het toevoegen van een product aan je winkelwagen. Ik ben deze Ajax plugin voor de shopping cart ooit eens tegengekomen op een forum en gebruik hem regelmatig. Meer info over deze plugin vind je op Github: EasyAjax en AjaxCart.

Deze plugin is een mooie testcase, omdat deze precies voldoet aan de eigenschappen die ik hierboven heb genoemd:
– de plugin maakt niet gebruik van een standaard Magento blok (een dergelijk blok bestaat namelijk niet)
– de output van de plugin moet voor iedere gebruiker uniek zijn.

Uitkomst?

De test van de plugin is geslaagd! Voor de techies onder ons: de plugin post de ajax calls op de checkout cart pagina van Magento. Hierdoor zal deze door Varnish niet worden gecached.

Deze plugin slaagt dus 100% voor de test.

GoMage Advanced Navigation

De volgende plugin die ik heb getest is de GoMage Advanced Navigation. Deze plugin komen wij vaker tegen bij installaties en staat bekend om zijn vele mogelijkheden. Met deze advanced navigatie-plugin kun je meer opties creëren om zoekresultaten te filteren en daarnaast worden de URL’s netter (voor zoekmachineoptimalisatie).

Als we de plugin checken op de vragen die ik in hierboven formuleerde, dan ontdekken we al heel snel dat de plugin wel de standaard blokken van Magento gebruikt. Dus het zou eigenlijk al goed moeten gaan. Uit ervaring weet ik echter dat deze plugin eerder eens problemen gaf met de Full Page Cache module van Lesti, en daarom wil ik ‘m toch graag testen.

Uitkomst?

Geen probleem! De plugin werkt precies zoals het hoort en geeft de juiste resultaten weer. Hierbij heb ik ‘m getest in verschillende browsers.

Deze plugin slaagt dus 100% voor de test.

Conclusie: plugins geven niet snel problemen

De meeste plugins zullen geen probleem maken voor Varnish. Dit omdat de plugins veelal niet specifieke unieke artikelen per pagina laten zien. Doen ze dit wel, dan is het belangrijk om uitgebreid te testen en eventueel de blokken als ESI blokken te definiëren in de local.xml.

Test eerst goed!

Met deze blogpostreeks hebben we een korte inkijk gegeven in de mogelijke problemen met Magento-Varnish-Turpentine. Algemeen kunnen we concluderen: test eerst goed! Het kan zijn dat je tegen problemen aanloopt, maar deze zijn vaak niet onoverkomelijk.

 

Loop je nu tijdens het testen zelf tegen een onbekend probleem aan? Laat het ons graag weten! Zo kunnen we jou helpen en kunnen we je mede Magento developers informeren (misschien zelfs in de vorm van een gastblogpost?). Veel succes en geniet van je razendsnelle webshop!!

 

Lees ook de andere blogposts over Magento en Varnish:

 

Scan je eigen Magento shop op veiligheidslekken