fbpx
Damir Špoljarič

Web nebo e-shop může mít doslova každý. Stačí pár kliknutí a z kohokoli se může stát hrdý majitel domény nebo provozovatel e-shopu. Uděláte větší či menší technické a estetické úpravy a nový online byznys je na světě. Jenže pak s údivem zjistíte, že to nefunguje tak, jak jste si představovali…  Jak je to možné? 

Proč vaše podnikání nevzkvétá, když je web hezký, srozumitelný a zajímavý? Pravděpodobně jste šlápli vedle hned na začátku při volbě poskytovatele hostingu. Je úplně jedno, jak smělé plány se svým projektem máte, zda chcete prodávat pár položek, nebo to rozjet ve velkém mezinárodně, všude narazíte na zákazníka a jeho potřeby. A ty základní jsou ve všech případech stejné: rychlost, přehlednost a pohodlí.

Dobrý e-shop. Co to je?

„Stabilita, kompletní absence výpadků, zvládání návštěvnostních výkyvů zejména v době slevových nebo předvánočních akcí a především rychlost – to jsou základní atributy dobrého online obchodu,“ říká Damir Špoljarič, náš CEO a expert na e-shopy.

Nemůžete proto očekávat, že zákazník bude čekat půl minuty, než se mu načte vaše stránka. Nebo že váš výpadek s úsměvem přejde a za hodinu to zkusí znovu. A pokud se mu zasekne proces nakupování v košíku, že se k vám ještě vůbec někdy vrátí.  Možná pro vás bude překvapením, jak nároční uživatelé mohou být. Výzkumy totiž ukazují, že 47 % návštěvníků webových stránek očekává, že se načtou do 2 vteřin, po 3 vteřinách 40 % z nich odchází

Kde jste udělali chybu?

Důvodů, proč je váš web nebo e-shop pomalý, může být více. Mezi nejčastější chyby, které ovlivňují rychlost načítání stránky, patří její přílišná velikost, nesprávně nastavené cachování, neaktuální verze použitých aplikací nebo celková nepřipravenost poskytovatele na nápor uživatelů

Důležitým faktorem je bezesporu volba vhodného hostingu. Přitom jeho výběru většina majitelů e-shopů a komerčních webových prezentací přikládá minimální význam. Webhosting zpravidla dostanou spolu s hotovým webem od agentury, která jim ho navrhovala, ovšem netuší, že technickou stránku věci tito dodavatelé často neřeší. Všechno se dá ale zvládnout a napravit.

AAA Auto: Jeden příklad za všechny

Společnost AURES Holdings, provozovatel mezinárodní sítě autocenter AAA Auto, nás před časem požádala o pomoc s řešením nové výzvy, která se před nimi díky rozsáhlé obchodní a marketingové expanzi objevila. V očekávání následného růstu návštěvnosti webových stránek vyvstaly obavy, že by jejich technické řešení nemuselo takový nápor zvládnout. To by pro tak velkou společnost mohlo znamenat výraznou ekonomickou ztrátu, což jsme nemohli připustit.

„Před pěti lety jsme v AAA Auto byli postaveni před rozhodnutí, kam se bude ubírat hostingové řešení našeho zásadního prodejního kanálu – webových stránek s aplikací pro vyhledávání vozů na prodej, a to napříč čtyřmi evropskými trhy. Protože jsme chtěli být připravení na všechno a mít pod kontrolou veškeré technické zázemí, oslovili jsme na základně referencí zkušené odborníky, kteří dali vše od základů do pořádku,“ říká šéf webového oddělení sítě e AAA Auto Martin Tampír.

Co na to vshosting~?

Po důkladné analýze stavu webových projektů  AAA Auto jsme stanovili několik cílů, které jsme beze zbytku naplnili:

  • zrychlení webových stránek
  • navržení řešení, které zajistí vysokou dostupnost a odolnost webových stránek proti výpadkům
  • sjednocení hostingové infrastruktury, aby byla zajištěná maximální efektivita
  • upravení infrastruktury pro možnost škálování použitých aplikací, což zajistí stabilitu i při vyšší návštěvnosti
  • využívání podpory zkušeného a spolehlivého týmu poskytovatele, který dokáže mimo jiné predikovat kritická místa v infrastruktuře i aplikaci a zabránit potenciálním problémům dříve, než nastanou

„Náš tým dokázal vytvořit vyhrazenou sjednocenou high-availability infrastrukturu pro všechny projekty AAA Auto, zrychlit načítání webových stránek díky elegantnímu řešení doručování statického obsahu, který tvoří drtivou většinu všech requestů, sjednotit všechny DNS a další atributy jednotlivých domén a nakonec také provést performance testy výkonnosti nové infrastruktury a vytvořit plán pro další růst,“ prozradil Damir.

V praxi to znamená, že webová aplikace  sítě AAA Auto má dnes dostupnost více než 99,99 %, infrastruktura firmy je připravená na nové technologie, slabá místa jsou včas identifikovaná a zajištěná. Ke konkrétním příkladům patří například eliminace desítek milionů statických fotografií a přenastavení technického řešení na generování jejich dynamického náhledu, což zajistilo zrychlení webu a jednoznačné zlepšení UX každého návštěvníka. 

Rádi pomůžeme i vám…

Zdá se vám, že by váš e-shop nebo web taky zasloužil „poladit“? Chcete svým návštěvníkům a zákazníkům poskytnout ten nejlepší možný zážitek, aby u vás strávili co nejvíce času a byli s touto zkušeností spokojení? Ozvěte se na konzultace@vshosting.cz a poradíme vám, jak na to. 


vshosting~

WordPress je nejpoužívanějším redakčním systémem a běží na něm 30 % všech webových stránek. Svou popularitu si získal velkým množstvím pluginů, díky kterým je možné jej používat prakticky pro cokoliv – osobní blog, firemní prezentaci, e-shop.

