• +48 42 278 30 00
  • biuro@mitgroup.pl
  • Help Desk
  • TeamViewer
mIT group
mIT group mIT group
Migracja · konteneryzacja · bez przestoju

Migracja do Kubernetes — konteneryzacja aplikacji bez przestoju

Przenosimy aplikacje z maszyn wirtualnych, pojedynczych serwerów i Docker Compose do Kubernetes. Etapami, z testami i planem powrotu na każdym kroku, tak żeby klienci i pracownicy nie zauważyli przeprowadzki. Na końcu masz powtarzalne wdrożenia, automatyczne skalowanie i dokumentację.

  • Etapami — usługa po usłudze
  • Plan powrotu na każdym kroku
  • VM, Docker, bare metal → Kubernetes
Kod konfiguracji i aplikacji na ekranie komputera
Serwery, z których aplikacje są migrowane do klastra Kubernetes
Kod aplikacji przygotowywany do konteneryzacji
01Punkt wyjścia

Skąd najczęściej migrujemy aplikacje

Każda migracja zaczyna się w innym miejscu, a punkt startu w dużej mierze decyduje o nakładzie pracy. Aplikacja, która już działa w kontenerach, przechodzi do Kubernetes w kilka dni. Monolit na serwerze fizycznym, z plikami zapisywanymi lokalnie i konfiguracją w kilku miejscach, wymaga najpierw przygotowania.

Maszyny wirtualne (VMware, Hyper-V, Proxmox)

Najczęstszy scenariusz. Aplikacje działają od lat na VM-kach, wdrożenia są ręczne, a licencje wirtualizacji drożeją. Konteneryzujemy aplikacje i przenosimy je do klastra, a VM-ki wygaszamy etapami.

Docker Compose na jednym lub kilku serwerach

Aplikacja jest już w kontenerach, ale brakuje wysokiej dostępności, skalowania i porządnych wdrożeń. Migracja jest stosunkowo szybka — przepisujemy konfigurację na manifesty lub charty Helm i dodajemy CI/CD.

Serwery fizyczne i hosting współdzielony

Aplikacje instalowane bezpośrednio na systemie, często z ręcznie ustawionymi zależnościami. Wymagają najpierw konteneryzacji i uporządkowania konfiguracji.

Inna platforma lub inny klaster

Przeprowadzka z OpenShift, Docker Swarm, starego klastra bez wsparcia lub między chmurami (np. z EKS na klaster on-premise). Tu kluczowe są dane i sieć.

02Strategie migracji

Strategie migracji do Kubernetes

Nie ma jednej strategii dla wszystkich aplikacji. W typowym projekcie część usług przenosimy niemal bez zmian, część dostosowujemy, a część — zwykle najstarsze — zostawiamy na razie tam, gdzie są. Decyzję podejmujemy dla każdej aplikacji osobno, na podstawie jej wartości biznesowej i kosztu zmiany.

StrategiaNa czym polegaKiedy ją stosujemy
Przeniesienie (lift and shift)aplikacja trafia do kontenera z minimalnymi zmianamiaplikacje bezstanowe, gotowe do kontenerów, szybki efekt
Dostosowanie (replatform)zmiana konfiguracji, logów, sesji i plików pod kontenerywiększość aplikacji webowych i API
Przebudowa (refactor)podział monolitu na usługi lub zmiana architekturygdy aplikacja i tak wymaga rozwoju, a skalowanie jest kluczowe
Pozostawienie (retain)aplikacja zostaje na VM, integrujemy ją z klastremstare systemy o niskiej wartości zmiany, licencjonowane pudełka
Wygaszenie (retire)aplikacja nie jest już potrzebnazdarza się częściej, niż się wydaje — inwentaryzacja to wykazuje

Bazy danych traktujemy osobno. Często najrozsądniej jest zostawić je na dedykowanych serwerach lub w usłudze zarządzanej i przenieść do Kubernetes tylko warstwę aplikacji. Decyzję o przeniesieniu baz podejmujemy świadomie, po analizie wymagań dotyczących wydajności i backupu.

03Przebieg

Jak przebiega migracja do Kubernetes

