Model Stranglera Vatera

Přírůstkově migruje starší verzi systému, a to postupným nahrazením jednotlivých konkrétních funkcí novými aplikacemi a službami. S tím, jak se nahrazují funkce starší verze systému, nahradí nový systém nakonec všechny funkce starého systému a starý systém se utlumí a bude možné ho vyřadit z provozu.

Kontext a problém

Jak systémy stárnou, můžou postupně zastarávat také nástroje pro vývoj, technologie hostování a dokonce i architektury systému, na kterých jsou systémy založené. Při přidávání nových funkcí se složitost těchto aplikací se může výrazně zvýšit, což bude znamenat, že bude těžší je udržovat nebo přidávat k nim nové funkce.

Úplná výměna složitého systému může být velmi náročná. Často bude nutné migrovat na nový systém postupně a zachovat starý systém, ve kterém bude možné používat funkce, které se zatím nemigrovaly. Při spuštění dvou samostatných verzí aplikací ale budou klienti potřebovat vědět, kde jsou umístěné konkrétní funkce. Pokaždé, když se migruje funkce nebo služba, je potřeba aktualizovat klienty tak, aby ukazovali na nové umístění.

Řešení

Postupně nahrazujte jednotlivé funkce novými aplikacemi a službami. Vytvořte průčelí, které bude přijímat žádosti, které směřují do starší verze systému back-end. Toto průčelí bude směrovat tyto žádosti do starší aplikace nebo na nové služby. Existující funkce se můžou do nového systému migrovat postupně a spotřebitelé můžou dál používat stejné rozhraní, aniž by měli povědomí o tom, že probíhá nějaká migrace.

Diagram vzoru Stranglera Vatera

Tento model pomáhá minimalizovat rizika vyplývající z migrace a rozložit náročnost vývoje v čase. S průčelím, které bude bezpečně směrovat uživatele do správné aplikace, můžete přidávat k novému systému funkce libovolným tempem a přitom zajistit, že bude starší verze aplikace dál fungovat. Postupně, jak se budou funkce migrovat do nového systému, starší verze systému se nakonec utlumí a dál už ji nebudete potřebovat. Po dokončení tohoto procesu bude možné starší systém bezpečně vyřadit z provozu.

Problémy a důležité informace

  • Zvažte možnosti, jak naložit se službami a úložišti dat, které potenciálně používají nové i starší verze systémů. Zajistěte, aby obě tyto verze měly současný přístup.
  • Strukturování nových aplikací a služeb tak, aby je bylo možné snadno zachytit a nahradit v budoucích migracích do uškrcení.
  • Po dokončení migrace se průčelí uškrcení buď zmizí, nebo se z toho stane adaptér pro starší klienty.
  • Průčelí musí držet tempo s migrací.
  • Nesmí se z něj stát místo, kde dochází k chybám nebo se snižuje výkon.

Kdy se má tento model použít

Tento model použijte tehdy, když chcete postupně migrovat aplikace back-end na novou architekturu.

Tento model nebude pravděpodobně vhodný v následujících případech:

  • V situacích, kdy není možné zachytit žádosti na systém back-end.
  • U menších systémů, kde se nejedná o složité nahrazení ve velkém měřítku.