Podobně jako jiné redakční systémy vytváří WordPress stránky dynamicky. Tudíž při každém přístupu si musí sáhnout do databáze pro data a z nich pak pomocí PHP vygenerovat stránku, kterou uživateli pošle. Oproti statickým stránkám tedy web vyžaduje více serverových prostředků a načítá se pomaleji. To je důležité brát na vědomí, protože 40 % uživatelů odchází, pokud se web nenačte do 3 vteřin.

Cachování umožní spojit rychlost statických stránek s robustností WordPress

Namísto toho, aby se stránka generovala znovu pro každého uživatele, se výsledek uloží. Další návštěvníci již dostanou rovnou tuto předgenerovanou statickou stránku. Tím se zrychlí načítání a šetří se serverové zdroje.

V případě přidání nového článku či komentáře se cache automaticky zneplatní, takže se nemusíte obávat, že by uživatelé viděli neaktuální web.

Instalace WP Super Cache

Pro WordPress existuje několik cachovacích pluginů. Nejpopulárnějším z nich je WP Super Cache, jehož nastavení se budeme dále věnovat. Nainstalujete jej standardně přes “Pluginy” → “Přidat nový” v administrátorském rozhraní WordPressu. 

Nastavení

Abyste z WP Super Cache vytěžili maximum, je třeba jej nejdříve nastavit podle potřeb vašeho webu. Volby pluginu najdete v “Nastavení” → “WP Super Cache”. Základní pohled vypadá následovně:

Wordpress cachování

Nahoře lze vidět seznam záložek: Easy, Advanced, CDN, Contents, Preload, Plugins, Debug. Nás budou zajímat především první tři.

Na výchozí záložce Easy je nejdříve potřeba plugin zapnout pomocí zatržítka Caching on. Pak můžete rovnou spustit Cache tester a otestovat, zda funguje správně.

Advanced

Tato záložka obsahuje nejdůležitější nastavení. Jak vidíte z následujícího screenu, je jich poměrně hodně. Projdeme tedy postupně, co jednotlivé volby znamenají.

Wordpress Cache Advanced Settings

Cache Delivery Method – způsob cachování. Na výběr je ze dvou možností:

Simple – Nacachované soubory jsou servírovány přes PHP, což je kompatibilnější.

Expert – Výkonnější, ale je vyžaduje přístup k .htaccess a zapnutý mod_rewrite v Apache.

Don’t cache page for known users – necachovat pro známé uživatele. Tím jsou myšleni uživatelé přihlášení. Ti, kteří na webu nechali komentář a ti s cookie autora. Doporučeno zapnout.

Don’t cache pages with GET parameters – necachovat stránky s parametry. Jde například o výsledky vyhledávání. Je možné ponechat zapnuté.

Compress pages so they’re served more quickly to visitors – komprimovat stránky. To sice zrychlí načítání, ale u některých klientů může působit problémy. Doporučujeme proto ponechat vypnuté.

Cache rebuild. Serve a supercache file to anonymous users while a new file is being generated – uživatelům, kteří navštíví stránku, zatímco se generuje nová nacachovaná verze, bude nabídnuta stará verze. To zabrání tomu, aby se stránka generovala několikrát naráz. Doporučujeme zapnout.

304 Not Modified browser caching. Indicate when a page has not been modified since it was last requested – pokud nedošlo ke změně stránky, server odpoví 304 Not Modified. To indikuje prohlížeči, že se stránka nezměnila od posledního načtení a je možné použít cache prohlížeče. Některé starší browsery mají s tímto problém, proto doporučujeme nezapínat.

Make known users anonymous so they’re served supercached static files – udělá ze známých uživatelů anonymní, aby jim bylo možné servírovat nacachovaný obsah. Může to způsobovat problémy, protože například uživatel neuvidí komentář, který právě poslal. Doporučujeme tedy nechat vypnuté.

Enable dynamic caching – umožňuje, aby některé stránky byly vytvářeny dynamicky. Toto vyžaduje změny v kódu.

Mobile device support – je potřeba pouze pokud vaše WP téma není responzivní. Vyžaduje použití pluginu WP Touch.

Remove UTF8/blog charset support from .htaccess file – zapněte, jen pokud se vám zobrazují špatné znaky na nacachovaných stránkách.

Clear all cache files when a post or page is published or updated – kompletně smaže cache, pokud je stránka updatovaná či publikovaná. Obvykle můžete ponechat vypnuté.

Extra homepage checks – extra kontroly hlavní stránky. Pokud se obsah hlavní stránky často mění, je dobré zapnout.

Only refresh current page when comments made – k aktualizaci cache dojde jen v případě, že je přidán komentář. Je možné ponechat vypnuté.

Coarse file locking – zabraňuje duplicitním cache souborům, ale má negativní výkon na cachování. Proto doporučujeme vypnout.

Late init. Display cached files after WordPress has loaded – zobrazuje nacachované soubory až po načtení celého WP.

Cache Timeout – určuje dobu, po kterou se mají stránky cachovat. Optimální hodnota záleží na tom, jak dynamicky se jejich obsah mění. Obvykle je dobré začít na jedné hodině (3600 s) a podle potřeby upravit. Nedoporučujeme však nastavovat příliš dlouhý interval (déle než den). Časovač pro kontrolu vypršelých souborů nastavte na zlomek této hodnoty.

Další možnosti na záložce Advanced není potřeba upravovat.

CDN

CDN je síť pro rychlejší doručování obsahu. Zrychluje weby tím, že pro načítání statického obsahu využívá servery na více geografických lokacích, a tak snižuje vzdálenost mezi návštěvníkem webu a serverem. vshosting~ samozřejmě nabízí vlastní CDN řešení se servery na několika lokacích v Evropě a USA. Více se o něm dozvíte zde.

Pokud CDN využíváte, na této záložce můžete nastavit, aby fungovala s nacachovanými soubory WP Super Cache. Příklad nastavení naleznete níže:

Do Site URL vyplníte svoji doménu. Do Off-site URL potom používanou CDN URL. Ta bývá v případě naší CDN služby ve tvaru domena.vshcdn.net. Include directories a exclude directories můžete nechat beze změny.

