Go headless #3 – Mikroslužby a architektura
Architektura mikroslužeb je způsob vytváření softwarových aplikací, při kterém je aplikace rozdělena na malé, nezávislé a volně provázané služby. Pojďme se podívat na jejich význam v kontextu headless přístupu.
Ačkoli samotné slovo mikroslužby může evokovat, že architektura je „malá“, znamená spíše, že je štíhlá. Každá služba je zodpovědná za určitou obchodní funkci a komunikuje s ostatními prostřednictvím rozhraní API.
Mikroslužby si lze představit jako prvky, které lze různými způsoby skládat dohromady a vytvořit tak požadovaný systém. Tento přístup má oproti tradiční monolitické architektuře několik výhod, takže je pro mnoho organizací atraktivní volbou.
Monolitická architektura
Monolitickou architekturu představují platformy typu „all-in-one“, které poskytují univerzální řešení pro webové stránky. Tento provázaný systém má jednu kódovou základnu, která poskytuje vše potřebné pro správu webového obsahu. Můžete si ho představit jako velmi složitou strukturu, která zahrnuje všechny potřebné komponenty v jednom ekosystému.
Tato architektura nám dlouhou dobu sloužila dobře, ale je na čase se posunout dál. Když používání mobilního internetu začalo převyšovat přístupy ze stolních počítačů, stala se povaha monolitické architektury typu „vše v jednom“ spíše překážkou než pomocí. Značky nyní potřebují poskytovat služby spotřebitelům na různých zařízeních a prostřednictvím různých kanálů.
Problémy monolitické architektury
Nízký výkon
- systémy se postupem času stávají složitějšími a robustnějšími
Škálovatelnost
- je obtížné rozdělit úkoly frontendu mezi více týmů
Flexibilita
- změnou frontendu za účelem přizpůsobení nebo personalizace ovlivníte i backend, jedná se o časově a kapacitně velmi náročné řešení
- pomalá reakce na trendy a očekávání zákazníků
- křehkost – díky vzájemné závislosti všech komponent stačí jedna chyba a celý systém se může zhroutit
Výhody mikroslužeb
Jednou z hlavních výhod architektury mikroslužeb je, že umožňuje větší flexibilitu a škálovatelnost. Díky rozdělení aplikace na malé, nezávislé služby je snazší provádět změny. Když změníte jednu službu, nemá to vliv na ostatní.
To znamená, že organizace mohou službu aktualizovat, rozšiřovat nebo nahradit, aniž by se musely starat o to, jaký to bude mít dopad na zbytek aplikace. Architektura mikroslužeb umožňuje rychlejší nasazení, protože každou službu lze nasadit nezávisle na ostatních.
Další výhody:
- Lepší výkon – můžete si vybrat ty nejvýkonnější služby a rozvíjet je odděleně od ostatních
- Lepší organizace – lepší celková organizace mezi službami (každá služba má vlastní kódovou základnu a specifickou roli)
- Rozšířená konfigurace – samostatné služby lze snadněji rekonfigurovat tak, aby plnily různé funkce
- Méně chaosu – díky paralelnímu vývoji dochází k méně zásahům a překryvům mezi různými službami
V souladu s trendy
Architektura mikroslužeb také usnadňuje integraci nových technologií. U tradiční monolitické architektury je často obtížné integrovat nové technologie nebo nástroje, protože je třeba je začlenit do stávající struktury. S architekturou mikroslužeb lze nové technologie integrovat do konkrétních služeb, což usnadňuje držet krok s nejnovějšími trendy ve vývoji webových aplikací.
Samozřejmě tu nejsou jen výhody, ale i pár nevýhod. Architektura mikroslužeb se hůře ladí, protože transakce probíhají přes více aplikací. Nicméně díky tomu, že existuje již nějakou dobu, jsou na trhu k dispozici nástroje, které tento problém řeší. Jedním z nich je např. New Relic.