Migracje inkrementacyjne
Nie wszystko trzeba przenosić naraz. Migrujemy system po systemie, zaczynając od tego, co najbardziej boli, więc efekty widzisz na długo przed końcem projektu.
Dlaczego przenoszenie wszystkiego naraz rzadko się udaje
Odruch przy migracji jest taki, żeby potraktować ją jako jeden projekt z datą startu, datą końca i wielkim przełączeniem pośrodku. W harmonogramie wygląda to dobrze. W rzeczywistości sprawdza się źle.
Problem polega na tym, że całe ryzyko ląduje w jednym dniu, a żadna korzyść nie pojawia się wcześniej. Jeśli przełączenie się przesunie, przesuwa się wszystko. Jeśli jeden komponent okaże się znacznie trudniejszy, niż zakładano, blokuje elementy gotowe od miesięcy. A przez cały ten czas zespół utrzymuje dwa środowiska i nie dowozi niczego nowego.
Migracja inkrementacyjna odwraca ten układ. Przenosisz jedną rzecz, potwierdzasz, że działa, i ta poprawa już zostaje. Potem bierzesz następną.
Zaczynamy tam, gdzie faktycznie boli
Pierwszy kandydat to nie jest najłatwiejszy system ani ten najwyżej w strukturze firmy. To ten, którego koszt da się wskazać palcem.
Zwykle jest to jeden z kilku wariantów. Aplikacja, która przewraca się przy ruchu, jaki powinna spokojnie obsłużyć. Serwer, którego rachunek rośnie rok po roku, bo nikt nie renegocjował warunków. Komponent na tyle kruchy, że nikt nie chce w nim niczego wdrażać, przez co po cichu spowalnia każdy projekt dotykający tego obszaru.
Każdy z tych przypadków daje czytelne porównanie przed i po. To ma większe znaczenie, niż się wydaje, bo drugi etap migracji uzasadnia się znacznie łatwiej, gdy pierwszy przyniósł konkretną liczbę, którą można pokazać.
Pierwszy krok jest też próbą generalną
Cokolwiek przeniesiesz jako pierwsze, powie Ci o Twoim własnym środowisku więcej niż jakikolwiek plan na papierze. To spora część wartości tego etapu i warto wybierać pierwszy komponent właśnie z tą myślą.
Niemal każda migracja wyciąga na wierzch tę samą kategorię niespodzianek. Wartość konfiguracyjna wpisana na sztywno w miejscu, którego nikt nie pamięta. Zadanie cykliczne działające na maszynie, której nie ma w żadnym spisie. Integracja uwierzytelniająca się adresem IP, która przestaje działać w momencie zmiany tego adresu. Zależność od wersji biblioteki, której nowa platforma już nie udostępnia.
Znalezienie tego na jednym ograniczonym systemie jest niewygodne. Znalezienie wszystkiego naraz, w trakcie jednego weekendowego przełączenia, to sposób, w jaki migracje trafiają do opowieści powtarzanych latami. Pierwszy etap to moment, w którym płacisz ten koszt tanio.
Granica między starym a nowym
Elementem migracji inkrementacyjnej, który bywa niedoszacowany, jest współistnienie. Przez cały czas trwania projektu część systemu jest w chmurze, a część nie, i obie połowy muszą współpracować tak, jakby nic się nie zmieniło.
Kilka rzeczy trzeba więc rozwiązać na początku, a nie przy każdym komponencie osobno. Uwierzytelnianie musi działać po obu stronach, żeby użytkownik nie został wylogowany przy przekroczeniu niewidocznej granicy. Usługi muszą mieć między sobą bezpieczne i przewidywalnie szybkie ścieżki sieciowe. Współdzielone dane muszą mieć jednego właściciela. Najczęstsza awaria w tym miejscu to dwa systemy zapisujące do czegoś, co każdy z nich uważa za własną kopię.
Zbudowanie tego porządnie w pierwszym etapie sprawia wrażenie nadmiarowej pracy. I to właśnie ono decyduje o tym, że każdy kolejny etap jest rutyną. Zespoły, które ten krok pominęły, zwykle wracają do niego po trzecim czy czwartym komponencie, tyle że przy znacznie większej liczbie działających już połączeń do poprawienia.
Kiedy warto się zatrzymać
Plan migracji wcale nie musi kończyć się przeniesieniem wszystkiego do chmury. Warto to powiedzieć wprost, bo założenie, że musi, generuje mnóstwo niepotrzebnej pracy.
Po kilku etapach zostają zwykle systemy stabilne. Działają na sprzęcie, który jest już zapłacony, rzadko się psują, a nikt nie musiał ich zmieniać od dwóch lat. Ich przeniesienie kosztowałoby realne pieniądze i dałoby niewiele. Co jakiś czas przeglądamy, co pozostało, i jeśli uczciwa odpowiedź brzmi, że reszta powinna zostać na miejscu, to właśnie rekomendujemy.
Celem nigdy nie było znalezienie się w całości w chmurze. Celem było to, żeby infrastruktura przestała przeszkadzać.
Co dostajesz
Lista priorytetów oparta na realnych problemach
Układamy Twoje systemy według tego, jak często się psują, ile kosztuje ich utrzymanie i jak trudno je zmieniać. Zaczynamy tam, gdzie korzyść jest najbardziej oczywista, a nie tam, gdzie schemat wygląda najładniej.
Osobna ścieżka migracji dla każdego systemu
Każdy element dostaje własny plan. Część przenosimy jeden do jednego, część wymaga wcześniejszych poprawek, a część lepiej na razie zostawić tam, gdzie jest.
Współistnienie starego i nowego
W trakcie przejścia przeniesione i nieprzeniesione części muszą się ze sobą komunikować. Projektujemy tę granicę świadomie, zamiast odkrywać ją w połowie projektu.
Wspólne logowanie i dostęp do danych
Użytkownik nie powinien odczuć, w której połowie systemu się znajduje. Uwierzytelnianie i współdzielone dane rozwiązujemy raz, na początku, a nie łatamy przy każdym kolejnym komponencie.
Widoczność kosztów na bieżąco
Dla każdego przeniesionego elementu mierzymy koszt przed i po, więc uzasadnienie biznesowe powstaje z rzeczywistych liczb, a nie z prognozy sprzed roku.
Punkt zatrzymania, z którym da się żyć
Częściowa migracja ma być stabilnym stanem docelowym, a nie niedokończonym projektem. Każdy etap zostawia system w stanie, w którym możesz zostać na stałe.
Jak pracujemy
- 01
Audyt i ustalenie kolejności
Przeglądamy obecne środowisko: co gdzie działa, ile kosztuje, co się psuje. Efektem jest uporządkowana lista wraz z uzasadnieniem, a nie sam schemat.
- 02
Migracja pierwszego komponentu
Na pierwszy krok celowo wybieramy coś wartościowego, ale ograniczonego. Potwierdza podejście, wcześnie ujawnia niespodzianki i daje zespołowi wzorzec na resztę.
- 03
Zbudowanie granicy między środowiskami
Sieć, uwierzytelnianie i dostęp do danych między chmurą a tym, co zostało lokalnie, powstają porządnie już w pierwszym etapie, bo opiera się na nich każdy kolejny etap.
- 04
Powtarzanie i pomiar
Kolejne komponenty idą tym samym schematem, z porównaniem kosztów i stabilności przed i po, żeby następna decyzja miała oparcie w danych.
- 05
Przegląd tego, co zostało
Co jakiś czas sprawdzamy, co jeszcze nie zostało przeniesione. Czasem właściwą odpowiedzią jest zatrzymanie się. Reszta systemów działa stabilnie i tanio, więc nie ma sensu ich ruszać.
Narzędzia i technologie
Tam, gdzie istnieje dobre narzędzie open source, wybieramy je zamiast zamkniętego. Bez uzależnienia od jednego dostawcy i z kosztami, które da się przewidzieć.
- OpenTofu
- Terraform
- Docker
- Kubernetes
- PostgreSQL
- Keycloak
- Traefik
- Grafana
- AWS
- Microsoft Azure
- Google Cloud
- Cloudflare
Najczęściej zadawane pytania
Pozostałe usługi w tej kategorii
Migracje do chmury bez przestojów
Są systemy, których nie da się wyłączyć na weekend. Przenosimy je tak, żeby przez cały czas obsługiwały klientów, z możliwością wycofania na każdym kroku.
Sprinty modernizacyjne
Krótkie, konkretne działanie, które naprawia w infrastrukturze to, co realnie Cię kosztuje, bez wchodzenia w projekt na wiele miesięcy.
Rozwiązania serverless i model scale-to-zero
Twój kod uruchamia się wtedy, kiedy jest potrzebny, i nic nie kosztuje, kiedy nie jest. Przy nierównym ruchu zmienia to rachunek ekonomiczny utrzymania systemu.
Przeczytaj opinie firm, które nam zaufały
Dostarczone znacznie wcześniej niż termin.
Indywidualne podejście ZanReal jest imponujące.
Wiedza i intuicja biznesowa czynią ich wartościowym partnerem.
Szybkie rozwiązania, które obniżyły koszty o 99%.
+20% dostarczalności dla naszych kampanii e-mail.

Który z Twoich systemów boli najbardziej?
Napisz do nasNapisz, co psuje się najczęściej albo kosztuje najwięcej w utrzymaniu, a wskażemy, od czego warto zacząć migrację i gdzie można bezpiecznie się zatrzymać.
Nie nadążasz za zmianami w świecie AI?
Pozwól, że weźmiemy to na siebie. Co tydzień destylujemy najważniejsze wydarzenia ze świata AI w skupiony, 5-minutowy przegląd — żebyś był na bieżąco bez szumu.
Dowiedz się więcej