- Přehledy IS
- APS (20)
- BPM - procesní řízení (22)
- Cloud computing (IaaS) (10)
- Cloud computing (SaaS) (33)
- CRM (51)
- DMS/ECM - správa dokumentů (20)
- EAM (17)
- Ekonomické systémy (68)
- ERP (77)
- HRM (27)
- ITSM (6)
- MES (32)
- Řízení výroby (36)
- WMS (29)
- Dodavatelé IT slueb a řeení
- Datová centra (25)
- Dodavatelé CAD/CAM/PLM/BIM... (39)
- Dodavatelé CRM (33)
- Dodavatelé DW-BI (50)
- Dodavatelé ERP (71)
- Informační bezpečnost (50)
- IT řeení pro logistiku (45)
- IT řeení pro stavebnictví (26)
- Řeení pro veřejný a státní sektor (27)
ERP systémy
CRM systémy
Plánování a řízení výroby
AI a Business Intelligence
DMS/ECM - Správa dokumentů
HRM/HCM - Řízení lidských zdrojů
EAM/CMMS - Správa majetku a údrby
Účetní a ekonomické systémy
ITSM (ITIL) - Řízení IT
Cloud a virtualizace IT
IT Security
Logistika, řízení skladů, WMS
IT právo
GIS - geografické informační systémy
Projektové řízení
Trendy ICT
E-commerce B2B/B2C
CAD/CAM/CAE/PLM/3D tisk![]() | |
| Přihlaste se k odběru newsletteru SystemNEWS, který kadý týden přináí výběr článků z oblasti podnikové informatiky | |
![]() | |
Architektura mikroslueb je zárukou efektivního vývoje
Na co si ale dát pozor?
Mikrosluby rozhodně nepatří mezi novinky na poli softwarové architektury, přesto jsou diskuze o nich stále ivé, stejně jako dohady o jejich efektivitě. Jak přesně fungují, v čem se lií od monolitické architektury a jaké jsou jejich nevýhody? Tyto otázky zodpovíme v článku a připojíme i pět tipů, které pomohou s rozhodováním o designu aplikační architektury.

