Každý rok se opakuje stejný scénář: přichází říjen, e-shopy začínají plánovat Black Friday kampaně, a najednou si někdo vzpomene na otázku: „A vydrží to naše servery?" Není nic horšího než investovat miliony do marketingové kampaně a pak v listopadu sledovat, jak se vám infrastruktura hroutí pod náporem zákazníků.
„Lepší je mít výkon a nepotřebovat ho, než ho potřebovat a nemít," říká Ondřej Flídr, senior administrátor infrastruktury ve vshosting.
Plánování podle dat, ne podle pocitů
Základ každé přípravy na sezonu jsou tvrdá čísla. Pokud provozujete e-shop už delší dobu, máte k dispozici data z předchozích let – meziroční růst návštěvnosti, počet objednávek, vliv jednotlivých kampaní. Pokud data nemáte, začněte je sbírat hned teď.
Praktický tip: Raději počítejte s desetinásobkem běžného provozu než s optimistickými odhady. „Viděl jsem e-shop, který padl jen proto, že nepřežil rozesílku e-mailů," vzpomíná Ondřej Flídr na jeden z případů, kdy selhalo nenaddimenzované řešení.
Kdy vertikální škálování už nestačí
Pokud váš e-shop běží na jednom serveru a blíží se mu limity, máte několik možností. Nejrychlejší je vertikální škálování – přidání výkonnějšího procesoru, více paměti nebo rychlejšího disku. Výhodou je rychlost implementace a to, že není potřeba měnit aplikaci.
„Ve vshostingu máme vždy hardware skladem, takže se server pouze vypne v noci, provede se upgrade a za půl hodiny může běžet s novým hardwarem," vysvětluje Václav Skála. Problém nastává, když narazíte na limity dostupného hardwaru nebo když software neumí efektivně využít další zdroje.
Softwarové limity jako překážka
Ne vždy pomůže přidat více výkonu. Redis například běží v jednom vlákně, takže přidání dalších jader nepřinese zlepšení. Elasticsearch zase efektivně nevyužije více než 32 GB paměti kvůli způsobu, jak Java hospodaří s pamětí.
„Viděl jsem případ, kdy aplikace používala lockování v memcachi s klíčem obsahujícím celou URL. Všechny požadavky na stejnou URL pak čekaly ve frontě za sebou," popisuje Václav Skála jeden z problémů, kdy škálování hardwaru nevyřešilo problém s aplikací.
Krátkodobé řešení: Rozdělení rolí
Když už jeden server nestačí a nemůžete ho dále posilovat, nabízí se rychlé řešení – oddělení databáze na samostatný server. Je to jednoduché, rychlé a vyžaduje minimální změny v aplikaci.
„Tímto způsobem si koupíte zhruba rok času," upozorňuje Václav Skála. „Když pak potřebujete oddělit další komponenty, jako Elasticsearch, už si koupíte jen měsíc navíc."
Hlavní nevýhodou je snížení dostupnosti – místo jednoho serveru, který může selhat, máte dva. A když neběží kterýkoliv z nich, nefunguje nic.
Dlouhodobé řešení: Clusterová architektura
Pro dlouhodobě rostoucí e-shopy je nejlepším řešením přechod na clusterovou architekturu. „Když spadne jeden server z clusteru, nic se neděje. Když spadne jeden server v single setupu, máte po sezóně," shrnuje Václav Skála hlavní výhodu.
Komponenty moderního e-shop clusteru
1. Load balancery
- Vstupní bod do clusteru s veřejnou IP adresou
- Terminace SSL spojení a rozložení zátěže
- Možnost cachování statických souborů
- Často i VPN pro bezpečný přístup do infrastruktury
2. Aplikační servery
- Zde běží samotný e-shop (PHP, Node.js, atd.)
- Musí být bezstavové – session ukládat do Redis, ne na disk
- Lze je snadno škálovat přidáváním dalších instancí
3. Databázové servery
- Master-slave, nebo multimaster replikace
- Důležité: každý server musí zvládnout provoz celého clusteru
- Pozor na replikační zpoždění při vysoké zátěži
4. NoSQL servery
- Redis pro session a cache (ideálně oddělené instance)
- Elasticsearch pro vyhledávání (oddělený od logování)
- Každá komponenta podle potřeb e-shopu
Testování na hranici možností
Zátěžové testy jsou naprosto nezbytné a měly by zahrnovat:
- Performance testy – ověří, jak si poradíte s definovanou zátěží
- Stress testy – ukážou, kdy to celé spadne
„Lepší je, když to spadne teď v létě při testu, než v prosinci v ostrém provozu," dodává Ondřej Flídr.
Nezapomínejte na slabá místa mimo infrastrukturu
Dokonce i perfektně připravená infrastruktura může selhat kvůli externím faktorům:
- ERP systém – dokáže odbavit tisíce objednávek za hodinu?
- Mailing služby – při skokovém navýšení vás antispam filtry mohou zablokovat
- Platební brány – mají dostatečnou kapacitu pro vaši kampaň?
„Replikace je fajn. Do chvíle, než master server vypadne a slave server se nestíhá replikovat a má stará data," varuje Václav Skála před dalším úskalím.
Praktické tipy pro sezónní přípravu
Databáze a replikace
- Používejte pouze InnoDB tabulky pro MariaDB
- Všechny tabulky musí mít primární klíč
- Velké operace rozdělte na menší části (DELETE s LIMIT)
- Počítejte s tím, že oprava replikace vyřadí jeden server z provozu
Redis optimalizace
- Oddělte session od aplikační cache
- Pro session: bez limitu paměti, s nastavenou expirací
- Pro cache: limit paměti s automatickým mazáním nejstarších dat
- Zvažte KeyDB jako rychlejší alternativu k Redis
Elasticsearch specifika
- Nepřidělujte více než 32 GB paměti pro Java heap
- Dodržujte limit 20 shardů na GB paměti
- Oddělte vyhledávání od logování na samostatné clustery
Disaster recovery: Když se pokazí všechno
I při perfektní přípravě se může stát cokoliv – lidská chyba, bug v aplikaci, výpadek datacentra.
Připravte si:
- Záložní scénáře včetně druhé lokality
- Pravidelné zálohování s testovaným obnovením
- Postupy pro rychlé řešení krizových situací
- Kontakty na klíčové dodavatele 24/7
Checklist pro sezónní přípravu
✅ Analýza dat – reálné odhady na základě historických dat raději přestřelte
✅ Zátěžové testy – performance, stress, s reálnými scénáři použití
✅ Infrastruktura – buď vertikální škálování, nebo přechod na cluster
✅ Externí závislosti – ověření kapacit ERP, mailingu, platebních bran
✅ Záložní plány – včetně druhé lokality a disaster recovery
Závěr: Léto je čas na přípravu
Příprava e-shopu na sezónu není jen o technické infrastruktuře. Je to investice do klidu a jistoty, že až na podzim spustíte své největší marketingové kampaně, infrastruktura bude připravena na úspěch.
„Když oddělíte databázi, koupíte si rok. Když oddělíte další komponenty, koupíte si měsíc. Ale časem vás to stejně doběhne," uzavírá Václav Skála. Proto je lepší využít letní měsíce k investici do clusterového řešení, které poroste s vaším byznysem.
Pokud si nejste jisti, jestli vaše současné řešení zvládne letošní podzimní sezónu, je nyní ideální čas nás oslovit na: konzultace@vshosting.cz a získat dostatek času na důkladné plánování, testování a případné úpravy před kritickými měsíci.