Náklady na vývoj e-shopu se mohou vyšplhat do milionů, o čase, který takový vývoj zabere ani nemluvě. Je proto obzvlášť důležité, aby taková investice nepřišla vniveč.
Ve vshosting~ hostujeme tisíce e-shopů a za 13 let svého fungování jsme už toho viděli opravdu mnoho. Dali jsme proto dohromady seznam věcí, na které klientům doporučujeme dát si při vývoji e-shopu pozor, pokud chtějí maximalizovat návratnost svojí investice.
Jak na celkový návrh aplikace
Držte se prověřených technologií
Dost možná Vás Vaši vývojáři budou přesvědčovat, že osvědčené technologie jsou “staré a nudné” a že místo nich máte použít horkou novinku. Tady je ale třeba zpozornět: zbrusu nové technologie jsou sice náramně cool, ale nesou s sebou i velké riziko, že do roka a do dne po nich ani pes neštěkne.
Výsledkem je pak nekompatibilita s mnoha systémy, které k chodu e-shopu potřebujete, zastarávání kvůli absenci nových updatů a samozřejmě i potíže s hledáním vývojářů, kteří s danou technologií dokáží pracovat. To vše poté vede ke špatné funkčnosti e-shopu, ztrátě klientů a tedy i tržeb.
Pokud takové riziko podstupovat nechcete, doporučujeme držet se nejpoužívanějších technologií e-shopů jako je PHP, MySQL, ElasticSearch, MongoDB nebo Redis.
Myslete na horizontální škálovatelnost
E-shop jistě tvoříte s vizí budoucího růstu. Aby Vaše technické řešení dokázalo držet krok se zvyšující se poptávkou, musí být snadno škálovatelné. Proto klientům doporučujeme, aby minimalizovali používání relačních databází a vyvarovali se těm hůře škálovatelným (jako je např. PostgreSQL).
Dalším vhodným krokem usnadňujícím horizontální škálování je eliminace sdíleného filesystému a místo něj použití object storage. Jak relační databáze, tak sdílený filesystém se rychle může stát zbytečnou brzdou růstu.
Nebojte se vyvíjet nad testing verzemi
Vývoj komplexního e-shopu může trvat i 1-2 roky, což je vzhledem k životnímu cyklu mnoha technologií poměrně dlouhá doba. Noční můrou je pak situace, kdy po milionové investici a roku či dvou vývoje e-shop spustíte a zjistíte, že už je z hlediska technologií v polovině životnosti nebo dokonce úplně zastaralý.
Pro prodloužení žívotního cyklu e-shopu doporučujeme, aby vývojáři používali nové verze ověřených technologií, které jsou teprve v testingu. Díky tomu bude Váš e-shop zastarávat pomaleji a návratnost Vaší investice do vývoje tak bude výrazně lepší.
Přejděte na microservices
Monolitické (tj. „v jednom kuse“) aplikace jsou v dnešním vývojovém světě na ústupu, a to z praktických důvodů. Když je u takové obří aplikace nutné část vyměnit či opravit, často to vede k chybám v celé aplikaci. Jakékoliv úpravy nebo implementace nových features jsou proto velmi problematické.
Z toho důvodu získávají na popularitě tzv. microservices, pomocí nichž lze vyvinout dlouhodobě udržitelné aplikace s možností nahrazení jen některé části. Vaši vývojáři tak nestráví veškerý čas opravováním bugů a mohou se místo toho věnovat vývoji nových features.
Skryté nástrahy vývoje e-shopu
U těchto technologií zpozorněte
Tady jsou top 3 technologie, které se při vývoji a následném používání e-shopu mohou stát kamenem úrazu: Varnish, PostgreSQL a Magento.
Varnish
Varnish je aplikační cache na zrychlení aplikace. Ovšem aplikace, která není bez Varnishe dostatečně rychlá, je podezřelá. Pro představu z našich klientů jich Varnish používá cca 2 %, ostatní ho nepotřebují protože jejich e-shop je dostatečně rychlý i bez něj.
PostgreSQL
Jak už jsme zmiňovali v souvislosti s horizontálním škálováním, PostgreSQL se rychle stane u velkých e-shopů brzdou. Je velmi špatně škálovatelné a dodnes neumí pořádně synchronní repliku. Pro velké e-shopy (i malé s ambicemi růstu) proto doporučujeme škálovatelnější technologie.
Magento
Magentu u nás přezdíváme „řešení pro ty, kteří mají neomezený rozpočet a nemají potřebu škálovat“. Jak je asi zřejmé, není Magento podle naší zkušenosti vhodné pro e-shopy s ambicemi růstu. Sice ulehčí vývoj, ale chybí mu škálovatelnost.
Pozor na skrytý vendor lock-in či licence
Další nástrahou při vývoji e-shopu může být přílišná závislost na některé z externích služeb. Častá je obtížná migrace k jiné službě v případě problémů nebo například výrazného zdražení služby. Přitom v mnoha případech je poměrně jednoduché analogickou službu vyřešit interně. Například takové fulltextové vyhledávání není třeba dělat externí službou, ale lze použít ElasticSearch in-house.
Dalším typickým příkladem je proprietární databáze (pokud je databáze napsaná na míru externí službě, nedá se nikam jinam přenést). Je třeba také dát pozor na neošetřené licence jako je například Java SDK.
Jak nepromarnit peníze za reklamu
Nakonec jsme dali dohromady pár organizačních a technicky-provozních rad, které Vám pomůžou zajistit, že peníze, které investujete do reklamy, nepřijdou kvůli limitům Vašeho e-shopu vniveč.
Oddělte vývojové, testovací a produkční prostředí
Tipem číslo jedna je nutnost oddělení vývojového, testovacího a produkčního prostředí. Produkční prostředí (to, které vydělává) je svaté - kolem něj je třeba chodit obloukem, protože každý problém se rapidně změní v ušlý zisk.
Vývojáři by nové věci měli dělat ve vývojovém prostředí, pak otestovat v prostředí testovacím a teprve poté nasadit do produkce. Pouze důkladným otestováním mimo produkční prostředí se můžete vyhnout se situaci, že bug v produkci objevíte v pátek večer o Vánocích a podobně.
Znejte limity e-shopu a pravidelně testujte
Jistě se shodneme, že poznat limity Vašeho e-shopu až při spuštění televizní kampaně není ten nejvhodnější/nejlevnější okamžik. Proto našim klientům doporučujeme, aby investovali do tzv. performance testů. Ty slouží k ověření limitů a slabých míst v simulované vysoké návštěvnosti webu.
Dobré performance testy navíc pouze „nebuší“ do aplikace, ale simulují skutečného návštěvníka webu - např. prohlížením produktů, přidáváním zboží do košíku, vyhledáváním ve fulltextu atp. Díky tomu přesněji zjistíte, kde se nacházejí slabá místa vašeho webu a budete moci s touto informací dále pracovat.
Bezpečnost (nad rámec bezpečného návrhu aplikace)
Nejen kvůli GDPR platí staré dobré „bezpečnost nade vše“. Když v dnešní době uniknou hesla z Vašeho e-shopu, riskujete kromě ztráty důvěry svých zákazníků i nepěkné pokuty a další nepříjemnosti.
Pro co největší snížení rizika, že k něčemu podobnému dojde, můžeme ze zkušenosti doporučit 3 hlavní opatření:
- Pravidelné penetrační testy (otestují slabá místa z hlediska bezpečnosti)
- AntiDDOS ochranu (jen od začátku roku jsme zaznamenali přes 1500 relevantních útoků, velká část je způsobovaná automaticky)
- Zálohy + možnost rychlého obnovení (jak dlouho trvá obnova ze záloh? Pár minut nebo několik dní?)