Migracja zakończona. Kiedy można bezpiecznie wyłączyć stary system? (+ i jak to zrobić na mobile)

Decyzja o ostatecznym wyłączeniu starego systemu rzadko jest kwestią wyłącznie techniczną. To proces, w którym trzeba uwzględnić ryzyka biznesowe, ciągłość działania firmy oraz koszty utrzymywania długu technologicznego, często narastającego przez lata.
Samo przeniesienie użytkowników do nowego rozwiązania nie wystarczy, aby zakończyć migrację. Pozostają jeszcze kwestie zależności między systemami, dostępu do danych historycznych oraz wygaszenia infrastruktury i związanych z nią usług. Jak sprawdzić, czy stary system można już bezpiecznie wyłączyć?
1. Jak upewnić się, że nikt nie korzysta już ze starego systemu?
Przed wyłączeniem aplikacji trzeba zweryfikować, czy nadal korzystają z niej użytkownicy, procesy biznesowe lub zewnętrzne integracje. Najlepiej oprzeć tę ocenę na danych zbieranych na bieżąco i stopniowo ograniczać działanie systemu, obserwując skutki kolejnych zmian.
Pomocne mogą być trzy działania:
- Audyt ruchu i logowań. Analiza logów aplikacji, wywołań API oraz dostępu do baz danych na przestrzeni kilku miesięcy pozwala zidentyfikować aktywne procesy, użytkowników i integracje. Dłuższy okres obserwacji jest szczególnie ważny w przypadku procesów uruchamianych sporadycznie, np. raz na kwartał.
- Przejście w tryb tylko do odczytu (read-only). Zablokowanie możliwości zapisywania i modyfikowania danych pomaga wykryć zapomniane procesy lub integracje, które nadal próbują korzystać ze starego systemu. Ogranicza też ryzyko równoległego zapisywania danych w dwóch systemach.
- Scream test. Polega na kontrolowanym, tymczasowym odcięciu ruchu sieciowego lub zatrzymaniu wybranych usług. Pozwala sprawdzić, czy ich niedostępność powoduje błędy, incydenty lub zgłoszenia użytkowników. Taki test powinien być przeprowadzony z odpowiednim monitoringiem i możliwością szybkiego przywrócenia działania usług.
Dopiero wyniki tych działań pozwalają ocenić, które elementy starego środowiska można bezpiecznie wyłączyć.
Perspektywa mobile: co ze starszymi wersjami aplikacji?
W przypadku aplikacji mobilnych dodatkowym wyzwaniem jest brak pewności, czy wszyscy użytkownicy korzystają z aktualnej wersji. Starsze wydania mogą pozostawać zainstalowane na urządzeniach jeszcze długo po wdrożeniu nowego rozwiązania.
Pomocna jest analiza wskaźników DAU (Daily Active Users) i MAU (Monthly Active Users) z podziałem na wersje aplikacji. Pozwala ona określić, ile osób nadal aktywnie korzysta ze starszych wydań.
Ryzyko można ograniczyć za pomocą mechanizmu Force Update, który zachęca lub wymusza aktualizację aplikacji do wymaganej wersji. Warto też rozważyć wyłączenie wysyłania powiadomień push do nieobsługiwanych wersji, aby nie wybudzać nieaktualnej aplikacji działającej w tle.
2. Jak zachować dostęp do danych historycznych bez utrzymywania całej aplikacji?
Po migracji często pojawia się potrzeba okazjonalnego sięgnięcia do danych zgromadzonych w starym systemie. Utrzymywanie w tym celu całego stosu technologicznego, obejmującego serwery, bazy danych i aplikację, może generować znaczące koszty.
Dlatego warto wcześniej zaplanować archiwizację danych i wybrać sposób ich późniejszego udostępniania. Możliwe rozwiązania obejmują:
- Eksport dokumentów i danych oraz przygotowanie ich odpowiednio zabezpieczonych kopii.
- Przeniesienie danych do hurtowni, np. w formie surowej lub zdenormalizowanej, umożliwiającej późniejsze wyszukiwanie i analizę.
- Zbudowanie prostego narzędzia archiwizacyjnego, które pozwala odnaleźć potrzebne rekordy, np. na podstawie ich identyfikatorów.
Wybór rozwiązania zależy przede wszystkim od wymagań biznesowych. Organizacja powinna określić, jak długo dane muszą być przechowywane, jaki poziom ich szczegółowości jest potrzebny oraz jak szybko użytkownicy powinni móc je odzyskać.
Trzeba przy tym uwzględnić obowiązujące przepisy, wymagania dotyczące retencji danych, bezpieczeństwo archiwum i uprawnienia dostępu.
Warto zaplanować te kwestie jeszcze przed rozpoczęciem migracji. Jeśli firma dopiero rozważa zastąpienie starego systemu nowym, pomocny może być webinar Pragmatic Coders: Przepisywanie starych systemów IT z użyciem AI – kiedy ma sens biznesowy?. Omawiamy w nim m.in. przygotowanie i testowanie migracji danych oraz sposób podejmowania decyzji o tym, które funkcjonalności warto odtworzyć w nowym rozwiązaniu, a które można uprościć lub pominąć.

