Modernizacja systemów legacy, prowadzona bez wyłączania systemu z produkcji

Modernizacja systemów, których zmiana jest zbyt ryzykowna, a zamrożenie – zbyt kosztowne dla biznesu: inżynieria wsteczna, dekompozycja monolitu i przywracanie platform do sprawności, realizowane podczas pracy systemu. Systemy core banking i finansowe, platformy treści FMCG oraz ekosystemy e-commerce w retailu. Przejmujemy i stabilizujemy systemy produkcyjne tam, gdzie inne podejścia zawiodły – w tym w ramach publicznie opisanego ratowania platformy CMS o dużym ruchu dla Royal Canin.

Sygnały, że system kwalifikuje się do modernizacji

Nie każdy stary system wymaga tej samej interwencji, a część tego, co wydaje się nie do naprawienia, da się naprawić łatwiej, niż się wydaje. Oto objawy, które warto sprawdzić w pierwszej kolejności.

ZESPÓŁ

Osoby, które go zbudowały, odeszły. Nie ma dokumentacji, nie został nikt, kto pamięta, dlaczego system działa tak, a nie inaczej, a zapis podjętych decyzji odszedł razem z nimi.

HISTORIA

Próbowano przepisać system od nowa i po cichu z tego zrezygnowano. Budżet na zmianę platformy został wydany, część nowego rozwiązania wciąż działa równolegle, a nikt nie chce proponować tego samego po raz drugi.

RYZYKO

Wydania są zamrożone lub prawie zamrożone. Każda zmiana niesie ryzyko dla produkcji, każda wymaga akceptacji, a najbezpieczniejszą opcją w każdym kwartale jest nierobienie niczego.

KOSZTY

Koszty utrzymania rosną, a tempo dostarczania spada. Małe funkcje powstają miesiącami, a większość wysiłku idzie w to, by nie zepsuć tego, co już działa.

WIEDZA

Jedna lub dwie osoby mają cały system w głowie. W zwykłym tygodniu to wąskie gardło, a przy pierwszym przeglądzie regulacyjnym, który zapyta, kto mógłby go obsługiwać po ich odejściu – poważne zastrzeżenie.

PLAN

Na stole leży pełna wymiana systemu i wszyscy są zaniepokojeni. Platforma nie zniesie przestoju, którego wymagałaby wymiana, a ostatnia wycena była powodem, dla którego projekt utknął.

Rozpoznanie dwóch lub trzech z tych sygnałów to punkt wyjścia do oceny. Poniżej przedstawiamy kolejność, w jakiej się nimi zajmujemy – dobraną tak, by wyeliminować ryzyko, zanim zaczniemy zmieniać cokolwiek w strukturze.

Etapy, przez które przechodzimy, by ograniczyć ryzyko

Każdy etap eliminuje konkretne ryzyko, a nie tylko posuwa projekt do przodu. Są ułożone tak, by nie zmieniać niczego w strukturze, dopóki nie znikną czynniki, które czyniłyby to niebezpiecznym. Dowiedz się więcej podczas rozmowy z naszymi inżynierami.

  1. 1

    Mapowanie (tylko odczyt)

    Rzeczywiste działanie, zależności i przepływy danych – odczytane z kodu i zaobserwowane na produkcji, zamiast opierania się na starych diagramach. Obejmuje to również sposób, w jaki dziś zatwierdzane są zmiany, i to, kto ma dostęp do czego, bo oba te czynniki ograniczają wszystko, co nastąpi później. wyeliminowane ryzyko – zgadywanie, co się zepsuje.

  2. 2

    Udowodnienie bezpieczeństwa

    Testy charakteryzacyjne utrwalają obecne zachowanie systemu, zanim cokolwiek zostanie zrefaktoryzowane – zaczynając od najpoważniejszych ryzyk. Testy służą jednocześnie jako dowód, że zachowanie się nie zmieniło, czego wymaga komitet ds. wydań lub audytor. wyeliminowane ryzyko – zmiany, co do których można mieć tylko nadzieję, a nie pewność.

  3. 3

    Podział na części

    Wzorzec strangler, jedna funkcjonalność na raz – stary i nowy system działają równolegle, dopóki każdy fragment nie zostanie sprawdzony. Ruch jest przenoszony osobno dla każdej funkcjonalności, więc system działa i obsługuje sprzedaż przez cały czas trwania migracji. wyeliminowane ryzyko – jeden moment, w którym wszystko musi zadziałać naraz.

  4. 4

    Przekazanie odpowiedzialności

    Dokumentacja, runbooki i zespół, który ponownie rozumie system – utrzymywany przez nas długofalowo lub przekazany. Spisane w formie, która przetrwa audyt lub zmianę dostawcy, a nie tylko spotkanie przekazujące. wyeliminowane ryzyko – wiedza, która odchodzi wraz z końcem współpracy.

Każdy z powyższych etapów opiera się na określonym zestawie technik. Żadna z nich nie jest egzotyczna. Stosujemy je świadomie i we właściwej kolejności.