Mikrosluby (microservices) představují specifický způsob vývoje software, který slibuje lepí kálovatelnost, monost nasazení v různých prostředích a dobře provázané inteligentní endpointy schopné samostatně vyhodnocovat příchozí poadavky a vzájemně komunikovat prostřednictvím jednoduchých mechanismů.
V praxi to znamená předevím efektivnějí vývoj, ale i lepí uivatelskou zkuenost. Dobře postavená architektura mikroslueb díky segmentaci na jednotlivé části toti eliminuje počet případů, kdy selhání na straně aplikace ovlivní jejího uivatele a znemoní mu například dokončit objednávku.
Tradiční způsob vývoje a nasazování aplikací představuje monolitická architektura. Funguje jako nedělitelná jednotka spravovaná centrálně a zahrnuje stranu serveru, klienta i databáze. Vekeré změny prováděné v rámci monolitické architektury se propisují ploně do jednoho kódu, který se vlivem roziřování aplikace stává komplexním, sloitým a můe tedy i prodluovat samotný vývoj.
V řadě případů monolit stále dobře funguje. Na největí problémy ale naráí v cloudu. Kvůli své provázanosti se musí při kadé aktualizaci provést přestavba a znovunasazení celé architektury. Zajistit, aby změna ovlivnila vdy jen konkrétní část aplikace není jednoduché, a můe proto dojít k naruení modulární struktury. Problematické je i kálování, které nelze přizpůsobit jednotlivým částem aplikace, ale roziřuje ji celou nezávisle na mnoství poadovaných zdrojů.
V čem jsou mikrosluby lepí ne monolitická architektura?
Přesně v těchto situacích můe architektura postavená na mikroslubách pomoci. Na rozdíl od monolitu architektura mikroslueb rozděluje aplikaci do několika logicky souvisejících procesů (slueb či mikroslueb), které fungují jako nezávislé jednotky, samostatně kálovatelné, nahraditelné a jasně oddělené od ostatních. Kadá taková mikrosluba má svou vlastní úlohu.
Aby byly jednotlivé mikrosluby provázány, musí spolu komunikovat, a to buď přímo nebo nepřímo (synchronně/asynchronně). Volání funkcí nebo metod zajiuje, jak u je zmíněno výe, jeden ze standardních protokolů, a to buď HTTP a API, STOMP (Simple Text Oriented Message Protocol) nebo protokol MQTT (MQ Telemetry Transport). V tomto ohledu vychází architektura mikroslueb z konceptu léty prověřených unixových systémů.
Monolitická architektura (vlevo) se skládá ze 3 částí UI (uivatelské rozhraní), business logic někdy také service layer (logika řídící komunikaci mezi uivatelským rozhraním a databází) a data acces layer (umoňuje přístup k datům uloeným v databázi). Architektura mikroslueb vpravo rozděluje procesy do jednotlivých mikroslueb, na jejich úrovni se zpracovávají poadavky a zpravidla kadá z nich pracuje i se svou vlastní databází.
Rychlejí vývoj nových verzí a variabilita jazyků
Izolovanost mikroslueb zajiuje mimo jiné jedny z nejčastěji zmiňovaných výhod tohoto typu softwarové architektury vývoj a nasazování nových verzí jednotlivých mikroslueb nezávislými týmy, které často programují i ve zcela odliných jazycích.
Výsledkem je minimální ovlivnění vývoje ostatních mikroslueb a naruení celého systému i rychlejí schvalování změn ze strany managementu. Neplatí to sice pauálně, protoe některé změny jsou rozsáhlejí a mohou ovlivnit i jinou mikroslubu, co vyaduje spolupráci jiného týmu například při změnách rozhraní (API). Obecně ale tento design vývoje směřuje k eliminaci těsného propojení mikroslueb a podporuje rychlejí souběný vývoj, automatické nasazování a testování.
Nasazení a provoz mikroslueb jde ruku v ruce s kontejnerizací. Umoňují ji nástroje vytvořené speciálně k těmto účelům. Mezi ty nejznámějí patří třeba Docker nebo Kubernetes.
Volba adekvátních nástrojů
Přestoe lze mikrosluby orchestrovat z jednoho nástroje, např. Kubernetes, mají decentralizovanou povahu a díky tomu lze pro kadou jednu mikroslubu a procesy, je zahrnuje, pouít odpovídající technologie. V rámci monolitu jsou takové postupy jen těko realizovatelné, případně omezené.
Mikrosluby otevírají kadému týmu irokou kálu technologií a postupů, které jsou pro danou mikroslubu ideální a které by v monolitické architektuře byly pevně svázány komplexním designem aplikace.
Častým problémem mezi aplikacemi, ale i v rámci jedné aplikace u monolitu je i různá interpretace atributů, která se lií podle toho, zda se na daný proces nahlíí například po obchodní nebo technické stránce. I tomu lze konkrétní mikroslubu přizpůsobit. Pro kadou mikroslubu jde navíc vytvořit i vlastní instanci databázové technologie, případně pouít úplně jiný databázový systém.
Flexibilita architektury sahá jetě dále a kromě různých variant řeení umoňuje i unifikaci a sdílení knihoven pro ty nejběnějí problémy.
Lepí kontrola nad změnami a více moností vyuití kódu
U architektury zaloené na mikroslubách záleí na tom, jak je navrena. Tedy na způsobu, jakým jsou rozděleny jednotlivé procesy, jestli a jak spolu souvisí, z čeho logicky vyplývá i to, zda případné změny v jednom procesu ovlivní druhý apod.
Pořádek v jednotlivých procesech je klíčový a poskytuje vývojářům dokonalý přehled o tom, které funkcionality mohou, případně musí, být updatovány společně a které naopak daná změna vůbec neovlivní. Riziko, e aktualizace jedné mikrosluby bude mít negativní dopad na funkčnost jiné části aplikace, je na rozdíl od monolitické architektury minimální.
Jako bonus mohou části kódu kadé mikrosluby poslouit jako základ pro vývoj nových funkcionalit a usnadnit tak vývojářům práci.

