Strangler Fig-patroon

Migrate

Een verouderd systeem incrementeel migreren door specifieke functionaliteit geleidelijk te vervangen door nieuwe toepassingen en services. Terwijl functies van het oude systeem worden vervangen, vervangt het nieuwe systeem uiteindelijk alle functies van het oude systeem, waarbij het oude systeem wordt onderdrukt zodat u het uit bedrijf kunt nemen.

Context en probleem

Naarmate systemen ouder worden, kunnen ook de ontwikkelhulpprogramma's, hostingtechnologie en zelfs de architecturen waarop die systemen zijn gebaseerd, in onbruik raken. Als er nieuwe functies en functionaliteit worden toegevoegd, kan de complexiteit van deze toepassingen aanzienlijk toenemen, wat het onderhoud ervan of het toevoegen van nieuwe functies moeilijker maakt.

Een complex systeem volledig vervangen kan een gigantische onderneming zijn. Vaak zal er een geleidelijke migratie naar een nieuw systeem nodig zijn, waarbij het oude systeem blijft behouden voor het afhandelen van functies die nog niet zijn gemigreerd. Het gebruik van twee afzonderlijke versies van een toepassing betekent echter wel dat clients moeten weten waar bepaalde functies zich precies bevinden. Telkens wanneer er een functie of service wordt gemigreerd, moeten clients worden bijgewerkt om naar de nieuwe locatie te verwijzen.

Oplossing

Specifieke functionaliteit geleidelijk vervangen door nieuwe toepassingen en services. Maak een gevel waarmee aanvragen naar het verouderde back-endsysteem worden onderschept. De gevel stuurt deze aanvragen door naar de verouderde toepassing of de nieuwe services. Bestaande functies kunnen geleidelijk aan worden gemigreerd naar het nieuwe systeem en gebruikers kunnen met dezelfde interface blijven werken, zonder enige weet te hebben van de migratie die heeft plaatsgevonden.

Diagram of the Strangler Fig pattern

Dit patroon helpt bij het verlagen van het risico als gevolg van de migratie en bij de verdere implementatie in de loop van de tijd. Met de gevel veilig doorsturen van gebruikers naar de juiste toepassing, kunt u functionaliteit toevoegen aan het nieuwe systeem in elk tempo dat u wilt, terwijl de verouderde toepassing blijft functioneren. Na verloop van tijd, terwijl functies naar het nieuwe systeem worden gemigreerd, wordt het oude systeem uiteindelijk 'de nek omgedraaid' omdat het niet meer nodig is. Zodra dit proces voltooid is, kan het oude systeem veilig buiten gebruik worden gesteld.

Problemen en overwegingen

  • Denk na over de verwerking van services en gegevensarchieven die door zowel de nieuwe als bestaande systemen kunnen worden gebruikt. Zorg ervoor dat beide toegang tot deze resources hebben.
  • Structureer nieuwe toepassingen en services op een manier die ze eenvoudig kunnen worden onderschept en vervangen in toekomstige strangler fig-migraties.
  • Op een bepaald moment, wanneer de migratie is voltooid, zal de strangler fig fa├žade verdwijnen of zich ontwikkelen tot een adapter voor oudere clients.
  • Zorg ervoor dat de gevel de migratie bijhoudt.
  • Zorg ervoor dat de gevel geen single point of failure wordt of een prestatieknelpunt.

Wanneer dit patroon gebruiken

Gebruik dit patroon bij de geleidelijke migratie van een back-endtoepassing naar een nieuwe architectuur.

Dit patroon is mogelijk niet geschikt in de volgende gevallen:

  • Wanneer aanvragen voor het back-endsysteem niet kunnen worden onderschept.
  • Voor kleinere systemen waarbij de vervanging op grote schaal laag niet complex is.