Perspektywa mobile: gdzie udostępniać archiwalne dane?
Aplikacje mobilne rzadko służą do przeglądania danych sprzed wielu lat. Jeśli taka potrzeba występuje, można rozważyć udostępnienie historii w panelu webowym lub umożliwić użytkownikowi zamówienie raportu wysyłanego na wskazany adres e-mail.
Ważne jest również przestrzeganie wymagań prawnych oraz zasad obowiązujących w sklepach Google Play i App Store, w tym dotyczących usuwania kont i powiązanych z nimi danych. Trzeba je uwzględnić zarówno przy projektowaniu archiwum, jak i przy wycofywaniu aplikacji.
3. Co trzeba zrobić po migracji, aby zakończyć koszty utrzymania starego systemu?
Przełączenie użytkowników na nowe rozwiązanie to dopiero jeden z etapów wygaszania starego środowiska. Dopóki działają jego elementy infrastruktury, aktywne są licencje lub opłacane usługi zewnętrzne, system nadal generuje koszty.
Dlatego ostatni etap migracji powinien obejmować zarówno prace techniczne, jak i organizacyjne.
Prace techniczne
- Wygaszenie infrastruktury. Zatrzymanie i usunięcie niepotrzebnych maszyn wirtualnych, instancji bazodanowych, dysków i pozostałych zasobów.
- Uporządkowanie sieci i dostępów. Usunięcie zbędnych rekordów DNS, unieważnienie nieużywanych certyfikatów, likwidacja kont serwisowych oraz wyczyszczenie nieaktualnych wpisów w Active Directory i systemach SSO.
- Wykonanie finalnego backupu. Przygotowanie ostatniej, spójnej kopii danych i konfiguracji, zweryfikowanie jej integralności za pomocą sum kontrolnych oraz przeniesienie do bezpiecznego archiwum.
Prace organizacyjne
- Zakończenie umów licencyjnych i wsparcia. Wypowiedzenie niepotrzebnych subskrypcji, licencji oraz umów z dostawcami oprogramowania i integratorami.
- Zarządzanie sprzętem. Bezpieczne usunięcie danych z nośników, zwrot wypożyczonego sprzętu i zwolnienie zasobów w serwerowniach.
Warto też upewnić się, że za poszczególne działania odpowiadają konkretne osoby, a zamknięcie usług zostało potwierdzone. Pozwala to uniknąć sytuacji, w której organizacja przez kolejne miesiące ponosi koszty zasobów, z których nikt już nie korzysta.
Perspektywa mobile: o czym pamiętać przy wycofywaniu aplikacji?
W przypadku aplikacji mobilnych lista zadań obejmuje kilka dodatkowych obszarów:
Wycofanie aplikacji ze sklepów. Usunięcie jej z dystrybucji w App Store Connect oraz zmiana statusu na Unpublished w Google Play Console. Należy pamiętać, że wycofanie aplikacji ze sklepu nie usuwa jej automatycznie z urządzeń dotychczasowych użytkowników.
Wygaszenie zewnętrznych SDK i usług. Rezygnacja z płatnych narzędzi rozliczanych np. na podstawie liczby aktywnych użytkowników (MAU) lub urządzeń. Dotyczy to między innymi analityki, crash reportingu, SDK do obsługi czatu czy usług mapowych.
Uporządkowanie infrastruktury CI/CD. Wyłączenie dedykowanych, płatnych runnerów macOS i Linux wykorzystywanych do kompilacji oraz dystrybucji starszych wersji aplikacji.
Zabezpieczenie kluczy podpisywania. Bezpieczna archiwizacja certyfikatów dystrybucyjnych oraz kluczy Keystore (Android), z uwzględnieniem sposobu podpisywania aplikacji. Mogą być one potrzebne, jeśli w przyszłości konieczne okaże się wydanie aktualizacji lub wykonanie innych operacji na istniejącym pakiecie.
Kiedy więc można ostatecznie wyłączyć stary system?
Najbezpieczniejszy moment na wyłączenie starego systemu przychodzi wtedy, gdy organizacja ma potwierdzenie, że wszystkie istotne procesy i integracje działają w nowym środowisku, użytkownicy nie potrzebują już starej aplikacji, a wymagane dane historyczne zostały odpowiednio zabezpieczone.
Równie ważne jest przygotowanie planu wygaszenia infrastruktury, licencji i usług zewnętrznych. Dzięki temu można ograniczyć ryzyko nieprzewidzianych przestojów, uporządkować środowisko IT i rzeczywiście zakończyć koszty utrzymywania poprzedniego rozwiązania.
Jeśli dopiero planujesz zastąpienie przestarzałego systemu i chcesz ograniczyć ryzyko związane z migracją, sprawdź, jak w Pragmatic Coders podchodzimy do przepisywania systemów legacy. Pomagamy firmom ocenić opłacalność takiej inwestycji, przygotować migrację danych i integracji oraz przejść na nowe rozwiązanie z zachowaniem ciągłości działania biznesu.




