Migracje do chmury i infrastruktura

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.

Dlaczego weekendowe okna serwisowe przestały wystarczać

Kiedyś dało się wystawić stronę informacyjną w sobotę wieczorem i skończyć przed poniedziałkiem. To wciąż działa dla narzędzi wewnętrznych używanych w jednej strefie czasowej. Nie działa dla sklepu, platformy dla klientów ani niczego, co ma podpisane SLA.

Koszt przestoju rzadko sprowadza się do samej przerwy. To zamówienia, które nie zostały złożone, zgłoszenia, które przyjdą później, i fakt, że zaplanowane okno potrafi zamienić się w nieplanowane, gdy odtwarzanie danych trwa dłużej, niż zakładał harmonogram. Pytanie nie brzmi więc, jak zaplanować przestój. Brzmi: jak się bez niego obejść.

Na czym polega migracja bez przestojów

Sama idea jest prosta. Zamiast wyłączyć stary system i włączyć nowy, uruchamiasz oba, utrzymujesz je w synchronizacji i stopniowo przenosisz ruch.

Cała praca tkwi w szczegółach. Nowe środowisko musi być faktycznym odpowiednikiem, a nie przybliżeniem: te same wersje runtime'u, te same zmienne środowiskowe, te same certyfikaty, te same zadania cykliczne. Dane muszą płynąć ze starego systemu do nowego na tyle sprawnie, żeby przełączenie było bezpieczne. Ruch musi dać się przenosić małymi porcjami, co zwykle oznacza load balancer, proxy albo DNS z krótkim TTL obniżonym kilka dni wcześniej, a nie godzinę przed.

Każdy etap musi też być odwracalny. Jeśli nowy system zaczyna zwracać błędy przy pięciu procentach ruchu, cofasz te pięć procent i szukasz przyczyny bez wpływu na klientów. To właśnie ta cecha sprawia, że dodatkowy nakład pracy się opłaca.

Osobną kwestią są sesje użytkowników i pliki, które aplikacja trzyma lokalnie. W układzie, w którym część ruchu idzie do starego systemu, a część do nowego, zalogowany klient nie może zostać wylogowany tylko dlatego, że trafił na inny serwer. Sesje muszą więc być wspólne dla obu środowisk, a przesyłane pliki dostępne z obu stron. To drobiazgi, które nie pojawiają się na schemacie architektury, a potrafią zepsuć dobrze zaplanowane przełączenie.

Baza danych decyduje o wszystkim

Serwery aplikacyjne przenosi się łatwo. Są bezstanowe, można ich mieć dziesięć i nikt nie zauważy, który odpowiedział.

Z bazą danych jest odwrotnie. Jest jedna kopia uznawana za źródło prawdy, ciągle się zmienia, a w momencie, w którym dwa systemy uznają się za nadrzędne, masz problem z danymi, który kosztuje znacznie więcej niż awaria. To tutaj plan migracji się sprawdza albo rozsypuje.

Standardowe podejście to ciągła replikacja ze starej bazy do nowej, prowadzona wystarczająco długo, żeby opóźnienie było stabilnie niskie, a potem krótkie i dokładnie rozpisane przełączenie ścieżki zapisu. Tę sekwencję ćwiczymy wcześniej na odtworzonej kopii produkcji. Próba generalna nie jest tu opcjonalna. Tylko w ten sposób dowiesz się, ile przełączenie naprawdę trwa przy Twojej ilości danych, zamiast opierać się na szacunku.

Co sprawdzamy przed decyzją o przełączeniu

Przełączenie to decyzja i powinna zapadać na podstawie dowodów, a nie daty w kalendarzu. Zanim przeniesiemy istotną część ruchu, chcemy zobaczyć nowe środowisko pod realnym obciążeniem, stabilnie niskie opóźnienie replikacji, wykonany i odtworzony backup na nowej platformie oraz monitoring pokazujący te same metryki, które obserwowano wcześniej.

Jeśli któregokolwiek z tych elementów brakuje, rozsądnie jest poczekać. Migracja przesunięta o tydzień kosztuje nieporównanie mniej niż taka, która ruszyła na systemie, którego nikt nie widzi.

Ustalamy też wcześniej, kto podejmuje decyzję o wycofaniu i przy jakich wartościach. Jeśli próg jest spisany przed startem, nikt nie negocjuje w trakcie, czy podwojony czas odpowiedzi to jeszcze norma, czy już powód do cofnięcia ruchu.

Kiedy przestój jest tańszym rozwiązaniem

