Byte_HHVM

HipHop is hip and happening. Steeds meer Magento developers raken geïnteresseerd in Hiphop (eigenlijk HHVM: Hip Hop Virtual Machine) en gaan ermee stoeien.

Maar eerlijk is eerlijk: het is niet de eerste keer dat de Magento wereld lyrisch is over een Magento versneller. Ook Redis en Varnish zijn immers uitermate effectief als het gaat om het versnellen van je webshop. Wat is dan precies het verschil tussen de versnellers, in welke stap van de technische keten zitten ze en hoe verhouden ze zich tot elkaar?

Wat is HipHop / HHVM en waarom is het vet?

Nog even een recap: HipHop/HHVM is een andere manier om de PHP-code te laten uitvoeren door de server. HipHop zorgt dat de PHP in meer efficiente blokken machinecode wordt vertaald. De processor die het uiteindelijk moet uitvoeren kan zo sneller de pagina’s genereren. Het kost de processor minder tijd om een pagina af te leveren, dus de pagina is sneller bij de bezoeker van je site en de processor staat eerder klaar om een andere bezoeker te helpen. De performancewinst kan oplopen tot 400%, al naar gelang de hoeveelheid PHP-code er per pagina moet worden uitgevoerd.

Werkt het out-of-the-box?

Ja en nee, het overgrote deel van de PHP code (bijvoorbeeld Magento) werkt gewoon één op één. Sommige extensies (commercieel en custom) werken echter nog niet goed met HipHop. Wij bij Byte hebben er het afgelopen jaar samen met onze partners hard aan gewerkt om alles compatible te krijgen. Magento developer en HHVM specialist Daniel Sloof (@daniel_sloof) heeft hier specifiek twee dagen per week samen met ons aan gewerkt, zie het interview dat we met hem hielden.

Waarom specifiek voor Magento?

Omdat Magento een gigantische hoeveelheid PHP verwerkt per bezoek. Honderden files en scripts maken één pagina. Je kunt je voorstellen dat het sneller uitvoeren van die stukken PHP tot een snellere respons leidt op je webshop. Lagere laadtijden, blijere bezoekers, vollere winkelmandjes, vreugdevolle One-Step-Checkouts en omzet voor de webwinkelier.

Wat is nu het beste? Varnish, Redis, FPM, HHVM, SSD?

Een bezoeker aan een webshop gaat technisch door een aantal stappen voordat hij een pagina krijgt. Je kunt op al die verschillende stappen optimaliseren.
Met stip op één staat: … de inrichting van je Magento. Een goede template, een goede configuratie en de juiste extensies. Hier staat of valt het mee. De technische snufjes kunnen niet goedmaken wat je hier verkeerd kan doen. Moeilijkheidsgraad 4/5.

  • Varnish: reverse proxy, lastig te configureren, maar als je het goed doet kun je het statische deel van je Magento supersnel laten uitserveren door Varnish.
    Moeilijkheidsgraad 5/5.
  • Nginx: een lichtere webserver dan Apache, gaat slimmer om met de RAM van de server, iets lastiger te gebruiken (.htaccess configuratie), maar ook wat sneller.
    Moeilijkheidsgraad 2/5.
  • PHP FPM: verdeelt de uitvoering van PHP werk. Werkt niet of heel lastig in een shared omgeving (bv Byte’s Clusterplatform), maar juist weer perfect op een losse server of VPS. Merk je als developer niets van.
    Moeilijkheidsgraad voor developer niet aan de orde.
  • HipHop/HHVM: alternatieve PHP processor, zorgt dat PHP scripts sneller worden uitgevoerd. Voor developers het nieuwste speelgoed om Magento te versnellen. Het werkt enerzijds out-of-the-box, maar als je een compatibiliteitsprobleem tegenkomt moet je flink debuggen. Wij werken dus nu samen met Daniel Sloof om deze compatibiliteitsproblemen zoveel mogelijk voor te zijn.
    Moeilijkheidsgraad 3/5.
  • Redis: is een nieuwerwets cache systeem, zoals memcache. Je kunt er grote stukken van de webshop in opslaan, zodat je het supersnel er uit kunt halen. Daarnaast heeft het voor developers gave gimmicks als lists, sorted sets en is het ongeveer gemaakt om sessies in op te slaan. Vanaf Magento CE 1.8 wordt Redis standaard ondersteund. Met een module genaamd Lesti_FPC kun je ook Full Page Cache doen.
    Moeilijkheidsgraad 2/5.
  • SSD: Snelle storage maakt alles sneller. Als je files en databases sneller kunt lezen of er sneller naar kan schrijven, gaan al je bezoeken en operaties sneller. Hier hoef je als developer niets voor te doen en voor de hoster is het een kwestie van SSD’s in de servers schroeven.
    Moeilijkheidsgraad 1/5.

Me want!

Er zijn inmiddels meerdere webhosters in Nederland die HipHop/HHVM aanbieden op hun platform. Ook bij Byte’s Magento hosting (op basis van Hypernode technologie) is HipHop beschikbaar in beta (= we kunnen er nog geen support op leveren. HHVM werkt goed met Magento, maar nog niet met alle modules. Werkt het niet? Dan kun je terugschakelen naar PHP/FPM, ook stuk sneller dan PHP).

Meer lezen over HHVM:

 

Scan je eigen Magento shop op veiligheidslekken