Rychlost načítání a optimalizace výkonu

Magento je relativně náročné na kvalitní hosting s dostatečnými systémovými prostředky. Není divu, jde o robustní enterprise framework. Pro jednoproduktový eshop s minimem modulů nad rámec základní instalace může šlapat jak hodinky často i na sdíleném hostingu. S vícero produkty, atributy, customizací jádra, složitější šablonou nebo po nasazení pár rozšíření se však může rychlost načítání stránek stát brzy noční můrou provozovatele eshopu. A to je chvíle, kdy mohu pomoci se svými více než 6 lety zkušeností s Magentem.

Pracoval jsem jako IT specialista v bankovním sektoru a kontaktních centerech, kde je rychlost odezvy serverů zásadním faktorem pro úspěšné odbavení požadavků zákazníků. Spravoval jsem linuxové servery, databáze, webservery i telefonní ústředny a naučil jsem se díky tomu opravdu mnoho. V PHP programuji už více než 10 let, MySQL znám velmi dobře, stejně tak Apache a Nginx. Jsem schopen najít optimální řešení na úrovni fyzického i aplikačního serveru.

K tomu mám však ještě mnoho let praxe s vývojem a správou desítek internetových obchodů na platformě Magento. A jednou ze stěžejních oblastí mé práce je právě Magento performance neboli optimalizace výkonu a rychlosti odezvy Magento eshopu.

Pomohu Vám zrychlit Magento eshop

Jsem schopen analyzovat internetový obchod na úrovni hostingu a jeho konfigurace, nastavení Magenta, možností kešování i kompilace a identifikovat úzké hrdlo v čase, kdy prohlížeč čeká na odezvu serveru. Umím navrhnout optimální řešení hostingu pro Váš projekt tak, abyste zaplatili jen tolik, kolik je skutečně potřeba a přitom získali maximální výkon a ideální rychlost odezvy.

Ve druhé úrovni pak analyzuji nasazenou Magento šablonu a grafiku, kde je vždy dost prostoru pro další optimalizace (např. komprese obrázků, javascriptů, kaskádových stylů a jejich spojování pro menší počet HTTP dotazů). Kromě šablony reviduji i veškerá rožšíření nad rámec instalace Magenta a možnosti jejich customizace a konfigurace tak, aby byla odezva eshopu co nejlepší.

Příklady úspěšných optimalizací rychlosti odezvy

Na projektu Škubánkov.cz, který byl spuštěn v únoru 2017, jsem docílil úpravou interní funkčnosti Magenta pro Configurable Swatches úspory téměř 10 vteřin. Stránky kategorie produktů, která obsahovala mnoho konfigurovatelných atributů navíc zobrazovaných v grafické podobě (což právě řeší Configurable Swatches), se načítaly zhruba 13,5 vteřiny a po mém zásahu došlo k redukci na 4 sekundy. Kromě úprav problematické funkcionality jsem navíc navrhnul řešení hostingu, které umožňuje vlastní nastavení MySQL databáze pro optimální kešování SQL dotazů a rychlou odezvu databáze z operační paměti namísto neustálého čtení z pevného disku (ten byl mimochodem z klasického nahrazen za rychlé SSD).

Na projektu Růsťák.cz, což byl původní můj vlastní internetový obchod a hobby projekt, jsem dosáhl na sdíleném a relativně levném hostingu odezvy kolem necelé 1 vteřiny. Optimalizace spočívala v nastavení komplikace, minifikace a mergování JS/CSS souborů, komprese výstupu webserveru a všech obrázků, nahrazení některých modulů za úpravu grafické šablony Magenta (menší režie pro procesor i paměť) atd. Díky těmto úpravám jsem se dostal na hostingu za 169 Kč měsíčně ze 3 vteřin na 1 vteřinu odezvy serveru (počítáno bez zanedbatelného času na stažení obsahu při prvním načtení stránky).

Pro zákazníka PIXIE CREW GROUP s.r.o. jsem optimalizoval výkon Magento eshopu pomocí volně dostupné celostránkové kešování (fullpage cache) Lesti FPC. Tento modul si může stáhnout kdokoliv a zdarma. Na projektu www.pixiecrew.cz jsem díky této kešovací rutině stáhnul čas odezvy serveru ze 4 na 0,5 vteřiny. Je však potřeba řešit i optimalizace mimo kešování, jelikož i keš se musí čas od času vyprázdnit a ne vše je možné plně kešovat. V takové chvíli přichází na řadu Magento profiler nebo u větších projektů třeba placené rozšíření typu BlackFire.io.

Magento 1.9.x na PHP 7 není nemožné

Ačkoliv je Magento 1.9.x dle oficiální dokumentace možné provozovat výhradně na PHP 5 (5.4, 5.5 nebo maximálně 5.6), tak přechod na PHP 7 není u projektů postavených nad Magentem 1.9 výjimkou – spíš se stává běžnou rutinou. A rozdíl v rychlosti je mezi PHP 5.5 a 7 ohromný – sedmička je mnohdy třikrát i čtyřikrát rychlejší než pětkové verze PHP. Stačí využít komunitní podporu, patche od Inchoo a provést pár drobných úprav (zejména v souboru app/code/core/Mage/Core/Model/Layout.php) a je to hotové. Pak už stačí proskenovat kód třetích stran v podobě customizací a rozšíření (modulů) na podporu PHP 7.

Jsem připraven analyzovat náročnost a možnosti přechodu Vašeho eshopu postaveného na Magento 1.9 na hosting s PHP 7, což by mělo urychlit odezvu serveru o další cenné milisekundy. Analyzuji možnost nasazení komunitního patche, zdrojové kódy třetích stran a celkovou kondici eshopu. Poté navrhuji vhodný hosting a jeho konfiguraci. Vždy volím takový Magento hosting, který disponuje nejen PHP 7, ale také plnými SSH přístupy, možností práce s Composerem, Git verzování, Memcached a další moderní technologie vhodné pro rychlé načítání stránek eshopu. Případně doporučuji nasazení vhodné kešovací funkcionality.