Architektúra mikroslužieb – detaily R&D aktivít (3. časť)

Touch4IT redakcia
Touch4IT
Feb 03, 2022
2 min read
microservices architecture touch4it

Počas niekoľkoročnej skúsenosti s mikroslužbami sme si prešli viacerými výzvami: Ako zabezpečiť neustále vymieňanie si vedomostí v rámci tímu? Ako prebieha proces voľby programovacieho jazyka, frameworku alebo databázy, ktorá bude našim potrebám vyhovovať čo najlepšie? Je možné z našich modulov vyvinúť aj monolitickú aplikáciu?

Zdieľanie vedomostí

Vo svete mikroslužieb existuje omnoho väčšia potreba výmeny informácií v rámci tímu ako v monolitickom svete, pretože narozdiel od monolitických aplikácií, mikroslužbové aplikácie sú nepriamo prepojené navzájom, nakoľko používajú rovnaké služby. Informovanosť v tíme udržiavajú najmä pravidelné týždenné stretnutia, kde preberáme zmeny a rozšírenia, a taktiež písomná komunikácia v komunikačnom kanáli. Dôležitý je aj pohľad do minulosti, preto každý rok končíme sumarizačným stretnutím, kde diskutujeme nielen plány na ďalší rok, ale aj stav vecí z predošlého obdobia.

Spolupráca

Vývojár implementujúci zmenu musí zabezpečiť jej spätnú kompatibilitu, aby neboli ovplyvnené žiadne iné aplikácie používajúce službu. Keď je výsledkom prác vydanie novej verzie, je k nej vytvorený aj návod na prechod na túto verziu zo staršej. Ak by kvôli tomu mal byť aktualizovaný aj iný projekt, tento návod zdieľa vývojár projektovému tímu alebo priamo pripraví balíky zmien a odovzdá ich na schválenie. Tieto situácie zapríčinené používaním rovnakých mikroslužieb naprieč viacerými projektami sú príčinou značného nárastu úsilia a s tým spojeného aj stráveného času, čo pri monolitickej architektúre nepozorujeme, pretože tam sa rovnaké služby nezdieľajú.

Prieskum a vývoj

Keďže je takmer pravidlom, že každá časť mikroslužby bude použitá viacerými aplikáciami, pred každou novou veľkou funkcionalitou, integráciou novej technológie, či spoluprácou s treťostrannou službou, musí prebehnúť dôkladný prieskum. Do úvahy berieme biznis požiadavky prichádzajúce z viacerých projektov, čo nám dáva väčší rozhľad a pomáha nám rozmýšľať o riešení viac všeobecnom, ktoré bude nielen vyhovovať aktuálnym potrebám, ale aj do budúcna otvorí priestor novým rozšíreniam.

Vzdali sme sa monolitických aplikácií úplne? Určite nie. Niektoré produkty nemajú vysoké požiadavky na výkon, keďže to z ich biznis zamerania či vízie budúceho rozvoja nevyplýva, a preto nie je nutné, aby na ich účel zbytočne bežalo 10 Docker kontajnerov, ktoré by len míňali hardvérové prostriedky a neboli by nikdy plne využité. Aj monolitické aplikácie vedia používať služby z našich mikroslužieb, a to sme dosiahli držaním sa jedného frameworku naprieč všetkými mikroslužbami. Vieme tak napríklad pomocou Git Submodules importovať jednotlivé služby do aplikácie individuálne, čo výrazne pomáha prepoužiteľnosti.

Závery

Začlenenie viacerých mozgov do procesu vedie k zvažovaniu viacerých aspektov a vytvárania nových nápadov na ceste k tej správnej voľbe pre každý produkt šitý na mieru. Týmto spôsobom sme schopní vyvíjať nielen veľké informačné systémy, ale aj menšie aplikácie stále benefitujúce z prepoužívania existujúcich funkcionalít so zachovaním ich nenáročného behu a údržby, čím našim zákazníkom nevznikajú zvýšené náklady.

Autori:Dávid Ondruš,Richard Roštecký