Závěr

Nastavení je hotové a WP Super Cache byste nyní měli mít vyladěnou pro maximální výkon a spolehlivost. Otestovat rychlost načítání můžete například pomocí nástroje https://performance.sucuri.net.

Radek, vshosting~


Damir Špoljarič

Magento je výkonná e-commerce platforma, která zahrnuje vše, co je třeba pro prodej online. Kromě samotného e-shopu dokáže řešit i sklad, marketing, fakturace a účetnictví. V současné době Magento přichází ve dvou verzích: Magento Open Source (dříve Magento Community Edition) a Magento Commerce (který je určen pro vetší společnosti s vlastními vývojáři).

Magento je jednou z nejvíce využívaných e-commerce platforem a v hodnocení uživatelů získává konzistentně vysoké hodnocení. Ke správnému fungování Magenta je nicméně třeba mít zkušeného vývojáře samotné aplikace a také zkušeného poskytovatele hostingu, který ví, jak servery pro Magento optimalizovat.

Potřeba výkonného hostingu

Jak jsme již zmínili, u Magenta nelze podcenit hosting. Platforma je náročná na výkon a tomu musí odpovídat i parametry hostingu. Pokud se oprostíme od problémů a chyb samotné aplikace, tak je většina problémů v Magento způsobena malým výkonem webového serveru, resp. prostředím, kde je Magento provozováno. Magento je pomalejší a má mnohem více requestů než ostatní systémy, ale existuje několik způsobů jak platformu urychlit.

Zrychlení Magenta

Magento obvykle nelze provozovat přímo na webovém serveru, ale je nutné využívat cachovací proxy (aktuálně je podporovaný pouze Varnish).
Pokud chcete, a v dnešní době je to už standard, provozovat SSL verzi, je nutné před Varnish proxy předsadit Nginx nebo jiný SSL terminátor. Co se týká samotného webového serveru, je možné použít Apache s PHP modulem nebo Nginx s PHP-FPM. Jedním z nejúčinnějších způsobů, jak dál urychlit Magento, je použití akcelerátorů PHP. U základních instalací je APC prohlašována za nejlepší řešení.

Možná jsou tedy dvě řešení:

  • NGINX → VARNISH → APACHE (PHP-MODUL + APC, Memcache, Redis) → MariaDB
  • NGINX → VARNISH → NGINX (PHP-FPM + APC, Memcache, Redis) → MariaDB

V případě větších instalací je pak vhodné využívat Redis pro cache i jako session handler.
Pokud se rozhodnete provozovat celou instalaci na jednom serveru, je nutné mít výkonný hardware nebo hosting, který Magento přímo podporuje. O paměť, CPU a IOPS budou soupeřit hlavně PHP, MySQL a Varnish.

Provoz Magenta v clusteru

Pokud se rozhodnete provozovat Magento v nějakém clusterovém režimu (buď kvůli výkonu nebo kvůli vysoké dostupnosti), Magento s tímto nastavením nativně nepočítá. Existuje několik možností, jak cluster sestavit:

  • Složitější varianta je používat za load balancerem Varnish na každém backendu, ale pak je nutné se správně vypořádat s disvalidací cache a s podobnými dalšími problémy.
  • Jednodušší způsob je nechat balancing na Varnish cache, která je sama o sobě dostatečně výkonná, aby dokázala zvládnout předávat požadavky na mnoho backendů.

Při clusterových instalacích se zároveň doporučuje počítat s dedikovaným serverem pro admin backend, u kterého paradoxně cachovaní není úplně žádoucí. U verzí 2 a méně se doporučuje povolit funkci Magento Compilation pro urychlení úložiště Magento.

Z naší zkušenosti vyplývá, že nejčastěji dochází ke zpomalování vlivem následujících chyb v aplikaci:

44 % SQL dotazů uvnitř smyčky
25 % načítání stejného modelu několikrát
14 % využití redundantního datového souboru
10 % výpočet velikosti pole na každé iteraci smyčky
7 % neefektivní využití paměti

Závěr: Zkušený hosting a zkušený programátor vyladí fungování Magenta

Mezi výhody Magenta patří robustnost a to, že je univerzální. Na druhou stranu je těžké zajistit, aby fungovalo optimálně. Pokud uvažujete o využití Magenta pro váš e-shop, ujistěte se, že:

  1. programátor aplikace má s Magentem zkušenosti,
  2. hosting, který jste si vybrali ví, jak server pro Magento vyladit tak, aby vše perfektně fungovalo a neztrácela se rychlost.

Damir Špoljarič

Proč je rychlý web důležitý?

Chcete dostat co nejvíc návštěvníků na svůj web a chcete, aby tam aspoň chvíli zůstali? Pak je třeba, aby váš web byl co nejrychlejší. Rychlost načítání je jedním z faktorů, které ovlivňují jak se web umisťuje ve výsledcích vyhledávání. Pomalé načítání webu je navíc hlavním důvodem, proč návštěvníci, kteří už se na web dostali, zase rychle odejdou. A co když pomalý, nebo dokonce nefunkční web poškodí vaše podnikání?

Uživatelé navíc čím dál tím víc přistupují na web z mobilních zařízení, kde je pomalé načítání ještě více citelné než na desktopové verzi.

  • 47 % uživatelů očekává, že se stránka načte do 2 vteřin
  • 40 % uživatelů odchází po 3 vteřinách načítání
  • 46 % online uživatelů se rozhoduje zdali se na web vrátí na základě jeho rychlosti
  • Optimalizovaný web by se měl načíst do 3 vteřin

Tento článek obsahuje shrnutí nejdůležitějších bodů, které zazněly na přednášce Davida Lintimera, Senior Server Specialisty ve vshosting~, během E-shop Summit a Expo 2018.

Jak rychlý je vlastně váš web?

Rychlost webu vám pomůže změřit několik nástrojů:

Pokud vám vyšla rychlost načítání větší než 3 vteřiny, věnujte rychlosti svého webu zvýšenou pozornost. Za problémem může stát mnoho faktorů. Tohle jsou ve stručnosti ty nejčastější:

