Grape Solutions Blog

Microservices architektúra

Written by Grape Solutions - Software development | Oct 13, 2021 1:02:05 PM

Napjainkban a nagyvállalatok IT szakrendszerei sok esetben valós integráció nélkül, nem szolgáltatás orientáltan működnek. Ennek hátrányai tetten érhetők a rendszerek verzióléptetésének, upgrade-elésének (technikai és funkcionális), a skálázhatóságának nehézkességében, valamint az üzemeltetés és karbantartás költségszintjében.


A piacon rohamosan nő azon vállalatok száma, akik a digitális transzformáció keretében a Back-end v. épp Front-end rendszereikre vonatkozóan konszolidációs projektet kezdeményeznek, mert a Back-end réteg működése már annyira korszerűtlen és hatékonytalan, hogy azt már a Front-end alkalmazások transzformációja, valamint egy szerviz orientált architektúra kialakítása sem tud kiküszöbölni.

 

Ezen probléma megoldására vonatkozóan a Grape Zrt. az ún. Microservices architektúrát javasolja annak érdekében, hogy a back-end réteg működése immáron ne szabjon gátat a front-end csatornák hatékonyságának.

Microservices alkalmazás architektúra

A Microservices alkalmazás architektúra segítségével olyan skálázható, magas rendelkezésre állású, párhuzamos szolgáltatáson alapuló, önmagukat gyógyító alkalmazások (szolgáltatás-példányok építhetők fel, melyekben a belső üzleti és technológiai folyamatok olyan diszkrét egységekre bonthatók, melyek önmagukban is teljes funkcionalitással bírnak. Ezáltal az alkalmazás könnyen karbantartható, hatékonyan integrálható részekre kerül felosztásra, lehetővé téve a vállalatok számára a meglévő architektúrába való egyszerű, fokozatos beépítést.

Microservices alapokon már meglévő, performanciájuk optimumán túlnövő alkalmazásokat (vállalati middleware rendszerek, ESB-k, legacy core rendszerek) is leimplementálhatunk, de a digitális transzformáció során felmerülő új kihívások megvalósítására is megfelelő keretet biztosít. Ilyen például egy valós idejű döntési motor, egy end-to-end kockázatbírálati rendszer, vagy éppen egy komplex szabályozói előírásnak való megfelelés (pl. PSD2 megfelelés a pénzügyi szektor részére, Solvency II a biztosítótársaságok prudens működésére).

A Microservices architektúra a konténerizáción keresztül segíti a gyors és automatizált províziót, visszagörgetést és szolgáltatás felderítést.

 

A Microservices architektúra előnyei, kulcsképességei

A javasolt megoldás iparági szabvány tervezési mintákon és keretrendszeren alapul, egyaránt működőképes lokális, virtualizált futtatókörnyezet és felhő (Microsoft Azure) alapon, függően a tranzakciós adatok szenzitivitásától információ-biztonsági szempontból

Párhuzamosíthatóság: az egyes szolgáltatás hívások párhuzamos végrehajtásának biztosítása több független példányt engedélyez egyidőben, ami a horizontális skálázhatóság alapja

Az egyes szolgáltatások úgy kerülnek megtervezésre és implementációra, hogy azok funkcionalitása a lehető legkisebb mértékű átfedést mutassa. Ez a tervezési minta biztosítja, hogy az egyes szolgáltatáshívások versenykondíciók nélkül futtathatók legyenek, elkerülve ezzel a nagy terhelés során kialakuló blokkolási gócpontokat (Separation of Concerns elv)

A tervezés során az egyes modulok egy, jól definiált feladatot látnak el, és azt teljes elkülönültségben végzik. Ez a minta minimalizálja az esetleges regressziót a rendszer fejlesztése és karbantartása során, megkönnyítve ezzel a Continous Development, Integration és Delivery folyamatokat (Single Responsibility elv)


A Microservices architektúra bevezetése

A Grape rendelkezik egy monolitikusból mikroszolgáltatásig folyamat módszertannal, amely az alábbi lépéseken át támogatja az Ügyfelet az optimális eredmény elérése végett:
 
  • Kritikus funkciók azonosítása technikai analízis segítségével
  • Mikroszolgáltatás megtervezése (szükséges szolgáltatások és integráció)
  • Fejlesztési és tesztelési fázis
  • Fokozatos bevezetési megközelítés (parallel a régi funkcióval átmenetileg)
  • Validáció és analízis (hatékonyság növekedés visszamérése)
  • Éles környezeti átállás

 

A Microservices architektúra Azureban

A Microsoft Azure Service Fabric publikus felhő alapú keretrendszer biztosítja a mikroszolgáltatás architektúrára épülő alkalmazások elosztott telepítését, üzemeltetését, skálázhatóságát és üzembiztosságát; ezen feladatok generalizálásával és egységbe foglalásával hatékonyabbá teszi a teljes szoftver életciklust, csökkentve ezzel az egyes fejlesztések bevezetéséhez szükséges időt és erőforrásigényt.
 
Az Azure Service Fabric erőssége, hogy felügyeli az alkalmazás egyes komponenseinek és gócpontjainak a terheltségét, és automatikusan skálázza az egyes szolgáltatásokat, mielőtt azok kritikus leterheltséget érnének elA szolgáltatásszintű skálázhatóság biztosítja, hogy a rendszer optimálisan használja a rendelkezésre álló erőforrásokat.
 
Konténer alapú erőforrás provízió, horizontális skálázhatóság, nagy rendelkezésre állás és hibatűrés heterogén, hektikus tranzakciós terheltség esetére

 

A Microservices architektúra üzleti előnye rövidebb fejlesztési ciklusok gyorsabb time to market

A mikroszolgáltatás architektúra a Grape projekt tapasztalata alapján az alábbi módszertani transzformációt, illetve belső governance kultúra váltást igényli:

  • DevOps szemlélet kialakítása, agilis együttműködés fejlesztés és üzemeltetés között
  • Folyamatos integráció (Continuous integration), folyamatos tesztelés (continuous testing) és folyamatos leszállítás (continuous delivery) pipeline kialakítása
  • Fokozatos átállás fentarthatóbb, open source technológiákra az architektúra össze rétegében
  • Publikus felhőszolgáltatás igénybevétele a futtatási környezet kialakítására

 

A Microservices architektúra szcenáriók

A Grape Solutions Zrt. az alábbi szcenáriók mentén látja megvalósíthatónak, illetve látja a transzformáció szükségességét a fenntarthatóság végett:

  • Evolúciós fejlesztési igények:
    • Sokadik generációs, működési optimumukat régen elért alkalmazások
    • Legacy rendszerek tehermentesítésére szolgáló elasztikus előtétek
  • Magas, heterogén terheltség:
    • Erősen változó látogatószámú, időszakos csúcsterhelést mutató rendszerek (ecommerce site-ok, egyéb core rendszerek, melyekre hirtelen nagy terhelés nehezedik)
  • Extrém flexibilitás:
    • 99%-os rendelkezésre állást igénylő, mission critical core alkalmazások
    • Heterogén felhasználóbázisú, gyakran frissített alkalmazások (pl. külső vállalati portálok)