Úvod
Digitální transformace každým rokem zahrnuje stále více různých oblastí života a podnikání. Pokud chce firma zůstat konkurenceschopná, nestačí jí pouze běžné informační weby, potřebné jsou mobilní a webové aplikace, které uživatelům nejen poskytují informace, ale také umožňují vykonávat různé funkce: nakupovat nebo objednávat zboží a služby, poskytovat nástroje.

Moderním bankám například nestačí mít webové stránky s informacemi, potřebují online nástroje pro své klienty, osobní účet, kde si uživatel může spravovat účty, investice a půjčky. I malému podnikání, aby zvýšilo konverzi, jsou zapotřebí pohodlné nástroje, jako je objednání na návštěvu lékaře nebo kadeřníka, rezervace stolu v restauraci nebo dětského herního koutku k uspořádání narozenin.
Majitelé firem také potřebují včas dostávat informace v přehledné podobě o stavu své společnosti, například sbírat statistické údaje a analýzy různých výrobních oddělení nebo produktivity oddělení. Často každé oddělení tyto údaje sbírá svým způsobem a dokonce mohou používat různé nástroje, což nutí majitele trávit hodně osobního času, aby se v tom vyznal. To může přímo nebo nepřímo ovlivnit efektivitu společnosti a nakonec i zisk. I v tomto případě může pomoci digitální transformace a vývoj webové nebo mobilní aplikace.
Technologie se neustále vyvíjejí a to, co se používalo před několika lety, už nemusí být aktuální dnes, nebo to, co nebylo možné udělat před několika lety, se už stalo realitou. Existuje více moderních nástrojů, které pomáhají rychleji a kvalitněji vytvářet webové a mobilní aplikace. Na základě svých osobních pozorování a zkušeností se chci podělit o svůj pohled na to, které technologie a nástroje budou v blízké době žádané a proč by na ně mělo být při vytváření moderní webové aplikace pohlíženo.
Single page application (jednostránková aplikace)
Pojďme si trochu ujasnit terminologii. Single Page Application (SPA) je webová aplikace, jejíž komponenty se načítají jednou na jediné stránce a obsah se nahrává podle potřeby. Při přechodu mezi sekcemi aplikace se stránka zcela nepřehrává, ale pouze se načítají a zobrazují potřebná data.
Jednostránkové aplikace výrazně vítězí v rychlosti a pohodlí používání oproti klasickým webovým aplikacím. Pomocí SPA je možné dosáhnout efektu funkce webu jako desktopové aplikace, bez zpoždění a výrazných přerušení.
Pokud před několika lety jednostránkové aplikace prakticky nepodporovaly optimalizaci pro vyhledávače a používaly se převážně pro vytváření uživatelských rozhraní a administrativních panelů, dnes je mnohem snazší vytvořit jednostránkovou aplikaci s plnou podporou SEO. Používáním jednostránkových aplikací se serverovým rendrováním je dnes tento problém zcela odstraněn. Jinými slovy, je to stejné jednostránkové aplikace, ale při prvním požadavku server generuje nejen data, ale vytváří hotovou HTML stránku pro zobrazení a vyhledávače obdrží hotové stránky se všemi meta informacemi a sémantickým značkováním.
S rozvojem nástrojů pro vytváření klientských webových aplikací bude vývoj a přechod na jednostránkové aplikace v tomto a následujících letech pouze narůstat. Pokud máte starou aplikaci, která je morálně zastaralá a pomalu funguje, a navíc s plným přetížením stránky při přechodu mezi sekcemi, pak v tomto roce se můžete klidně aktualizovat na rychlou jednostránkovou aplikaci – teď je dobrý čas, technologie to již umožňují udělat docela rychle a kvalitně.
Mít moderní a rychlý web je velmi dobré, ale musím vám upřímně říct: ne všechny aplikace lze snadno převést na jednostránkové, a přechod může být nákladný! Proto je důležité pochopit, kdo a proč takový přechod potřebuje.
Abych vám pomohl se zorientovat, v tabulce níže uvádím několik příkladů, kdy je vývoj nebo přechod na SPA vhodný a opodstatněný, a kdy nikoliv.
ZA
Pokud chcete vytvořit moderní, rychlou aplikaci a chcete, aby se používala nejen webová verze, ale také mobilní nebo dokonce desktopová verze, a všechny procesy a výpočty probíhaly na vzdáleném nebo cloudovém serveru. A ještě tak, aby všichni klienti měli jedno rozhraní pro interakci a nebylo třeba provádět každou úpravu v serverovém kódu při přidání nového klienta.
Například: sociální sítě, agregátory, SaaS platformy (software jako cloudová služba), tržiště.
Pokud máte obchod nebo webovou službu, víte, že je pomalá a lidé odcházejí, chcete ji zpřístupnit rychlejší, chápete hodnotu klientů a jste ochotni zaplatit za upgrade od jednoho milionu korun.
Máte mobilní aplikaci, která používá API webu, a web je přitom pomalý a plně načítá obsah při přechodu mezi stránkami.
PROTI
Pokud vaše cílová skupina nepoužívá moderní prohlížeče a zařízení.
Například: specifické firemní oblasti, jako je vývoj interních systémů pro banky, zdravotnická zařízení a vzdělávání.
Hlavní činnost vedete offline a nejste připraveni poskytovat jakékoli služby online, a potřebujete jen přilákat klienty.
Pokud máte internetový obchod nebo webovou službu, která již dobře prodává, nevidíte odliv klientů a stížnosti.
Pokud máte funkční aplikaci, kterou nelze přizpůsobit pro SPA a potřebujete ji zcela přepsat od nuly a použít jiné technologie, a nejste ochotni na to vynaložit několik milionů.
Například: existuje krabicová webová stránka nebo nějaký starý, monolitický kód napsaný na míru.
Progressive Web Applications
Progressive Web applications (progresivní webová aplikace) – to je výsledek společné evoluce nativní aplikace a webové stránky. V podstatě se jedná o webovou aplikaci, která vypadá a chová se jako skutečná nativní aplikace, může přijímat push notifikace, pracovat v offline režimu atd. Uživatel přitom nemusí stahovat aplikaci z AppStore nebo Google Play, stačí si ji jen uložit na pracovní plochu.
Jak technologie nebo přístup k vývoji PWA se vyvíjí od roku 2015 a v poslední době také získává obrovskou popularitu v oblasti e-commerce.
Několik skutečných příkladů ze života:
- V loňském roce hotel Best Western River North po spuštění nového webu s podporou PWA dokázal zvýšit tržby o 300 %.
- Arabský Avito OpenSooq.com po zavedení podpory PWA na svém webu dokázal zvýšit čas návštěvy na stránkách o 25 % a počet leadů o 260 %.
- Známý seznamovací servis Tinder snížil dobu načítání z 11,91 s na 4,69 s díky vývoji PWA, navíc aplikace váží o 90 % méně než její nativní analog pro Android.
O tom, že je dobré věnovat pozornost této technologii, svědčí i to, že jeden z největších motorů pro vytváření e-commerce projektů Magento v roce 2018 spustil ranou vývojářskou verzi PWA Studio. Platforma umožňuje „ušít na míru“ vytváření front-endu na bázi React pro svá e-commerce řešení s podporou PWA.
Rada pro ty, kteří již mají internetový projekt nebo pouze myšlenku na nový servis s podporou mobilních zařízení: nespěchejte se psaním plnohodnotné nativní aplikace, ale nejprve se podívejte na technologii PWA. Možná to bude nejlepší řešení z hlediska ceny a kvality pro váš produkt.
Malý příklad z praxe. K vytvoření jednoduché nativní mobilní aplikace pro zprávy, pokud již existuje hotový REST server, je potřeba zhruba 200-300 člověkohodin na každou platformu. Při průměrné ceně na trhu 1500-2000 Kč/hod by aplikace mohla stát kolem 1 milionu korun. Pokud byste vyvíjeli webovou aplikaci s plnou podporou PWA: push notifikace, offline režim a další vychytávky, vývoj zabere 200-300 člověkohodin, ale produkt bude ihned dostupný na všech platformách. To znamená úsporu přibližně 2x, nemluvě o tom, že nebudete muset platit za umístění v obchodech s aplikacemi.
Serverless
Toto je další moderní přístup k vývoji. Kvůli názvu si mnozí myslí, že se jedná skutečně o bezserverový vývoj, není potřeba psát back-end kód a jakýkoli front-end vývojář může udělat plnohodnotnou webovou aplikaci. Ale není tomu tak!
Při vytváření serverless aplikace je stále potřeba server a také databáze. Hlavním rozdílem tohoto přístupu je, že back-end kód je prezentován ve formě cloudových funkcí (další název pro serverless je FaaS, funkce jako služba) a umožňuje aplikaci rychle a snadno škálovat. Při vytváření takové aplikace se vývojář může soustředit na obchodní úkoly a nemusí přemýšlet o škálování a nastavení infrastruktury, což následně zrychluje vývoj aplikace a snižuje její náklady. Navíc serverless přístup pomůže ušetřit na nájmu servery, protože používá přesně tolik zdrojů, kolik je potřeba k vykonání úkolu, a pokud není zátěž, serverový čas se vůbec nevyužívá a neplatí se.
Například velká americká mediální společnost Bustle dokázala snížit náklady na hosting více než 60 % přechodem na serverless. A společnost Coca-Cola, při vývoji automatizovaného systému pro prodej nápojů prostřednictvím automatů, dokázala snížit náklady na hosting z 13 000 $ na 4 500 $ ročně díky přechodu na serverless.
V posledních dvou letech se kvůli novosti a svým omezením serverless převážně používal pro malé projekty, startupy a MVP, ale dnes, díky evoluci softwaru, univerzálnosti a síle kontejnerizace serverů, se objevují nástroje, které umožňují odstranit omezení, zjednodušit a urychlit vývoj cloudových aplikací.
To znamená, že korporátní obchodní scénáře, ve kterých byla cloudová modernizace dříve považována za nemožnou (například pro periferní zařízení, přenášená data nebo aplikace se zachováním stavu), jsou nyní realitou. Dobré nástroje, které slibují velký potenciál, jsou kNative a serverless enterprise.
Ale i přesto, serverless není stříbrná kulka pro vývoj webových aplikací. Stejně jako jakákoli jiná technologie má své výhody a nevýhody a je třeba s pochopením vybírat tento nástroj, a "nenažívat se zatloukat hřebíky mikroskopem" jen proto, že je technologičtější.
Abychom vám pomohli se zorientovat, zde je několik příkladů, kdy by stálo za to přemýšlet o serverless při vývoji nového nebo vylepšení současného webového servisu:
- Když je zátěž na server periodická a platíte za nevyužité kapacity. Například jsme měli klienta se sítí kávovarů, který potřeboval zpracovávat požadavky a shromažďovat statistiky jen několik stovek nebo tisíc krát denně, zatímco v noci počet požadavků klesal na desítky. V tomto případě je mnohem efektivnější platit pouze za skutečné využití zdrojů, proto jsme navrhli a realizovali řešení na Serverless.
- Pokud neplánujete se ponořit do technických detailů infrastruktury a neplatit navíc za nastavení a podporu serverů a vyvažovačů. Například při vývoji tržiště přesně nevíte, jaká bude návštěvnost, nebo naopak plánujete velkou návštěvnost a chcete, aby vaše aplikace určitě zvládla zátěž, Serverless je skvělá volba.
- Pokud potřebujete provádět nějaké streamovací události v hlavní aplikaci, zapisovat vedlejší data do tabulek nebo provádět nějaké výpočty. Například sbírat analytické údaje o uživatelských akcích, zpracovávat je určitým způsobem a ukládat do databáze.
- Pokud je třeba zjednodušit, zjednotit nebo urychlit aktuální práci aplikace. Například vytvořit služby pro zpracování obrázků nebo videí, když uživatel nahrává video do cloudu a transcoding řídí samostatná funkce, zatímco hlavní server pokračuje v běžném režimu.
Pokud potřebujete zpracovávat události z externích služeb. Například zpracovávat odpovědi od platebních systémů nebo přesměrovávat uživatelská data do CRM pro urychlení zpracování požadavků potenciálních klientů.
Pokud máte velkou aplikaci a některé části aplikace mohou být realizovány efektivněji pomocí jazyka, který se liší od hlavního. Například máte projekt v Javě a potřebujete přidat novou funkčnost, ale nemáte volné ruce, nebo realizace v tomto jazyce může trvat déle a existuje již řešení v jiném jazyce, Serverless vám může pomoci i v tomto.
To není zdaleka celý seznam nástrojů a technologií, které si zaslouží pozornost, sdílím jen to, co sami každodenně používáme v práci a přesně víme, jak mohou pomoci podnikání.
Zdroj: habr.com