Přílišná velikost stránky

Čím větší stránka je, tím déle se načítá. Ideální velikost stránky je do 3MB. Velikost stránky ovlivňuje množství obrázků, videí, fontů, stylů a dalších grafických prvků.
V případě, že máte na webu více obrázků, zaměřte se na jejich komprimaci. Tu usnadní široká škála pluginů např. Smush pro WordPress.

Cachování

Správné cachování dokáže efektivně zrychlit web. Cachování je zjednodušeně odkládání informací do specializovaných úložišť odkud je možné s nimi rychle pracovat, a díky tomu se nemusí načítat ze vzdálených serverů.

Jednou z možností je využití CDN (tu by vám měl nabídnout poskytovatel hostingu). CDN je síť pro rychlejší doručování  obsahu. Napomáhá zrychlení webů tím, že statický obsah (obrázky, videa, html kód, …) ukládá na klíčových místech, a snižuje tak vzdálenost mezi návštěvníkem vašeho webu a serverem, na kterém web běží. CDN úložiště navíc pracují na bázi rychlých SSD disků, díky čemu poskytují nejenom bližší distribuci obsahu k vašim uživatelům, ale napomáhají i v rychlosti načítání tohoto obsahu.

Mnoho HTTP požadavků

Aby se váš web návštěvníkovi vůbec načetl, musí jeho počítač navázat spojení se serverem, na kterém váš web běží. Přes toto spojení začne proudit velké množství dat potřebných pro správné zobrazení webu. Čím více prvků (obrázků, ikon, stylů, javascriptů atd.) na webu máte, tím více spojení se musí navázat a tím déle to trvá.

Řešením je přejít na HTTP/2. Narozdíl od starších verzí http, které komunikovaly formou textu, je HTTP/2 binární a umožňuje jedním spojením přenést mnohem více požadavků. Při přechodu na HTTP/2 dochází ke zrychlení v řádu 100ms až 1 vteřiny.

Doporučujeme se zeptat svého poskytovatele hostingu, jestli HTTP/2 podporuje a jestli i váš web na HTTP/2 běží.

Neaktuální verze aplikací

Zastaralé verze aplikací mohou zpomalit a navíc i ohrozit váš web. Velké množství webů je programováno v jazyku PHP. Nicméně jsou velké rozdíly mezi starší verzí jazyka (PHP 5) a novou verzí PHP 7. Výkonnostní rozdíl může být až 50 % a některé funkce v novější verzi PHP 7 jsou až násobně rychlejší.

Velice důležité je aktualizovat také redakční systém a jeho pluginy. Neaktualizovaný redakční systém znamená vysoké bezpečností riziko.

Špatná lokalita hostingu

Čím vzdálenější je server, na kterém web běží, tím více spojení se musí navazovat a tím složitější je režie a množství dotazů. U vzdálených hostingů může být rychlost komunikace až v řádech desítek 100ms. Vybírejte tedy hosting, který je lokalitou blízký návštěvníkům webu nebo využijte CDN, kterou zmiňujeme v jednom z předchozích bodů.

Nepřipravenost na návštěvnostní špičky

Spustili jste kampaň, speciální propagaci nebo vám zrovna běží reklama v televizi. Na váš web právě míří vlna návštěvníků z různých marketingových kanálů. Vše jste optimalizovali pro největší množství konverzí a těsíte se na skvělé výsledky.
Mysleli jste ale na to, jestli to váš web ustojí? Špičky v návštěvnosti jsou skvělé pro vaše podnikání, pokud ovšem hosting funguje tak, jak má.

To, že web neustojí vysokou návštěvnost, je často způsobeno zanedbáním příprav hostingu. Nejčastěji je výkon hostingu poddimenzovaný a během špičky nezvládá mnohonásobný počet požadavků na zobrazení webu. Ujistěte se, jestli je váš poskytovatel hostingu připraven na špičky. Měl by mít výkonnostní rezervu a dostatečnou kapacitu linky.
Kromě hostingu je také třeba se podívat přímo na aplikaci (váš e-shop, katalog, web) a optimalizovat databázi. Zjistěte jestli aplikace nedělá zbytečně moc dotazů do databáze a jestli tam náhodou neukládá obsah, který do databáze nepatří.

Shrnutí

Provozovatelé webů a e-shopů se často zaměřují především na tvorbu a péči o obsah stránek a na optimalizaci marketingového funnelu. Jejich práci ovšem může pokazit hosting, který není optimalizovaný na rychlost, spolehlivost a bezpečnost. 

I když náklady na hosting nepatří mezi hlavní položky při podnikání, je to právě hosting, který dokáže pokazit veškerou snahu a plány. Proto je nutné hostovat svůj web nebo e-shop u kvalitního poskytovatele, který dokáže poradit a má nástroje pro bezproblémový chod vašeho podnikání.


Damir Špoljarič

Scaling je často skloňované slovo a zaklínadlo všech moderních online apps jako must have. Byť je často škálování považováno za výhradní atribut infrastruktury, pravdou je, že škálování ovlivňuje zejména aplikace a její technologické požadavky. Vysvětlíme si, čemu byste se měli jako vývojáři moderních aplikací pokusit vyhnout, aby byla zajištěna maximální možnost škálování.

Scaling, Autoscaling, Scale-up, Scale-out

Na začátek krátké vysvětlení základních pojmů. Škálování, tedy scaling, je navyšování výpočetních prostředků aplikací nebo paralelizace výpočetních jednotek (v zásadě stále „přidávání výkonu“). Pokud se má škálování odehrávat dynamicky a automaticky dle aktuální potřeby, jde o autoscaling. Autoscaling se rozhoduje podle různých metodik – load serveru, objem datových toků, počet requestů, latence requestu, množství chyb, které vrací aplikace z důvodu nemožnosti request odbavit.

