Top 10 microservice tervezési minta: STRANGLER FIG

Mik azok a microservice tervezési minták?

A mikroszolgáltatás független alkalmazáskomponensekből áll, amelyek egy rendszer számára specifikus funkciókat hajtanak végre. Egyetlen példánya vagy több példánya is lehet a funkcionális követelmények alapján.
A kliensoldali (webes felület és mobilos UI) és a köztes rétegekben lévő más integrált szolgáltatásokkal együtt ezek a mikroszolgáltatások mindegyike egy teljes architektúrát alkot.

Az ilyen mikroszolgáltatás-architektúra tervezése, fejlesztése és telepítése azonban kihívásokkal jár, mint például:

  • Közös hozzáférés kezelése
  • Adatkonzisztencia
  • Szolgáltatások biztonsága
  • Szolgáltatások közötti kommunikáció

Itt jönnek a képbe a mikroszolgáltatás tervezési minták (microservice design patterns)!
Ezek olyan referenciaarchitektúrás minták, amelyek segítenek a szolgáltatások hatékonyabb adminisztrációjában, ezeknek a kihívásoknak a leküzdésében és a teljesítmény maximalizálásában.

Microservice design patterns

Sőt, a mikroszolgáltatásokban az Ön felhasználási eseteihez megfelelő tervezési minták alkalmazása növelheti a komponensek újrafelhasználhatóságát, ami végül a fejlesztési idő és erőfeszítések csökkenését eredményezi.
Idővel az újrafelhasználhatóság kiküszöböli a szükségtelen újrafejlesztést az alkalmazás módosításainál.

A 10 legfontosabb microservice tervezési minta

Fontos megjegyezni, hogy a mikroszolgáltatás tervezési minták nem csodaszerek!
Minden tervezési mintának megvannak a maga előnyei és hátrányai.
A következőkben az alábbi 12 tervezési mintát mutatjuk be röviden:

  1. Strangler Fig
  2. SAGA
  3. Aggregator
  4. Event Source
  5. CQRS
  6. Sidecar
  7. Database per microservice
  8. Backend For Frontends (BFF)
  9. Api Gateway
  10. Circuit Braker

1. Strangler Fig minta

A Strangler mintát eredetileg Martin Fowler mutatta be 2004-ben a “StranglerFigApplication” című blogbejegyzésében.

Egy meglévő alkalmazás mikroszolgáltatásokra való áttelepítése során kihívást jelenthet az alkalmazás elérhetőségének fenntartása, de a Strangler minta hatékonyan segít ennek kezelésében.

Ez a minta lehetővé teszi a kód fokozatos és megbízható átalakítását.
Olyan módszert ír le, ahol a csapat egy adott időpontban egy új mikroszolgáltatásba helyezi át a konkrét funkciókat.

A legjobb, hogy a változtatások inkrementálisak, folyamatosan figyeltek, jól meghatározottak, és a dolgok rosszul működésének esélye meglehetősen alacsony.
Ezért, ha az alkalmazás elérhetősége az egyik legfontosabb prioritás, akkor ez a minta működik a legjobban, és biztosítja egy olyan rendszer kiépítését, amelyben már jó teszt lefedettség van.

Az áttelepítés során egy API Gateway (API kapu) funkcionál homlokzatként (Facade), amely a felhasználói kéréseket a megfelelő alkalmazáshoz irányítja.
Egy ilyen homlokzat biztosítja az alkalmazás elérhetőségét.
Ezenkívül lehetővé teszi a fejlesztői csapatok számára, hogy saját ütemükben haladjanak az átállítással, külső kötelezettségek nélkül.
Amint az áttelepítés befejeződik, a monolit architektúra “megfojtásra” kerül, azaz a monolitikus alkalmazás készen áll a nyugdíjazásra.

Példa: Shopify

A Shopify a strangler mintával strukturálta át a “shop” osztályt.
A Shopify RoR kódbázisának egyik legkritikusabb része a “Shop” modell, amely több mint 3000 sornyi kódot tartalmaz.

Amikor a Shopify egy kisebb vállalat volt, a “Shop” célja egyértelmű volt, de ahogy nőtt, a vállalat sokkal összetettebbé vált, és a “Shop” modell üzleti céljai teljesen eltérőek lettek.
Végül a “Shop” meghatározása homályossá vált. A tiszta kód és a jól definiált szoftverarchitektúra híveként a Shopify-nak megoldást kellett találnia a probléma kezelésére.
Végül a Strangler Fig mintát választották az átalakításhoz.

A vállalat elejétől fogva egy dolgot tudott: a Shopify szüneteltetés nélküli működésének garantálása kritikus fontosságú volt, és egy teljesen új rendszerre való egyszeri áttérés katasztrófa-receptnek tűnt.
Ezért tűnt a Strangler Fig minta tökéletes megközelítésnek.

A Shopify fokozatosan kezdte meg az átállást az új rendszerre, de eközben a régi rendszert is fenntartotta, amíg biztosak nem voltak benne, hogy az új rendszer az elvárásoknak megfelelően működik.

Ezenkívül a Shopify kidolgozott egy 7 lépéses részletes folyamatot a beállításoknak a “Shop” módból történő kinyerésére.

Összefoglalva a “Strangler Pattern” lehetséges alkalmazási területei:

1. Fokozatos átállás:

  • A monolitikus alkalmazás fokozatos lebontása mikroszolgáltatásokra
  • A funkcionalitás fokozatos áthelyezése az új mikroszolgáltatásokba
  • A régi és az új kódok párhuzamos futtatása egy ideig

2. Kockázatcsökkentés:

  • A hibák izolálása az új mikroszolgáltatásokban
  • Az alkalmazás folyamatos elérhetőségének biztosítása
  • A visszaállás lehetősége a régi rendszerre

3. Architektúrális rugalmasság:

  • Lehetővé teszi a különböző technológiák használatát a mikroszolgáltatásokban
  • Független skálázhatóság a mikroszolgáltatások számára
  • Javítja az alkalmazás karbantarthatóságát

4. Hosszú távú fenntarthatóság:

  • Megkönnyíti a jövőbeli változtatások és fejlesztések bevezetését
  • Javítja az alkalmazás teljesítményét és megbízhatóságát
  • Támogatja a DevOps gyakorlatokat

Legutóbbi bejegyzések

Top 10 microservice tervezési minta: Api Gateway

A „SAGA” az egyik kulcsfontosságú minta, amely lehetővé teszi a tranzakciók kezelését mikroszolgáltatások között, és segítséget nyújt a rendszer stabilitásának növelésében.

Elérhetőségek

Social