Migrację prowadzimy etapami, zaczynając od usług o najmniejszym ryzyku. Dzięki temu zespół uczy się nowej platformy na mniej krytycznych aplikacjach, a przy systemach kluczowych dla sprzedaży ma już doświadczenie i przećwiczony proces.

  1. Inwentaryzacja aplikacji

    Spisujemy aplikacje, zależności, bazy danych, pliki, cron-y, integracje i sposób wdrażania. Dla każdej usługi wybieramy strategię migracji.

  2. Klaster docelowy

    Przygotowujemy klaster na własnych serwerach lub w chmurze — albo korzystamy z istniejącego po audycie. Szczegóły opisujemy na stronie o wdrożeniu Kubernetes.

  3. Konteneryzacja

    Dockerfile, obrazy budowane w CI, konfiguracja przez zmienne i sekrety, logi na standardowe wyjście, pliki na trwałych wolumenach lub w magazynie obiektowym.

  4. Środowisko testowe

    Aplikacja działa w klastrze równolegle ze starym środowiskiem. Testujemy funkcje, wydajność i integracje, zanim ktokolwiek z klientów to zobaczy.

  5. Przełączenie ruchu

    Stopniowe przełączanie ruchu (DNS, load balancer, ingress) z możliwością szybkiego powrotu. Dane synchronizujemy wcześniej, żeby okno przełączenia było jak najkrótsze.

  6. Wygaszenie starego środowiska

    Po okresie obserwacji wyłączamy stare serwery i maszyny wirtualne. Sprzęt, który się nadaje, może zostać węzłem klastra.

04Bez przestoju

Jak ograniczamy ryzyko przestoju podczas migracji

Dla sklepu internetowego czy systemu produkcyjnego przestój to realne pieniądze. Dlatego migrację planujemy tak, żeby na każdym etapie istniała droga powrotu, a przełączenia odbywały się w uzgodnionych oknach, poza szczytami ruchu i kampaniami.

  • Stare i nowe środowisko działają równolegle aż do potwierdzenia, że nowe działa poprawnie.
  • Przełączenie ruchu planujemy tak, żeby dało się je odwrócić — z przygotowaną procedurą powrotu.
  • Dane synchronizujemy przed przełączeniem, a nie w jego trakcie.
  • Terminy uzgadniamy z biznesem: nie migrujemy sklepu przed Black Friday.
  • Monitoring nowego środowiska działa od pierwszego dnia testów, nie od dnia startu.
Zespół deweloperów i DevOps planujący etapy migracji
Migracja to praca z Twoimi deweloperami, nie za ich plecami.

Konteneryzacja razem z Twoim zespołem

Część zmian w aplikacji — np. przeniesienie sesji z plików do Redisa czy logów na standardowe wyjście — najlepiej zrobią Twoi deweloperzy, bo znają kod. My przygotowujemy listę wymaganych zmian, wzorcowe Dockerfile, pipeline i środowisko testowe, a potem wspieramy zespół przy kolejnych usługach. Po migracji deweloperzy wdrażają nowe wersje sami, przez repozytorium.

05Serwery i dane

Migracja a serwery, dane i kopie zapasowe

Przeprowadzka do Kubernetes to dobry moment na przegląd infrastruktury. Część klientów przenosi aplikacje na nowe serwery pod klaster on-premise, inni wykorzystują istniejący sprzęt jako węzły, a jeszcze inni przechodzą do chmury. Adam Mirowski dobiera wariant, który ma sens kosztowo w horyzoncie kilku lat — korzystamy głównie z serwerów Dell i Lenovo, a kopie zapasowe poza klastrem przechowujemy m.in. na serwerach Synology.

Przed każdą migracją danych wykonujemy kopię zapasową i sprawdzamy, czy da się ją odtworzyć. Przy aplikacjach przetwarzających dane osobowe uwzględniamy wymagania RODO, m.in. lokalizację danych i dostęp do nich. Jeśli migracja jest częścią szerszego porządkowania infrastruktury, łączymy ją z administracją serwerami Linux lub usługami w chmurze.

06Zespół

Kto prowadzi migrację

Za plan i przebieg migracji odpowiada Adam Mirowski, CTO mIT group — decyduje o architekturze docelowej, kolejności usług i sprzęcie. Przy konteneryzacji aplikacji i nietypowych technologiach współpracujemy ze sprawdzonymi, zewnętrznymi inżynierami DevOps, dobieranymi do projektu. Michał Szapiel prowadzi rozmowy, ofertę i koordynację z Twoją firmą.