V Zeropsu budeme u autoscaling podporovat téměř vše zde uvedené. Oproti AWS a jiným obdobným tradičním cloudovým službám však nebudeme uživatele trápit laděním metrik a Zerops provede nastavení podle best practices pro daný use case, zkrátka Zero Operations ;-).

škálování: scale up vs. scale out

Scale-up je model vertikálního škálování, což je nejtypičtější způsob škálování, na který aplikace nemusí být nijak zvlášť připravená. V zásadě jde o navyšování výkonu serveru. Tento model má tu nevýhodu, že často nejde provádět za běhu, jeho možnosti nejsou neomezené a je také možné, že některé aplikace již nedokáží takový výkon v rámci jednoho serveru utilizovat a bottleneck je poté někde „uvnitř“ aplikace.

Scale-out je škálování formou paralelizace výpočetních jednotek – přidávání serverů, virtuálních serverů, kontejnerů za load balancerem. Na tento způsob škálování musí být aplikace připravena, výhodou oproti tomu je větší rozsah možností škálování.

Scaling killer 1 – relační databáze

Nejtypičtějším zabijákem škálování jsou relační databáze (MySQL, PostgreSQL, …), což jsou produkty, které vznikly před více než 20 lety v době, kdy pojem škálování v tomto pojetí prakticky neexistoval. Podpora pro clusterování byla různě dolepována až následně, popř. řešena jinými produkty třetích stran. Nejdříve je tedy potřeba se zamyslet, zda vůbec relační databázi ve vaší aplikaci potřebujete používat.

Například e-shopy s objednávkami, fakturami, uživateli apod., vyžadující ukládání dat do něčeho, co splňuje vlastnosti ACID, se bez relační databáze neobejdou. Zamyslete se nad tím, zda není možné v případě vašeho use case použít některou z noSQL databází, které byly většinou už od začátku koncipovány jako clusterovatelné, tedy škálovatelné.

Stále se ještě setkávám s tím, že někdo do relační databáze ukládá logy, sessions a další, což jsou všechno věci, na které existují specializované nástroje (pro sessions například in-memory noSQL databáze redis, logy např. syslog apod.). Naprosto nejhorší z pohledu škálování a relačních databází jsou zápisové operace, kde je reálná možnost škálování pouze vertikálně.

U selectů je ještě možné provoz rozdělit. Například Amazon RDS umožňuje přidávat read-only replicy, Zerops bude podporovat Galera cluster jako službu a bude zajišťovat výrazně větší pohodlí z pohledu škálování. Nicméně princip nemožnosti škálovat zápisové operace horizontálně platí v obou případech. Měli byste se tak vyhnout například využívání relační databáze k ukládání různých statistik, číselných řad a dalších (přesně k tomuto účelu se hodí více noSQL databáze – mongo, ElasticSearch apod.).

Relační databázi z pohledu horizontálního škálování je třeba brát jako nutné zlo a operace, zejména zápisové, je potřeba maximálně omezit z pohledu náročnosti a intenzity.

Scaling killer 2 – sdílený filesystém

Moderní aplikace se bez sdíleného filesystému již obejdou, drtivá většina aplikací však stále ne. Aplikace předpokládá, že má v adresářové struktuře uloženy kromě aplikace i data – tedy obrázky, logy atd. Špatně napsané aplikace ukládají do adresářové struktury různé cache. Filesystém je další desítky let starou záležitostí, která již měla dávno zhynout.

Pokud se nebavíme o aplikaci globálního rozsahu a nepracuje se s filesystémem nekoncepčně, nejde zas o takový problém, protože se na limity pravděpodobně nemusí nikdy narazit. Pokud se ale s FS pracuje nekoncepčně, hrozí zásadní problém, který žádné škálování ničeho většinou nevyřeší, navíc jde často o problémy, které o sobě nedají vědět dříve, než se reálně projeví.

Typicky jde o :

  • špatnou adresářovou strukturu – ukládání statisíců (nebo mnohem více) objektů (souborů, adresářů) v jednom adresáři. Otevření takového adresáře pak mnohdy trvá spoustu minut.
  • velké množství operací s filesystémem – zbytečné operace při každém přístupu uživatele nad mnoha soubory a generování lstat operací (typicky jsou to funkce v PHPku na ověření existence obrázku při každém přístupu apod. nebo absence souborové cache, kdy aplikace při každém přístupu generuje přístup na filesystém)
  • ukládání cache do adresářové struktury – pokud ukládání do adresářové struktury, tak určitě ne do sdíleného filesystému mezi více servery, ale do ramdisku na lokálním serveru. Na sdíleném filesystému krok přetížení hrozí čekáním na soubor cache vlivem zámku souboru, který zrovna vytvořil jiný server, který s cache pracuje.
shared filesystem / sdílený filesystém

Jak si poradit bez sdíleného filesystému? Je nutné dodržovat základní filosofii rozdělení aplikace a dat. Aplikace by měla být provozuschopná i v read-only režimu (poté může běžet klidně v ramce) a neměla by vytvářet žádné lokální soubory (případný temp adresář pro dočasná nedůležitá data se řeší jako jeden zapisovatelný adresář umístění také na ramdisku). S daty se pracuje tak, že se použijí nástroje, které jsou k tomu určené – například syslog pro vzdálené logování, object storage pro práci s obrázky a dalšími uživatelskými daty, no a samozřejmě databáze.

Výše uvedení zabijáci škálování jsou nejčastější příčinou zhoršených možností škálování infrastruktury, se kterými se 11 let setkáváme u velkých internetových projektů.


Damir Špoljarič

Cílovou skupinou vshosting~ v posledních pěti letech se čím dál častěji stávají střední a velké e-commerce projekty – eshopy, eshop platformy či nástroje pro e-shopy. Vedle e-commerce je vshosting~ oblíbeným poskytovatelem také pro portály, webové agentury (mezi klienty patří například většina členů Asociace.biz) a další.

