facebook LinkedIN LinkedIN - follow
IT SYSTEMS 9/2023 , Trendy ICT

Přechod na mikroservisní architekturu aneb jak zrychlit zavádění digitálních inovací ve firmách

Lukáš Bartoš


Využití technologií je dnes jedním z hlavních aspektů, které firmy odlišují od konkurence. Přitom je ovšem důležité zajistit, aby společnost vždy našla rovnováhu mezi budoucí flexibilitou technologií a návratností svých současných investic do technologií. Technologie se totiž vyvíjejí neuvěřitelně rychlým tempem a s tím souvisí i potřeba aplikací, které lze snadno škálovat a které jsou dostatečně agilní, aby mohly lépe fungovat při kontinuálním vývoji. Právě takto neustále se vyvíjející požadavky daly vzniknout technologiím, jako jsou mikroslužby a mikroservisní architektura, které postupně nahrazují rigidní monolitické systémy, jejichž jakákoli úprava je spojena s nepředvídatelným rizikem a velkým úsilím.


Mikroservisní přístup představuje variantu softwarové architektury, kde složité aplikace jsou – na rozdíl od monolitu – rozděleny do menších, nezávislých a samostatně nasazovatelných modulů, které běžně pokrývají jednu byznys nebo technickou funkcionalitu. Příkladem může být modul pro výpočet ceny, který volají ostatní moduly, když s ní potřebují pracovat. Výpočet ceny je tak nezávislý na zbytku aplikace a jeho rozhraní mohou využívat jiné moduly stejné aplikace, nebo případně další aplikace třetích stran. Příkladem modulu, který není byznysově zaměřený, je typicky gateway modul používaný jako rozhraní pro celý systém, který směruje jednotlivé požadavky na ostatní moduly a odstiňuje tak třetí strany nebo FE aplikace od složitosti mikroservisního návrhu.

Poprvé termín „mikroservisy“ použil v roce 2002 Martin Fowler, když psal o „Inverted Pyramid“ patternu. Ovšem první konkrétní zmínka o mikroservisní architektuře pochází od Dr. Petera Rodgera v roce 2005. Od té doby se začala tato myšlenka šířit a stále více vývojářů začalo uvažovat o rozdělení monolitických aplikací na menší komponenty.

V roce 2011 prezentoval Netflix svou architekturu „Cloud Native“, která využívala mikroservisy pro rychlé nasazování a škálování. Tento trend následovaly i další velké společnosti, jako Amazon nebo Twitter, které začaly rovněž používat mikroservisy a publikovaly své zkušenosti.

V následujících letech se rozvinulo mnoho open-source nástrojů a frameworků, jako je Docker (2013) pro kontejnerizaci, Kubernetes (2014) pro správu kontejnerů, a další, což dále usnadnilo implementaci mikroservisní architektury.

Nicméně přechod na mikroservisy nebyl snadný a často se setkával s komplexností a výzvami v provozu a správě distribuovaných systémů. Avšak výhody, jako je snadnější škálovatelnost, nezávislé nasazování, zlepšená robustnost a agilita, vedly k jejich široké adopci v byznysu, ale i v dalších oblastech.

Inovace urychlená až o 80 %

Společnost Gartner předpovídá, že organizace, které adoptují mikroservisní přístup, předstihnou svou konkurenci o 80 % v rychlosti implementace nových funkcí. Stejně jako technologie, tak i zákaznické preference se neustále mění a vyvíjejí v turbulentním tempu. A právě mikroservisní architektura umožňuje digitální infrastruktuře rychle reagovat na měnící se podmínky na trhu a přizpůsobovat se potřebám zákazníků. Podle studie Gartner totiž mikroservisní architektura snižuje čas potřebný na vývoj nových funkcí až o 80 % a zvyšuje rychlost jejich nasazení až o 90 %. V současném konkurenčním prostředí je totiž rychlé uvádění nových funkcí a inovací na trh klíčovým faktorem pro úspěch společností.

Další benefity mikroservisní architektury

Nezávislost vývoje
Mikroservisní architektura umožňuje velkou flexibilitu na straně SW dodávek, protože jednotlivé moduly komunikují pomocí standardizovaných protokolů nezávisle na jejich programovacím jazyce. Z toho vyplývá, že každý modul může být vytvořený v jiné technologii a jiným dodavatelem dle vhodnosti použití.

Robustnost byznys procesů
Mikroservisní architektura umožňuje snadno přizpůsobovat jednotlivé části byznys procesů a snadno je nahrazovat, případně zkoušet nahradit jednotlivé části napojením na nový modul. Lehce se dá přitom vše navrátit k původnímu stavu. Z toho vyplývá volnost pro možné experimenty s jistotou stability řešení.

Integrace řešení s dalšími systémy
Mikroservisní architektura umožňuje snadnou orchestraci integrací s dalšími systémy a technologiemi, které může řídit naprosto nezávisle.

Data
Mikroservisní architektura umožňuje snadnou integraci různých nástrojů do jednotlivých modulů pro monitorování a analýzu chování zákazníků, jako jsou například nástroje pro sledování uživatelského rozhraní nebo služby pro sběr a analýzu dat. Tyto informace mohou být použity pro vylepšení zákaznické zkušenosti a personalizovaných služeb i produktů.

Bezpečnost
Mikroservisní architektura umožňuje jednotlivě zabezpečit jednotlivé moduly a může zlepšit bezpečnost e-shopu tím, že umožní izolovat a chránit konkrétní služby proti útokům. Kvalitnější zabezpečení může zvýšit důvěru zákazníků a vést tak k většímu počtu opakovaných nákupů.

