Wzorzec figowy stranglera

Azure Migrate

Przyrostowa migracja starszej wersji systemu przez stopniowe zastępowanie konkretnych elementów funkcjonalności nowymi aplikacjami i usługami. Funkcje ze starszej wersji systemu są kolejno zastępowane i ostatecznie nowy system zastępuje wszystkie funkcje starego systemu, zagłuszając stary system i umożliwiając jego wycofanie.

Kontekst i problem

W miarę starzenia się systemów narzędzia deweloperskie, technologia hostowania, a nawet architektury, na których zostały zbudowane, mogą stawać się coraz bardziej przestarzałe. Gdy dodawane są nowe funkcje i funkcjonalności, złożoność tych aplikacji może znacznie wzrosnąć, sprawiając, że trudniej jest je konserwować lub dodawać do nich funkcje.

Całkowita wymiana złożonego systemu może być ogromnym przedsięwzięciem. Często konieczna będzie stopniowa migracja do nowego systemu przy zachowaniu starego systemu do obsługi funkcji, które nie zostały jeszcze zmigrowane. Udostępnianie dwóch oddzielnych wersji aplikacji oznacza jednak, że klienci będą musieli wiedzieć, w której z nich znajdują się konkretne funkcje. Za każdym razem, gdy funkcja lub usługa jest migrowana, klienci muszą zostać poinformowani o nowej lokalizacji.

Rozwiązanie

Przyrostowo zastępuj konkretne elementy funkcjonalności nowymi aplikacjami i usługami. Utwórz fasadę przechwytującą żądania kierowane do starszego systemu zaplecza. Fasada będzie kierować takie żądania do starszej aplikacji albo nowych usług. Istniejące funkcje można migrować do nowego systemu stopniowo, a konsumenci mogą nadal korzystać z tego samego interfejsu, nie wiedząc nawet, że wykonywana jest migracja.

Diagram wzorca figowego stranglera

Ten wzorzec pomaga zminimalizować ryzyko związane z migracją i rozłożyć prace programistyczne na dłuższy czas. Mając fasadę bezpiecznie kierującą użytkowników do właściwej aplikacji, można dodawać funkcjonalność do nowego systemu w dowolnie wybranym tempie, gwarantując jednocześnie dalsze funkcjonowanie starszej aplikacji. Wraz z migrowaniem funkcji do nowego systemu starszy system zostaje w końcu zagłuszony i przestaje być potrzebny. Po zakończeniu procesu starszy system można bezpiecznie wycofać.

Problemy i kwestie do rozważenia

  • Przemyśl sposób obsługi usług i magazynów danych potencjalnie używanych przez oba systemy, nowy i starszy. Upewnij się, że oba mogą uzyskiwać dostęp do tych zasobów obok siebie.
  • Struktura nowych aplikacji i usług w sposób, w jaki można je łatwo przechwycić i zastąpić w przyszłych migracjach fig udusionych.
  • W pewnym momencie, gdy migracja zostanie zakończona, fasada fig uduszona zniknie lub przekształci się w adapter dla starszych klientów.
  • Upewnij się, że fasada nadąża za migracją.
  • Upewnij się, że fasada nie stanie się pojedynczym punktem awarii ani wąskim gardłem wydajności.

Kiedy używać tego wzorca

Z tego wzorca należy korzystać przy stopniowej migracji aplikacji zaplecza do nowej architektury.

Ten wzorzec może być nieodpowiedni w następujących przypadkach:

  • Gdy nie można przechwytywać żądań do systemu zaplecza.
  • Dla mniejszych systemów, gdzie złożoność całościowego zastąpienia jest niewielka.

Projekt obciążenia

Architekt powinien ocenić, w jaki sposób wzorzec rysunku stranglera może być używany w projekcie obciążenia, aby sprostać celom i zasadom opisanym w filarach platformy Azure Well-Architected Framework. Na przykład:

Filar Jak ten wzorzec obsługuje cele filaru
Decyzje projektowe dotyczące niezawodności pomagają obciążeniu stać się odporne na awarię i zapewnić, że zostanie przywrócony do w pełni funkcjonalnego stanu po wystąpieniu awarii. Podejście przyrostowe tego wzorca może pomóc w ograniczeniu ryzyka podczas przejścia składnika w porównaniu z dużymi zmianami systemowymi.

- TESTOWANIE RE:08
Optymalizacja kosztów koncentruje się na utrzymaniu i poprawie zwrotu obciążenia z inwestycji. Celem tego podejścia jest zmaksymalizowanie wykorzystania istniejących inwestycji w aktualnie uruchomiony system przy jednoczesnym modernizacji przyrostowej, ponieważ pozwala to na wykonywanie wymiany o wysokiej zwrotu z inwestycji przed zamianami niskiego zwrotu z inwestycji.

- KOSZT SKŁADNIKA CO:07
- CO:08 Koszty środowiska
Doskonałość operacyjna pomaga zapewnić jakość obciążeń dzięki ustandaryzowanym procesom i spójności zespołu. Ten wzorzec zapewnia podejście ciągłego ulepszania, w którym przyrostowe zastępowanie małymi zmianami w czasie jest preferowane, a nie duże zmiany systemowe, które są bardziej ryzykowne do wdrożenia.

- Opracowywanie obciążeń OE:06
- OE:11 Bezpieczne praktyki wdrażania

Podobnie jak w przypadku każdej decyzji projektowej, należy rozważyć wszelkie kompromisy w stosunku do celów innych filarów, które mogą zostać wprowadzone przy użyciu tego wzorca.

Następne kroki