Strangler fügeminta

Azure Migrate

Növekményesen migrálhat egy korábbi rendszert oly módon, hogy egyes funkciódarabokat fokozatosan új alkalmazásokra és szolgáltatásokra cserél. A korábbi rendszer funkcióinak lecserélésével idővel az új rendszer felváltja a régi rendszer összes funkcióját, leépítve a régi rendszert, és lehetővé téve annak leszerelését.

Kontextus és probléma

A rendszerek öregedésével az azok alapjául szolgáló fejlesztési eszközök, üzemeltetési technológia és a rendszerarchitektúrák is jelentősen elavulttá válhatnak. Új szolgáltatások és funkciók hozzáadásával ezen alkalmazások összetettsége jelentősen nőhet, így a karbantartásuk, illetve a további funkciók hozzáadása nehezebb lesz.

Egy összetett rendszer teljes cseréje hatalmas feladat lehet. Gyakran fokozatosan kell áttérni az új rendszerre a régi rendszer megtartása mellett a még nem migrált funkciók kezelése céljából. Egy alkalmazás két különálló verziójának futtatásakor azonban az ügyfeleknek tudniuk kell, hol találhatóak az egyes funkciók. Funkciók vagy szolgáltatások migrálásakor az ügyfeleket minden alkalommal frissíteni kell, hogy az új helyre mutassanak.

Megoldás

Fokozatosan cserélje le az egyes funkciókat új alkalmazásokra és szolgáltatásokra. Egy előtérrendszer létrehozásával elfoghatja a korábbi háttérrendszernek címzett kérelmeket. Az előtérrendszer ezeket a kérelmeket a korábbi alkalmazáshoz vagy az új szolgáltatásokhoz irányítja. A meglévő szolgáltatások fokozatosan migrálhatóak az új rendszerre, és a fogyasztók továbbra is ugyanazt a felületet használhatják anélkül, hogy bármit érzékelnének a migrálásból.

Diagram of the Strangler Fig pattern

Ez a minta segít minimálisra csökkenteni a migrálással járó kockázatokat, és időben jobban elosztja a fejlesztési folyamatot. Miközben az előtérrendszer biztonságosan a megfelelő alkalmazáshoz irányítja a felhasználókat, tetszés szerint ütemezve adhat funkciókat az új rendszerhez a korábbi alkalmazás működésének fenntartása mellett. A funkciók új rendszerre való migrálása idővel „leépíti” a régi rendszer funkcionalitását, és nem lesz rá többet szükség. A folyamat befejeződése után a régi rendszer biztonságosan megszüntethető.

Problémák és megfontolandó szempontok

  • Fontolja meg, hogyan kívánja kezelni azokat a szolgáltatásokat és adattárakat, amelyeket esetlegesen az új és a régi rendszer is használhat. Biztosítsa, hogy a két rendszer egyidejűleg hozzáférhessen ezekhez az erőforrásokhoz.
  • Az új alkalmazásokat és szolgáltatásokat úgy kell strukturálni, hogy könnyen elfoghatók és lecserélhetők legyenek a későbbi fojtogató fügemigrálások során.
  • Egy bizonyos ponton, amikor a migrálás befejeződött, a strangler fügehomlokzat vagy eltűnik, vagy az örökölt ügyfelek adaptere lesz.
  • Gondoskodjon róla, hogy az előtérrendszer lépést tartson a migrálással.
  • Ügyeljen rá, hogy az előtérrendszer ne váljon kritikus meghibásodási ponttá, és ne képezhessen teljesítménybeli szűk keresztmetszetet.

Mikor érdemes ezt a mintát használni?

Ezt a mintát háttéralkalmazások új architektúrákra való fokozatos migrálásához használhatja.

Nem érdemes ezt a mintát használni, ha:

  • A háttérrendszernek küldött kérelmek nem foghatók el.
  • Kisebb rendszerek esetében, ahol a teljes körű lecserélés összetettsége alacsony.

Következő lépések

  • Martin Fowler blogbejegyzése a StranglerFigApplication-ről