Zlepšení komunikace
Mikroservisní architektura může také pomoci zlepšit komunikaci se zákazníky prostřednictvím různých kanálů, jako jsou e-maily, SMS zprávy, chatovací aplikace nebo sociální média, což opět může fungovat jako faktor zvyšující zákaznickou angažovanost a spokojenost.

Problém s dodavateli
IT infrastruktura, stojící na mikroservisní architektuře, s sebou nese ještě jeden klíčový benefit, kterým je svoboda. Řada firem, jejichž technologie jsou založeny na jednom dodavateli služeb (monolitu), se pravidelně dostávají do situace, kdy jsou odkázány na jeho fungování a výkonnost. Pokud dodavatel nerealizuje své služby v dostatečné kvalitě nebo z jeho strany dochází k výpadkům, může to mít vážné důsledky pro celou společnost.

Problémy mohou vést k narušení provozu portálů, snížení spokojenosti zákazníků či ztrátě obchodu.

Další nevýhodou závislosti na jednom technologickém dodavateli je, že společnost nemá možnost porovnávat a vybírat z více dodavatelů. Výsledkem často bývá zvýšení nákladů a snížení konkurenceschopnosti.

Naopak, pokud digitální systém používá mikroservisní architekturu, může oddělit různé funkcionality do samostatných mikroservisů. Umožňuje tak volbu mezi různými dodavateli a případně jejich snadnou výměnu. Navíc přechod na mikroservisní architekturu může být postupný proces. Tím pádem se eliminuje nutnost předělávat digitální řešení zcela kompletně od začátku, což je většinou i naprosto nereálné. Mnohem praktičtější a levnější volbu představuje postupná dekompozice a budování mikroservisní architektury.

Proč mikroservisy představují budoucnost?

S tím, jak pokračuje vývoj digitálního věku, je jasné, že mikroslužby nejsou jen přechodným trendem, ale významným posunem v tom, jak přemýšlíme o softwaru a technologiích.

Mikroslužby (mikroservisní architektura) také nejsou samy o sobě konečným cílem, ale spíše strategií nebo cestou, jak dosáhnout určitých posunů v oblasti softwarového vývoje a řešení podnikových problémů. Tuto cestu budou ovlivňovat a modelovat i další nové trendy, které postupně nabírají na relevanci.

Na mikroslužby bude mít například zásadní vliv vzestup serverless computingu, který umožňuje vývojářům vytvářet a spouštět aplikace bez nutnosti spravovat servery, čímž se snižuje provozní složitost a náklady. To je pro mikroslužby obzvláště výhodné, protože to umož­ňu­je nasazení každé služby nezávisle a škálovat podle poptávky.

Dalším trendem, který je třeba sledovat, je rostoucí zavádění kontejnerů. Kontejnery poskytují konzistentní prostředí pro běh softwaru, rovněž usnadňující vývoj, nasazení a škálování mikroslužeb. Docker a Kubernetes se staly de facto standardy pro kontejnerizaci, respektive orchestraci.

V mikroslužbách se také prosazují umělá inteligence (AI) a strojové učení (ML), přičemž obě technologie lze využít k automatizaci správy mikroslužeb, čímž se zvýší efektivita a sníží riziko lidské chyby. AI se dá aplikovat například v rámci automatického škálování mikroslužeb na základě poptávky, zatímco ML půjde použít k předvídání budoucí poptávky a proaktivnímu škálování služeb podle ní.

Internet věcí (IoT) je další oblastí, kde budou mikroslužby hrát klíčovou roli. Ten zahrnuje připojení obrovského množství zařízení k internetu, z nichž každé generuje velké množství dat. Mikroslužby jsou pro zpracování těchto dat ideální, protože je můžeme nezávisle škálovat podle poptávky. S dalším rozvojem této technologie se poptávka po mikroslužbách pravděpodobně zvýší.

A konečně, budoucnost mikroslužeb bude určovat rostoucí význam ochrany soukromí a bezpečnosti dat. Z důvodu, že mikroslužby často zahrnují více služeb komunikujících po síti, mohou být zranitelné vůči bezpečnostním hrozbám. Tyto problémy by však mohly pomoci řešit nově vznikající technologie, jako je blockchain. Blockchain pak pří­pad­ně poskytne bezpečný, decentralizovaný způsob ukládání a sdíle­ní dat, což z něj činí zajímavou možnost zabezpečení mikroslužeb.

Všechny tyto trendy nepochybně přinesou vývojářům i firmám nové příležitosti a výzvy, které – když se jich nezaleknou – s sebou přinesou nespornou konkurenční výhodu. Navíc s rostoucí oblibou cloudových služeb a zdůrazňováním flexibilního přístupu vývoje se mikroservisní architektura stane ještě více oblíbenou a bude hrát klíčovou roli v budoucnosti moderního softwarového inženýrství.

Lukáš Bartoš Lukáš Bartoš
Autor článku je Business / IT analytik v konzultačně-technologické společnosti Lundegaard, která se už od roku 1997 věnuje vývoji softwarových nástrojů pro firmy v Česku, na Slovensku a v Německu.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.


Inzerce

Vstoupit či nevstoupit? To je oč tu běží.

Zvyšte komfort svých meetingů s MeetPointem

Překvapí vás občas neplánovaný meeting, pro který potřebujete rychle najít volnou zasedačku, ale nemáte po ruce kalendář? Nezbývá než jít tzv. naslepo. Vezmete za kliku a vstoupíte dovnitř zasedačky, kde vás okamžitě probodnou pohledem oči vašeho kolegy, který má v dané místnosti schůzku. Vykoktáte ze sebe omluvu a s ruměncem ve tvářích místnost v rychlosti opustíte. Tentokrát to nevyšlo.