Mezi zákazníky vshosting~ patří již mnoho let desítky největších českých a slovenských e-commerce projektů a stovky středních a menších. Můžeme jmenovat například Okay, AAA AUTO, Electro World, Nay.sk, Shoptet, Shopsys, Notino (Parfums), Vivantis, Megapixel a spoustu dalších. Proč je vshosting~ největším českým a slovenským poskytovatelem komplexní infrastruktury pro e-commerce?

Know how se správou tisíců systémů

10 let se staráme o čím dál více systémů. Známe slabá místa všech běžně používaných platforem, víme, které technologie jde nejlépe škálovat, které technologie si příliš nelámou hlavu se zabezpečením a jaký koncept aplikací bude pro klienta nejdéle udržitelným, nejlépe škálovatelným a nejspolehlivějším. Klient a jeho vývojáři tak od nás mají potřebné informace a technologického partnera, který jim poskytne a v praxi uplatní know-how, které jejich vlastní administrátorský tým jen stěží získá.

Umožňuje nám to široký technologický záběr a velký počet rozsáhlých produkčních systémů, o které se staráme. Smyslem je, že nás kontaktuje klientův architekt aplikace s tím, že chce aplikaci postavit na následujících technologií a od nás chce slyšet zhodnocení rizik jakožto od budoucího provozovatele produkčního prostředí v režimu 24/7, jehož úkol je zajistit co nejvyšší dostupnost a případně sdělit lepší alternativy (stabilnější, efektivnější, škálovatelnější, bezpečnější).

Vlastní lab prostředí a prošlapávání cesty vývojářům

Testujeme nové technologie ideálně dříve, než je klient chce. Tuto činnost budeme navíc dále rozvíjet a u nejpoužívanějších technologií se zapojovat do testování release candidate serverových aplikací. Klientovi poté napíšeme „navrhujeme upgradovat software na verzi xy, protože tím získáme následující výhody. Upgrade doporučujeme první provést ve vašem labu“.

Skvělá infrastruktura

O tom jsme napsali desítky článků. To, že máme jedno z nejlepších datových center ve Střední Evropě je už snad všeobecně známo. Nadměrné investice do ServerParku se ukázaly jako vhodně vynaložené z pohledu stability, kterou naši klienti pociťují bez pár měsíců dva roky od zahájení provozu. Na páteřní síti nešetříme a pořídili jsme jedny z nejspolehlivějších a nejvýkonnějších routerů a switchů v dané řadě, které je možné pořídit (MX960, Nexus řady 7000 a další).

Provozujeme již více než 5 let vlastní cloudovou platformu, kterou neustále inovujeme. Nově budeme do infrastruktury zapojovat nejnovější enterprise storage NetApp FAS8200 s podporou automatického disaster recovery.

Zvažujeme i poskytování služeb na infrastruktuře třetí strany, konkrétně na infrastruktuře AWS. Na klientovi poté bude vybrat, kterou variantu infrastruktury zvolí.

Individuální přístup a DevOps

Ať už jde o malý e-shop na jednom cloud serveru, jehož součástí jsou samozřejmě naše plnohodnotné managed služby, nebo o velké řešení, přístup je individuální. Před rokem jsme si vyzkoušeli migraci projektu Shoptet (platforma pro více než 10 000 eshopů), kterou jsme hravě zvládli během dvou nocí a o infrastrukturu se nyní staráme kompletně.

Všechny rozsáhlé projekty disponují vlastním individuálním labem v logickém zapojení 1:1 s produkční infrastrukturou (výkonnostně je lab samozřejmě výrazně méně výkonný), ve kterém testujeme, v rámci individuálně nastavených DevOps procesů, nové serverové aplikace, rozsáhlejší updaty a klient lab používá i jako staging infrastrukturu svých aplikací před deploy na produkci.

Letos plánujeme rozšít managed služby pro velká řešení o sekci, kterou pracovně nazýváme Managed Special Operations, což bude další krok v individuálním přístupu, kdy bude služba rozšířena o trvalou službu serverového architekta a dalších konkrétních specialistů nad rámec běžné a stálé údržby systémů. Tuto službu pro velké projekty již poskytujeme, od letošního roku bude ale oficiálně představena a nabídnuta i novým klientům.

SLA

Reklama v primetime v televizi prý stojí i několik set tisíc za půl minutový spot. Při představě jakéhokoliv problému například ve vánoční sezóně běhá každému provozovateli eshopu mráz po zádech. Jako jediní poskytujeme nadstandardní SLA a další garance a služby, o kterých si konkurence může nechat zdát. Při problému (o kterém budeme vědět dřív než vy, v ideálním případě u některých situací díky novému monitoringu i dříve než se projeví v reálném provozu) budete do 60 vteřin mluvit se server administrátorem.

Obrovskou výhodou vshosting~ je rovněž to, že známe běžný průběh vánoční sezóny a umíme na to eshop připravit tak, aby se minimalizovalo riziko nečekaného přetížení či se nenarazilo na jiný nečekaný problém v době, kdy to bude nejméně vhodné.


Managed CDN, Maily, …

Aby byly naše služby opravdu komplexní, poskytujeme e-commerce klientům i další přidané služby například v podobě ManagedCDN, která má své POPy již po Evropě a USA a zajišťuje zrychlení webu za minimální finanční náklad a plně v naší správě bez jakýchkoliv starostí. Na konci roku 2016 jsme spustili službu CloudMail – plně automatizované mailové řešení, které je spolehlivé a se spoustou výhod a pohodlných vlastností pro koncové uživatele.

Kdo to pro e-commerce dělá krom nás v takovém rozsahu v ČR/SR?

Zatím nikdo.

Další trhy, na které budeme cílit s naším e-commerce řešením je Polsko.


Damir Špoljarič

Rychlost domácích přípojek roste velkým tempem, Facebook s Googlem si staví mezi USA a Evropou vlastní podmořský kabel, do serverů budou do dvou let běžným standardem 100Gbps síťové karty a s novou generací mobilních sítí 5G bude možné mít do 5 let na pro mobilní připojení až 20Gbps. Pro běžné uživatele však začíná být omezujícím faktorem při rychlosti načítání webu rychlost světla, díky které jsou latence na server, který je umístěný na jiném kontinentu, násobně větší.

