Pojem

Mikroslužby

Architektúra softvéru, pri ktorej sa aplikácia skladá z mnohých malých samostatných služieb, z ktorých každá rieši jednu oblasť a komunikuje cez API. Uľahčuje nezávislý vývoj a škálovanie, zvyšuje však zložitosť prevádzky.

Aktualizované

Čo to znamená

Mikroslužby sú softvérová architektúra, v ktorej sa aplikácia skladá z mnohých malých samostatných služieb. Každá rieši jednu oblasť, napríklad objednávky, platby, sklad či fakturáciu, má vlastné dáta a s ostatnými komunikuje cez API, najčastejšie cez REST API alebo správy.

Opakom je monolit, teda jedna veľká aplikácia, kde sú všetky časti prepojené v jednom kóde a nasadzujú sa naraz. Monolit je jednoduchší na začiatku, ale pri raste sa ťažšie mení a škáluje. Mikroslužby umožňujú, aby rôzne tímy vyvíjali a nasadzovali svoje časti nezávisle.

Mikroslužby sa zvyčajne prevádzkujú v kontajneroch, ktoré zabezpečuje kontajnerizácia, a riadia ich orchestrátory ako Kubernetes. Vďaka tomu sa dá každá služba škálovať zvlášť, napríklad pridať výkon len platobnej službe počas výpredaja.

Ako to funguje v praxi

Architektúra sa oplatí pri veľkých a rýchlo rastúcich aplikáciách s viacerými tímami, kde je dôležitá samostatnosť a častá zmena. Nasadzovanie každej služby prebieha automaticky cez CI/CD a jej prevádzku zabezpečuje tím v kultúre DevOps, ktorý za službu zodpovedá od vývoja po prevádzku.

Rozdelenie aplikácie na služby by malo zodpovedať obchodným oblastiam, nie technickým vrstvám. Služba pre fakturáciu by mala obsahovať všetko, čo k fakturácii patrí, aby sa pri zmene pravidiel, napríklad pri e-fakturácii, nemuselo upravovať desať rôznych častí.

Pri mnohých službách je nevyhnutné centrálne sledovanie logov, metrík a priebehu požiadaviek naprieč službami. Bez neho je hľadanie chyby, ktorá vznikne niekde v reťazci piatich služieb, veľmi zdĺhavé. Dôležitá je aj dokumentácia rozhraní medzi službami.

Na čo si dať pozor

Mikroslužby výrazne zvyšujú zložitosť prevádzky: viac nasadení, sietí, monitorovania a možností zlyhania komunikácie. Pre malý tím alebo jednoduchý produkt je často lepší dobre štruktúrovaný monolit, ktorý sa dá rozdeliť neskôr, keď na to budú skutočné dôvody.

Keďže každá služba má vlastné dáta, je ťažšie zabezpečiť konzistenciu, napríklad aby sa objednávka, platba a skladový pohyb vždy zhodovali. Pri finančných a účtovných procesoch treba dôkladne navrhnúť, ako sa riešia chyby a opakovania, aby nevznikli duplicitné platby či chýbajúce doklady.

Potrebujete pojem vysvetliť na vašej konkrétnej situácii? Konzultácie od 55 € / hodina bez DPH, podľa témy a zložitosti.