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.

A Strangler fügemintájának diagramja

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.

Számítási feladatok tervezése

Az építészeknek értékelniük kell, hogyan használható a Strangler fügeminta a számítási feladat kialakításában az Azure Well-Architected Framework pilléreiben foglalt célok és alapelvek kezelésére. Példa:

Pillér Hogyan támogatja ez a minta a pillércélokat?
A megbízhatósági tervezési döntések segítenek a számítási feladatnak ellenállóvá válni a hibás működéssel szemben, és biztosítani, hogy a hiba bekövetkezése után teljesen működőképes állapotba kerüljön. Ennek a mintának a növekményes megközelítése segíthet csökkenteni az összetevők áttűnése és a nagy rendszerszintű változások során jelentkező kockázatokat.

- RE:08 Tesztelés
A költségoptimalizálás a számítási feladatok megtérülésének fenntartására és javítására összpontosít. Ennek a megközelítésnek az a célja, hogy maximalizálja a meglévő beruházások használatát a jelenleg futó rendszerben, miközben fokozatosan modernizálja azt, ami lehetővé teszi, hogy magas megtérülésű cserét végezzen az alacsony megtérülésű csere előtt.

- CO:07 Összetevő költségei
- CO:08 Környezeti költségek
Az operatív kiválóság szabványosított folyamatok és a csapat kohéziója révén segít a számítási feladatok minőségének biztosításában. Ez a minta folyamatos fejlesztési megközelítést biztosít, amelyben az idő múlásával kisebb változásokkal történő növekményes cserét részesítik előnyben, nem pedig a nagyobb, kockázatosabb rendszerszintű módosításokat.

- OE:06 Számítási feladatok fejlesztése
- OE:11 Széf üzembehelyezési eljárások

Mint minden tervezési döntésnél, fontolja meg az ezzel a mintával bevezethető többi pillér céljaival szembeni kompromisszumokat.

Következő lépések

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