Pokud se český uživatel internetu dívá například na webové stránky umístěné na serveru v ČR, latence jsou zpravidla jednotky, maximálně desítky milisekund. Pokud se však stejný uživatel dívá na stránky uložené na serveru, který se nachází v USA nebo například Austrálii, latence budou stovky milisekund, což je dáno rychlostí světla v optických vláknech.

Byť se stovky milisekund mohou zdát jako malá hodnota, tak rozdíl v načítání webu může být 1 sekunda versus například až 10 sekund, což je způsobeno tím, že při načítání stránky se prohlížeč k serveru připojuje mnohokrát a stahuje si spoustu dat (obrázky apod.). Jedná se o fyzikální limit, který technika momentálně nemá jak překonat.

Z tohoto důvodu roste obliba tzv. CDN (content delivery network) služeb. CDN si lze představit jako lokální cache umístěné po světě či u konkrétních operátorů. Tato služba má za cíl, uložit v lokálních úložištích CDN uživateli často stahovaný obsah a dalším návštěvníkům ho tak nahrát ze svého lokálního úložiště a nikoliv z originálního serveru. Tuto službu, buď na své infrastruktuře nebo prostřednictvím velkých poskytovatelů CDN služeb (například Akamai), využívá i většina největších globálních webů.

Je nutno podotknout, že CDN zajišťuje zrychlení načítání jen statického obsahu jako jsou obrázky, videa a jiné statické soubory. Tento typ obsahu se však na délce načítání webu podílí největší měrou. Dynamický obsah stránek (skripty apod.) cachovat pomocí CDN bohužel nelze. Většina CDN nabízí i další přidané služby jako různé modernější způsoby komprese obrázků, což opět vede k rychlejšímu načítání webových stránek či podpora http protokolu verze 2.

Zrychlete svůj web pomocí CDN od vshosting~

Pro uživatele i provozovatele webových služeb je CDN naprosto transparentní. Tento typ CDN je označován jako „pull CDN“, kdy si CDN cache stáhne z originálního serveru obrázek, jakmile jej první uživatel požaduje tím, že si zobrazí stránku a udržuje ji v paměti či na rychlém SSD po nastavenou dobu platnosti. Tento typ CDN však příliš nepomůže internetovým webům s menší návštěvností, které jsou založeny na obrovském množství obsahu, který si uživatelé jen málokdy zobrazí. Může jít například o různé fotobanky.

V tomto případě pull mechanismus CDN není pro takový projekt příliš velkým přínosem. Pro tyto projekty slouží tzv. „push CDN“, kdy je k dané CDN přidaná služba CDN storage, který se nachází na stejných místech jako CDN cache body. Klient takové CDN poté duplikuje obsah, který má u sebe na serveru také na tento CDN storage. CDN cache tedy požadavek na obrázek nesměruje na originální server, který se může nacházet daleko, ale na tento CDN storage, který se nachází na stejném místě jako CDN cache a načtení stránky pro uživatele na druhém konci světa proto bude rychlé.

Uživatel při běžném užívání webu nemá šanci poznat, že se část webu stáhla z blíže umístěné lokální cache CDN. CDN je připojena do Internetu pomocí anycast IP adres, což jsou IP adresy v IP rozsahu, který se nachází v routovací tabulce v Internetu tolikrát, kolik je CDN bodů, a zajišťuje pro CDN redundanci na úrovni routingu v Internetu.

Pro běžného uživatele si to lze představit tak, že jedna a ta samá IP adresa se na různých místech internetu ve světě směruje na různá místa, tedy například k lokálním CDN cache. Pokud nastane porucha či nedostupnost dané CDN cache například pro část USA, provoz je automaticky v Internetu přesměrován na jiné nejbližší místo. Na principu anycastu jsou například založeny i hlavní světové root DNS zajišťující překlad názvu za tečkou – například .cz, .com., .sk apod.

Díky nárůstu poptávky po CDN službách vzniká řada nových poskytovatelů těchto služeb. Konkurenční prostředí jako u jakéhokoliv jiného oboru tak vede k postupnému snižování cen, které poskytovatelé CDN služeb většinou určují dle reálně přenesených dat z CDN do Internetu k uživatelům. Cena se často liší dle datového toku v jednotlivých částí světa. Nejlevnější datový tok z CDN je k uživatelům v Evropě, mírně dražší poté v USA a Kanadě (z důvodu vyšších velkoobchodních cen páteřní konektivity pro operátory oproti Evropě), nejdražší poté bývá datový tok k uživatelům v Asii, Austrálii a Jižní Americe, kde je konektivita výrazně dražší než v Evropě.


Damir Špoljarič

Často slýcháme dotaz, zda je vhodné pro vaše weby nasadit CDN. Pokusíme se vám s rozhodováním trochu pomoct.

CDN, tedy content delivery network, je služba, jejíž cílem je zrychlit načítání webů. Jak a kdy toho docílí? V dnešní době technologií, jako jsou HTTP/2, Nginx reverzní proxy s cachováním statického obsahu a podporou komprimace či Varnish, ztrácí často CDN ve své největší výhodě částečně smysl. Zrychlení webů CDN dosahuje tím, že primárně rychleji doručuje uživatelům webu statický content (obrázky, videa, js, html apod.) tím, že tento obsah vhodně cachuje, především pak tím, že v klíčových datových uzlech má připojené své servery sloužící jako cache pro tento statický obsah. CDN tak odbourává neduhy spojené se síťovými latencemi při překonávání větších vzdáleností.

Pokud tedy máte web s globálním dosahem, dává CDN určitě smysl, neboť se díky ní načítání webu výrazně zrychlí. Pokud však používáte web se středoevropským dosahem a využíváte služeb některého z poskytovatelů s kvalitní síťovou infrastrukturou, CDN ztrácí smysl, protože si dokážete rychlé doručování statického obsahu jednoduše zařídit na vlastní infrastruktuře, na které web hostujete s použitím výše uvedených technologií.

