A Telekom kötetlen, mellébeszélés nélküli szakmai rendezvénysorozatának legfrissebb eseménye egy fejlesztők számára igen fontos témakörre fókuszál. Előzetesként az előadókat faggattuk arról, mik is azok a microservice architektúrák.
Mielőtt rátérnénk, miért jó a microservice, talán gyorsan próbáljuk meg azt tisztázni, mit is jelent a fogalom. Stégmár Balázs, a Telekom szoftvermérnöke a téma alapvetésének számító szakkönyv szerzőjét, Sam Newman-t idézve úgy fogalmazott, hogy a microservice-ek olyan egymástól függetlenül telepíthető egységek, amelyek határait egy adott üzleti folyamat szorosabban összefüggő kontextusa határozza meg. Ezt egy kicsit alapabbra véve nagyjából úgy magyarázható el a technológia, hogy ha példaként egy webáruházat veszünk alapul, azt nem egyetlen, összefüggő webshop alkalmazás szolgálja ki, hanem több kisebb, egymással együttműködő, de mégis önálló működésre képes alkalmazás.
Mi ennek az előnye? Major Balázs, a Telekom vezető fejlesztője szerint több szempontból is érdemes a monolitikus megközelítésről a microservice architektúrák felé elmozdulni. Ezek közül az egyik legfontosabb az, hogy így már nincs szükség arra, hogy egyetlen “nagy” alkalmazás frissítésekor, javításakor, karbantartásakor az egész alkalmazást le kelljen állítani, majd az adott részegység helyretétele után egyben frissíteni és újratelepíteni vagy újraindítani. A webshopos példánál maradva így lehet azt elérni, hogy ha a fizetési microservice leáll, vagy épp egy új funkciót kell hirtelen beleépíteni, az áruház teljes üzletmenete nem áll meg, a vásárlók továbbra is elérik a termékkatalógust, az információs oldalakat, sőt akár a kosarukba is tehetik a kiválasztott árukat, legfeljebb a fizetésnél kapnak egy olyan üzenetet, hogy várjanak pár percet és próbálják újra.
Sok kicsi sokra megy
Neve ellenére egy microservice nem feltétlenül kicsi, a megnevezés inkább a teljes alkalmazás többi részétől való független működésére utal. Stégmár Balázs szerint ez a szemlélet azt is segíti, hogy akár különálló fejlesztői csapatokra bízható az egyes komponensek fejlesztése és karbantartása, sőt még az is elképzelhető, hogy az egyes microservice-eket külön programnyelvben készítik el. Szintén kiemelte, hogy a biztonság terén is előnyös az önállóan működő részegységek használata, hiszen így az adatok egy helyen történő kezelése helyett az adott kontextushoz tartozó üzleti adatokat a megfelelő részegység kezeli, így azok biztonsága is növelhető.
A tapasztalatok szerint a microservice architektúrák jelentősége komolyan megnőtt az elmúlt években, ugyanis egyre többen jönnek rá, hogy ez megkönnyíti a skálázhatóságot, a karbantarthatóságot és a többszálú megközelítés miatt meggyorsítja a fejlesztési folyamatokat. Az is elmondható, hogy az új fejlesztők bevonása esetén a tanulási görbe is megrövidülhet.
Felesleges duma nélkül
A Telekom novemberi IT Meetupja az eddigi eseményekhez hasonlóan azt a szlogent alkalmazza, miszerint itt nincs mellébeszélés és szócséplés, az előadók és panelbeszélgetés-résztvevők valós példákkal szemléltetik a téma alapjait és közvetlenül tudnak kérdésekre is válaszolni. Major Balázs szerint főleg olyan szakembereket várnak, akik csak mostanában kezdtek microservice-alapú fejlesztésekbe, vagy akár még csak gondolkodnak azon, hogy kiváltják a monolitikus szemléletet.
A meetup során egyrészt bővebben szó esik a microservice architektúrák alkalmazásának előnyeiről, a fontosabb tudnivalókról: a Telekom szakértői például saját példáik alapján beszélnek arról, hogyan tudták átalakítani a monolitikus rendszert microservices alapú alkalmazásokká, bemutatják azt is, milyen típusú komponensekre darabolták a meglévő rendszert (itt jellemzően BFF, publish subscribe és REST alapú szolgáltatásokról lesz szó).
Emellett kiemelt altémák is sorra kerülnek. Ilyen például, hogy ugyan az egymással kommunikáló microservice-ek alapvetően nyelvfüggetlenek, mégis vannak olyan nyelvek és keretrendszerek, amelyek a tapasztalatok alapján hatékonyabbak vagy kényelmesebbek lehetnek az egyes modulok elkészítésére. Itt szó esik a Kotlin nyelvről és a Spring keretrendszerről, valamint a Node.js és Go nyelvi képességének kihasználásáról nagyvállalati környezetben. Stégmár Balázs szerint a közös programnyelv használata olyan esetekben lehet kifizetődő, amikor az egyes modulokat fejlesztő és karbantartó csapatok erőforrás-elosztását kell kezelni, hiszen ha egy adott microservice épp több munkát igényel, könnyebben át lehet irányítani más szolgáltatásokért felelős csapatokból munkatársakat. Így egy idő után egy szervezetben a nyelvfüggetlenség mellett is kialakulhatnak azok a gyakorlatok, amelyek a hatékonyságot magasabb szintre emelhetik.
Az IT Meetup sorozat az informatikai biztonsággal foglalkozó és a Kubernetes platformra fókuszáló események után novemberben a microservice architektúrákkal foglalkozik. A meetup november 17-én délután hat órakor kezdődik, helyszín a Liftoff (1066 Budapest, Weiner Leó u. 4.), de akinek úgy kényelmesebb, online is csatlakozhat. Mindkét mód ingyenes, de előzetes regisztrációhoz kötött, amelyet az esemény aloldalán lehet elvégezni.