Nie każdy system to uzasadnia. Jeśli prowadzisz narzędzie wewnętrzne używane przez trzydzieści osób w jednym kraju, dwugodzinne okno w niedzielę jest prostsze, szybsze i tańsze niż budowanie równoległego środowiska i etapowego przenoszenia ruchu. Złożoność ma swoją cenę i warto ją płacić tylko tam, gdzie ciągłość naprawdę ma znaczenie.

Do której kategorii należy Twój system, powiemy na etapie analizy. Część klientów przychodzi po projekt bez przestojów, a wychodzi z planem znacznie mniejszym, bo tyle w ich sytuacji wystarczy.

Co dostajesz

Mapa zależności obecnego systemu

Zanim cokolwiek ruszy, spisujemy, co się z czym komunikuje, łącznie z integracjami, o których nikt już nie pamięta. Większość awarii przy migracji bierze się z połączenia, którego nie było na schemacie.

Środowisko docelowe zbudowane równolegle

Nową infrastrukturę stawiamy obok starej i sprawdzamy na realnym obciążeniu, żeby przełączenie było zmianą routingu, a nie pierwszym uruchomieniem.

Replikacja danych i plan przełączenia

Ciągła replikacja utrzymuje oba systemy zsynchronizowane aż do przełączenia, a samo przełączenie i jego cofnięcie mają spisaną kolejność kroków.

Stopniowe przenoszenie ruchu

Ruch przechodzi partiami, a nie naraz, więc ewentualny problem widzi niewielka część użytkowników, a nie wszyscy.

Monitoring gotowy przed przełączeniem

Błędy, czasy odpowiedzi i kolejki są opomiarowane na nowym środowisku jeszcze przed startem. Nie da się ocenić migracji systemu, którego się nie widzi.

Wygaszenie starego środowiska

Starą infrastrukturę wyłączamy świadomie, po ustalonym okresie obserwacji, zamiast zostawiać ją włączoną po cichu przez kolejny rok, żeby dalej generowała rachunki.

Jak pracujemy

  1. 01

    Inwentaryzacja i ocena ryzyka

    Spisujemy usługi, bazy danych, zadania cykliczne i integracje zewnętrzne, a potem układamy je według tego, jak bardzo zaboli awaria. Ta kolejność wyznacza plan migracji.

  2. 02

    Budowa i weryfikacja środowiska docelowego

    Infrastrukturę opisujemy kodem i wdrażamy na nowej platformie. Przed dopuszczeniem ruchu produkcyjnego robimy testy obciążeniowe i odtwarzamy realny backup.

  3. 03

    Synchronizacja danych

    Replikacja między starym a nowym systemem działa do momentu, w którym opóźnienie liczymy w sekundach. To zwykle najdłuższy etap i to on decyduje, czy przełączenie będzie nudne.

  4. 04

    Przenoszenie ruchu etapami

    Najpierw niewielki procent, potem więcej. Na każdym kroku obserwujemy błędy i czasy odpowiedzi. Jeśli coś idzie w złą stronę, cofamy ruch.

  5. 05

    Stabilizacja i wyłączenie starego systemu

    Stare środowisko zostaje dostępne przez ustalony okres obserwacji, a potem je wyłączamy i przestajesz za nie płacić.

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
  • Debezium
  • Grafana
  • Prometheus
  • AWS
  • Microsoft Azure
  • Google Cloud
  • Cloudflare

Najczęściej zadawane pytania

Powiązane realizacje

Pozostałe usługi w tej kategorii

Przeczytaj opinie firm, które nam zaufały

Zawsze są kilka kroków do przodu.

Mikołaj

CEO & Founder, GBS®

Zobacz na Clutch
GBS® logo

Dostarczone znacznie wcześniej niż termin.

Yasniel

CEO, IMEGA Sp z o.o.

Zobacz na Clutch

Indywidualne podejście ZanReal jest imponujące.

Adam

Executive, w-studio.pl

Zobacz na Clutch

Wiedza i intuicja biznesowa czynią ich wartościowym partnerem.

Magda

Designer, DIGITALUNI

Zobacz na Clutch

Szybkie rozwiązania, które obniżyły koszty o 99%.

Andrei Kapytau

Team Lead, busel.uk

Zobacz na Clutch

+20% dostarczalności dla naszych kampanii e-mail.

Joan Calabria

Sales Director, 36NORTH

Zobacz na Clutch
36NORTH logo

Masz system, którego nie możesz wyłączyć nawet na godzinę?

Napisz do nas

Opisz nam, na czym działa i co od niego zależy, a zaproponujemy plan migracji z przećwiczonym wycofaniem na każdym etapie.

Zanek

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
Tygodnik AIonline
Wyselekcjonowane wiadomości AI do porannej kawy. Co tydzień.
Wyślij mi swój email, żeby się zapisać.