Mikrosluby neodpoutí chyby v designu
Skoro by se mohlo zdát, e nic lepího ne mikrosluby neexistuje. Je tedy s podivem, e je pro své aplikace nevyuívá kadý. Je to nejspí i proto, e tradiční monolitická architektura je shovívavějí k určitým mezerám v návrhu, zatímco pro dobře fungující mikrosluby je perfektní návrh nezbytný. To samozřejmě vyaduje i vyí investice. Jaké dalí nevýhody pramení z architektury mikroslueb?
- Mikrosluby vyadují irí záběr znalostí, uí specializaci a více kapacit.
- Pro komunikaci mezi mikroslubami je nezbytný mechanismus vzdáleného volání, který se neobejde bez API s hrubí granularitou.
- Hrubí granularita API zesloiuje případné přerozdělování odpovědností za procesy mezi mikroslubami.
- Vysoká závislost na síti můe být v reálném provozu problematická a způsobovat selhání aplikace.
- Architekturu je potřeba dobře navrhnout, aby při vícenásobném volání nedolo k ovlivnění uivatelské zkuenosti aplikace.
- Architektura mikroslueb vyaduje pravidelné automatizované testování reálného provozu se zaměřením na hromadná volání, která by mohla ovlivnit stabilitu aplikace.
- Nezbytný je pokročilý monitoring, který upozorní na problémy s latencí nebo propustností sítě v reálném čase.
- Problematické bývá sdílení knihoven a databází mezi mikroslubami v případě, e je mezi sebou příli úzce prováe a naruí tak jejich nezávislost.
- Chyby se mohou objevovat i jinde, ne kde reálně vznikají. Mikrosluby vyadují komplexní přístup ke sběru logů a trasování aplikace.
Kdo ocení aplikační architekturu zaloenou na mikroslubách?
Jako kadé řeení mají i mikrosluby svá pro a proti. Je tedy jasné, e nejsou vhodné pro kadého. Ve firmách s meními týmy vývojářů by komplexnost architektury působila příli velkou zátě a nasazování nových verzí spíe zpomalila.
Naopak aplikacím, které plánují časté updaty, implementaci nových funkcí a vlastností a které mají ambici větího růstu, se vyplatí do architektury mikroslueb investovat. Mikrosluby navíc usnadňují kálování. V takovém případě je zásadní mít k dispozici několik vývojářských týmů, které se mohou soustředit na vývoj jednotlivých mikroslueb.
5 tipů, jak začít s mikroslubami
Správné rozdělení procesů
Zvlátě u aplikací, které se překlápí z monolitické architektury do mikroslueb, je klíčové koncept návrhu kompletně přepracovat. Mikrosluby vyadují naprosto odliné uvaování nad strukturou. Neexistuje v nich ádná centrální správa ani logika, pouze jednotlivé procesy. Pokud mají mikrosluby fungovat dobře, musí mít mezi sebou jasně nastevené rozhraní (API), které stanovuje vzorce chování pro kadou z nich. Následná implementace pak musí toto rozhraní respektovat.
Dobrá organizace vývojových týmů
Výhoda nezávislého vývoje jednotlivých částí aplikace se z pohledu managementu stává oříkem. K vývoji kadé mikrosluby se v ideálním případě přistupuje jako k samostatnému produktu. Kadý tým musí mít vekeré kompetence, aby mohl nejen připravovat nové verze, ale rovnou je i implementovat bez ohledu na to, v jaké fázi vývoje jsou zrovna ostatní. Vývojáři pak lépe pochopí dopad změn na produkční prostředí a sníí i pravděpodobnost, e se případné problémy dostanou k uivateli aplikace.
Udrení snadné komunikace mezi mikroslubami
Vzdálená volání mohou některé procesy prodlouit. Komunikace mezi mikroslubami musí proto vdy zůstat co nejjednoduí, aby byl potenciál architektury mikroslueb naplněn. Základním konceptem této architektury je co nejmení provázanost mikroslueb. Při komunikaci jde o prostý přenos informace, nikoli o jeho zpracování. To se děje a v koncových bodech, tedy jednotlivých mikroslubách.
Komplexní pohled na systém
Navzdory vekeré nezávislosti tvoří mikrosluby stále jednu aplikaci. Pohled na celý balík procesů, na to, jak jsou provázány a co selhání jednoho z nich znamená pro druhý, jsou aspekty, s nimi se musí počítat, aby se u v rámci návrhu omezil počet moných selhání, či zpomalení vlivem horí propustnosti sítě na minimum.
Nepřetritý monitoring
Prioritou kadé aplikace je zajistit, aby ani mení problém neovlivnil zákazníka. Testování různých případů selhání je u mikroslueb nákladné a často ani není reálné vem rizikům předejít. Klíčový je proto monitoring, který včas upozorní na problémy a poskytne dostatečný prostor na ně reagovat. A u jde o výpadky některých částí slueb nebo jejich neočekávané chování. Správně postavené mikrosluby by toti uivatelé měli být schopni bez omezení plně vyuívat ve chvíli, kdy vývojáři pracují na obnově některého z procesů.
Pokud se chystáte pustit do vývoje sami a s koncepcí architektury zatím nemáte moc zkueností, bude lepí začít s monolitickou architekturou a vechny procesy si nejdřív osahat. V současné době se u nových aplikací vyplatí začít rovnou s mikroslubami, co uetří případné náklady na budoucí migraci.
V případě, e u monolit máte a zvaujete přechod do mikroslueb a kontejnerizaci aplikace, nepodceňte přípravu pro přesun na nový typ architektury. Bez ní můe být investice do nového konceptu zcela zbytečná.
![]() |
Veronika Jakubová Autorka článku je PR specialistka společnosti MasterDC. |






