Některé CDN dále slibují zajištění vyšší bezpečnosti webu proti DDoS útokům. Není tomu ale tak vždy. Pokud jde například o službu CloudFlare, toto pravidlo platí a tato služba dle zkušeností dokáže čelit i nestandardně velkým DDoS útokům. Zajištěno je to tak, že DNS daného webu odkazuje na CDN službu. CDN služba zajistí distribuci obsahu ze své cache a originálního serveru, na kterém jsou uložena data, se doptá jen na data, která nemá nacachovaná.

Při DDoS útoku je tak tento útok směrován primárně na tuto CDN, jelikož DNS webu sem odkazují. Pokud se jedná o kvalitní CDN, může jít o významný přínos. Je nutné si ale uvědomit, že ne vždy toto platí a ve chvíli, kdy nasměrujete DNS na CDN službu, přenáší na sebe tato CDN služba část odpovědnosti za dostupnost, neboť nedostupnost CDN služby = nedostupnost webu díky tomu, že je před originálním serverem „předřazená“.

Zrychlete a ochraňte svůj web s CDN od vshosting~

Je tudíž nutné posuzovat výhodnost a přínos pro každý projekt individuálně. V některých případech jde o významnou přidanou hodnotu, protože rychlejší načítání webu má kladný dopad na vyhledávače i uživatelskou zkušenost, v jiných případech může jít jen o zbytečný finanční náklad.


Damir Špoljarič

Většina programátorů má jasný cíl – dodat produkt v co nejvyšší kvalitě, v co nejdřívějším termínu, nebo za co nejméně peněz (dle priority zadavatele). Mezi další požadavky patří čím dál častěji continuous delivery a práce s větším rozsahem moderních platforem. Kde se však děje nejčastěji chyba, která provozovatele internetového projektu stojí mnoho zbytečně vynaložených finančních prostředků?

Návrh architektury aplikace

Mnoho vývojářů a softwarových architektů navrhne aplikaci za použití mnoha platforem. Často ale neberou v potaz reálné vlastnosti daných platforem v reálném provozu. Však vývoj se má trápit především vývojem a uváděním aplikací v život v produkci, s provozem si mají lámat hlavu administrátoři. Pro vysokou dostupnost a dlouhodobou udržitelnost projektu je však vhodné, aby se osoby odpovědné za provoz (administrátoři) podíleli i na návrhu architektury.

Ve vshosting~ se staráme o tisíce serverů, čímž jsme si za 10 let vybudovali a dále budujeme unikátní know-how, které se budeme i nadále snažit stále více šířit mezi naše klienty prostřednictvím rad typu co je vhodné použít a pro jaký účel.

Je opravdu vhodné použít PostgreSQL v prostředí, které je náročné na požadavky škálování a vysokou dostupnost? Je vhodné použít Redis ke cachování, když se jedná o single-thread platformu, kdy při větší zátěži může dojít k saturaci výkonu Redisu a zpomalení/výpadku internetové aplikace bez ohledu na výkon serveru? Je opravdu vhodné udržovat v jednom adresáři tisíce souborů a často s takovým adresářem v aplikaci pracovat? Je aplikace připravena pro nasazení v cloudu/clusteru? Co je třeba vyřešit u náročného projektu fulltext jiným způsobem, než vyhledávat nad relační databází?

A stovky dalších dotazů, které položí administrátor programátorovi a sdělí programátorovi/project managerovi odpovědnému za aplikaci zkušenosti z praxe, výhody a nevýhody, a případné alternativy či poznatky, jak aplikaci zlepšit. Ne vše se dá najít v dokumentaci daného produktu na oficiálním webu a na googlení zkušeností programátoři většinou nemají čas.

Spolupráce Development & Operations (DevOps)

U velkých managed řešení ladíme s klienty individuálně procesy trvalé spolupráce mezi vývojáři aplikace a produkčním provozem (tedy námi). Jde například o způsob deploymentu, který bude pro programátory dostatečně operativní, ale současně nenaruší jasně definovanou odpovědnost za produkční infrastrukturu.

Jde také o procesy ve vztahu k testovací infrastruktuře a mnoho dalšího. Cílem je stabilní a udržitelná produkční infrastruktura a operativní, rychlá možnost deploymentu nových aplikací pro klienta.

Šíření a sdílení know-how

Ve vshosting~ v roce 2017 budeme zavádět následující novinky, od kterých si slibujeme lepší přípravu nově připravovaných klientských aplikací na reálný provoz.

  • Informační videa – jak fungují které aplikace, krátké rozhovory s programátory klientů, novinky na globálním trhu a reagování na aktuální témata a další
  • Komunitní sekce – sdílení zkušeností našich klientů
  • Služby serverového architekta pro rozsáhlá managed řešení

Tímto přístupem se vshosting~ odlišuje od svých středoevropských konkurentů, protože svým klientům poskytuje unikátní know-how a nadále se v tom plánuje zlepšovat. Managed služby nemají být pouhou náhradou vlastního admina ve firmě a stejně tak nemají být jen o tom, že programátor napíše nainstalujte a administrátor dle návodu nainstaluje. Celé operations související s provozem velkého internetového projektu je komplexní záležitost. I proto je vshosting~ partnerem těch největších e-shopů a dalších internetových projektů.

Damir Špoljarič

CEO


Během 17 let jsme provedli úspěšnou migrací stovky klientů. Pomůžeme i vám.

  1. Domluvte se na konzultaci

    Stačí nám zanechat kontakt. Obratem se vám ozveme.

  2. Bezplatný návrh řešení

    Nezávazně probereme, jak vám můžeme pomoct. Navrhneme řešení na míru.

  3. Profesionální realizace

    Připravíme vám prostředí pro bezproblémovou migraci dle společného návrhu.

Zanechte nám svůj e-mail nebo telefon




    Nebo nás kontaktujte napřímo

    +420 246 035 835 V provozu 24/7
    konzultace@vshosting.cz
    Zkopírovat
    Obratem se vám ozveme