Adam Mirowski — CTO mIT group, architektura i wdrożenia Kubernetes
Adam MirowskiCTO · architektura docelowa, plan migracji, serwery
Michał Szapiel — Key Account Manager w mIT group
Michał SzapielKey Account Manager · oferta, harmonogram i koordynacja
Zewnętrzni inżynierowie DevOps współpracujący z mIT group
Partnerzy DevOpsSprawdzeni, zewnętrzni inżynierowie DevOps · konteneryzacja i specjalistyczne technologie
07FAQ

Najczęstsze pytania o migrację do Kubernetes

Ile trwa migracja do Kubernetes?

Zależy od liczby aplikacji i punktu wyjścia. Aplikacja działająca już w Docker Compose może trafić do klastra w kilka dni, a pojedynczy monolit z maszyny wirtualnej zwykle w kilka tygodni, łącznie z testami. Migracja kilkunastu usług to projekt na kilka miesięcy, prowadzony etapami. Szacunkowy harmonogram przygotowujemy po inwentaryzacji aplikacji.

Czy migracja wymaga przestoju?

W większości przypadków nie. Nowe środowisko działa równolegle ze starym, a ruch przełączamy w uzgodnionym oknie, z przygotowaną procedurą powrotu. Krótkie okno serwisowe bywa potrzebne przy końcowej synchronizacji danych, szczególnie baz danych. Termin zawsze uzgadniamy z Tobą, poza szczytami ruchu.

Czy każdą aplikację da się przenieść do Kubernetes?

Technicznie prawie każdą, ale nie każdą warto. Aplikacje bezstanowe i webowe przenoszą się dobrze. Stare systemy zapisujące dane lokalnie, wymagające licencji przypiętej do sprzętu lub działające tylko na Windows bez wsparcia dla kontenerów często lepiej zostawić na maszynach wirtualnych i zintegrować z klastrem. Uczciwie mówimy o tym na etapie inwentaryzacji.

Co z bazami danych przy migracji?

Bazy danych traktujemy osobno. Często najrozsądniej jest zostawić je na dedykowanych serwerach lub w usłudze zarządzanej, a do Kubernetes przenieść warstwę aplikacji. Jeśli baza ma trafić do klastra, stosujemy sprawdzone operatory (np. CloudNativePG dla PostgreSQL) i szczegółowo planujemy backup. Decyzję podejmujemy po analizie wydajności i wymagań dotyczących odtwarzania.

Czy nasi deweloperzy muszą zmieniać kod?

Zwykle w niewielkim zakresie: konfiguracja przez zmienne środowiskowe, logi na standardowe wyjście, sesje i pliki poza lokalnym dyskiem, endpointy do sprawdzania stanu aplikacji. Przygotowujemy listę wymaganych zmian i wspieramy zespół przy ich wprowadzeniu. Większe zmiany architektury proponujemy tylko wtedy, gdy mają uzasadnienie biznesowe.

Czy migrujecie z VMware do Kubernetes?

Tak, to częsty scenariusz, zwłaszcza po zmianach w licencjonowaniu VMware. Aplikacje nadające się do kontenerów przenosimy do Kubernetes, a pozostałe maszyny wirtualne można przenieść np. na Proxmox lub Hyper-V albo uruchomić w klastrze przez KubeVirt. Wariant dobieramy po inwentaryzacji i porównaniu kosztów.

Czy możemy migrować do chmury, a nie na własne serwery?

Tak. Migrujemy zarówno do klastrów on-premise (RKE2, k3s), jak i do AWS EKS, Google GKE czy Azure AKS. Pomagamy wybrać wariant na podstawie kosztów w horyzoncie kilku lat, wymagań dotyczących danych i zmienności ruchu. Możliwy jest też wariant mieszany: produkcja lokalnie, środowiska testowe w chmurze.

Od czego zacząć migrację?

Najlepiej od krótkiej rozmowy i inwentaryzacji aplikacji. Napisz przez formularz kontaktowy lub na biuro@mitgroup.pl, jakie systemy chcesz przenieść i gdzie dziś działają. Jeśli nie masz pewności, czy migracja ma sens, zacznij od konsultacji Kubernetes. Wycena jest bezpłatna.

Pozostałe usługi Kubernetes:

Zaplanujmy przeprowadzkę Twoich aplikacji

Napisz, jakie aplikacje chcesz przenieść i gdzie dziś działają. Zaproponujemy strategię migracji i kolejne kroki — bezpłatnie i bez zobowiązań.

Wyślij zapytanie