code.svg

Inżynieria wsteczna

Analiza kodu, mapowanie zależności i przepływów danych oraz odtwarzanie zachowania systemu tam, gdzie brakuje dokumentacji.

fact_check.svg

Testy charakterystyki

Testy, które utrwalają obecne zachowanie przed refaktoryzacją, dzięki czemu modernizacja nie zmienia po cichu tego, na czym opiera się biznes. Te same testy służą jako dowód, że zachowanie się nie zmieniło.

compare_arrows.svg

Migracja według wzorca strangler

Stopniowa wymiana, z ruchem przekierowywanym osobno dla każdej funkcjonalności w miarę weryfikacji kolejnych części. Typowe podejście tam, gdzie platforma nie może sobie pozwolić na okno serwisowe.

call_split.svg

Dekompozycja monolitu

Granice wyznaczane zgodnie z Domain-Driven Design, wydzielanie usług, warstwy antykorupcyjne i staranne projektowanie kontraktów.

cloud_upload.svg

Migracja danych

Ewolucja schematów, strategie podwójnego zapisu i uzupełniania danych (backfill), ciągłe uzgadnianie danych i przełączenia z minimalnym przestojem – z dowodami uzgodnień przechowywanymi na potrzeby audytu.

restore.svg

Przywracanie systemów do sprawności

Stabilizacja awaryjnych lub nieutrzymywanych platform, w tym systemów przejmowanych od poprzedniego dostawcy w trakcie trwającego incydentu.

delete_sweep.svg

Redukcja długu technicznego

Ukierunkowane naprawy priorytetyzowane według ryzyka biznesowego i częstotliwości zmian – zaczynając od elementów, które blokują wydania.

alt_route.svg

Planowanie migracji

Kolejność prac, strategia wycofania zmian, planowanie ciągłości działania oraz okna zmian dopasowane do cykli akceptacji wydań.

Umów się na bezpłatną konsultację z naszymi ekspertami i CTO

Porozmawiajmy o Twoich obecnych wyzwaniach i sprawdźmy, w czym możemy pomóc.

analiza_CODEWAVE.webp

Sprawdzone na produkcji

0+
globalnych środowisk obsługiwanych na produkcji
0%
dostępności względem uzgodnionych SLO
0%
niższe koszty chmury po przeglądzie FinOps

Odkryj więcej historii

CA SEO image.png

Modern intranet platform for Credit Agricole Bank Polska

Czytaj więcej
WystawiAI_SEO_image.png

Wystawi.ai: Reducing the time to issue e‑Prescriptions on mobile devices by 70%

Czytaj więcej
royal canin SEO image.png

Rebuilding Royal Canin’s CMS, search and store locator

Czytaj więcej

Systemy modernizowane i obsługiwane dla klientów z branży bankowej, FMCG i retail od 2008 roku

tesco-logo-color.svg
ca-logo-color.svg
royal-canin-logo.svg
verizon-logo.svg

Jak zorganizowana jest współpraca – od pojedynczego audytu po pełną odpowiedzialność

Większość prac modernizacyjnych zaczyna się od jednego projektu czy usługi. Pozostałe szczeble są dostępne, gdy są potrzebne – nie trzeba się na nie decydować z góry.

1. Audyt

Ocena oparta na inżynierii wstecznej, której efektem jest model systemu, mapa ryzyk i realistyczne warianty działania. Przygotowana w formie, którą można przedstawić zarządowi lub audytorowi, a nie tylko inżynierom.

2. Projekt

Zakres o określonych granicach: wydzielenie funkcjonalności, migracja magazynu danych, dekompozycja domeny. Stałe granice i uzgodniony koniec, więc pierwszy etap prac nie wymaga długofalowego zobowiązania.

3. Zarządzanie zmianami

Obsługujemy i utrzymujemy system w trakcie i po modernizacji – także w okresach zmian regulacyjnych i szczytów sprzedażowych. Imienne dyżury, uzgodnione poziomy usług i koszty utrzymywane w ramach budżetu.

4. Stały zespół specjalistów

Inżynierowie pracujący w ramach istniejącego zespołu i bazy kodu, współdzielący roadmapę i proces code review. Najlepsze rozwiązanie, gdy klient chce zachować odpowiedzialność za system, a kompetencje mają pozostać w firmie.

5. Długofalowe partnerstwo

Wieloletnia odpowiedzialność przez cały program modernizacji i dłużej. Odpowiednie, gdy system przetrwa kilka kolejnych składów wewnętrznego zespołu.

Masz pytania dotyczące modernizacji systemów legacy?

Porozmawiajmy o planie modernizacji systemu, którego nie można wyłączyć, ale też nie można zostawić w obecnym stanie.

Rozmowa o systemie, który trudno zmienić, i o realistycznej, stopniowej ścieżce dalszego rozwoju.

CODEWAVE_11_11zon.webp
european-funds-logo.svgrp-logo.svgpfr-logo.svgeu-erdf-logo.svg