Mariusz Sawicki

IT Infrastructure Architect | Board Representative for Hosting

Poznaj najpopularniejsze typy migracji aplikacji. Sprawdź, jaki model migracji aplikacji do chmury najlepiej sprawdzi się w Twojej firmie

Technologia

Jest wiele sytuacji, w której przeniesienie aplikacji poza serwery firmy stanowi dla niej najkorzystniejsze rozwiązanie.

Powodem takiej decyzji mogą być problemy z wewnętrznym działem IT, któremu brakuje zasobów lub specjalistycznych kompetencji, aby wdrożyć i utrzymywać potrzebne rozwiązanie. Częste są także sytuacje, w których firma postanawia zmienić dotychczasowego partnera.

W tym drugim przypadku najczęstszymi sygnałami o konieczności zmiany dostawcy usług są:

  • problem ze spełnieniem wymogów bezpieczeństwa lub wydajności,
  • rozbieżności z SLA,
  • niedostarczenie systemu na czas,
  • zła komunikacja z przedstawicielami partnera.

W każdym z tych przypadków firma staje przed koniecznością przygotowania odpowiedniej strategii migracji. Jednym z jej kluczowych elementów jest wybór optymalnego sposobu przeniesienia aplikacji, który zawsze zależy od konkretnych potrzeb organizacji i charakterystyki samej aplikacji.

Jednak przed przystąpieniem do tego procesu warto przeanalizować specyfikę poszczególnych typów migracji. Ich znajomość ułatwi wybór podejścia, które uwzględni obecne znaczenie aplikacji, plan jej dalszego rozwoju oraz odpowie na związane z nią cele biznesowe firmy.

Dlaczego warto migrować?

Migracja aplikacji może przynieść firmie wiele korzyści, w tym:

  • Mniejsze koszty operacyjne: Firma płaci wyłącznie za wybrane zasoby i usługi. Wydatki związane z zakupem i utrzymaniem odpowiedniej infrastruktury zostają przeniesione do partnera, który zapewnia sprzęt, energię i doświadczonych specjalistów IT.
  • Skalowalność: Dzięki przeniesieniu infrastruktury firma zyskuje możliwość elastycznego dopasowywania potrzebnych zasobów do aktualnego obciążenia aplikacji.
  • Niezawodność: Zewnętrzna infrastruktura ułatwia tworzenie kopii zapasowych, odzyskiwanie po awarii i zapewnianie ciągłości działania, ponieważ dane mogą być dublowane w wielu nadmiarowych lokacjach w sieci dostawcy.
  • Dodatkowa funkcjonalność: Wiele typów migracji umożliwia wykorzystanie możliwości nowej infrastruktury pozwalając na rozszerzenie aplikacji o nowe funkcje.

5 głównych typów migracji

Istotą migracji jest przeniesienie aplikacji z jednego środowiska komputerowego do drugiego, np. z wewnętrznej infrastruktury firmy do chmury zewnętrznego dostawcy. Na poziom skomplikowania poszczególnej migracji wpływa szereg czynników, w tym m.in. wykorzystywane przez aplikację technologie i stopień jej powiązań z innymi narzędziami firmy.

Z tego powodu warto przyjrzeć się najczęściej stosowanym typom migracji:

Rehost: Przeniesienie aplikacji do chmury bez wprowadzania zasadniczych zmian w samej aplikacji.

Replatform: Przeniesienie aplikacji do chmury wraz z niewielką modyfikacją oprogramowania pod kątem lepszej integracji z nowym środowiskiem.

Refactor: Zmodernizowanie istniejącej aplikacji i wdrożenie jej na nowej infrastrukturze, co umożliwia pełniejsze wykorzystanie możliwości nowego środowiska.

Rebuild: Stworzenie aplikacji w modelu cloud-native, które pozwala na najszersze wykorzystanie możliwości nowej infrastruktury.

Replace: Zastąpienie istniejącej aplikacji oprogramowaniem typu SaaS (Software as a Service).

Hosting i usługi w chmurze

Znajdź optymalne rozwiązanie oparte o chmury prywatne lub chmury publiczne

Zobacz usługi

Przeniesienie oryginalnej aplikacji do zewnętrznego środowiska w modelu IaaS

Rehosting (zwany również lift and shift) aplikacji polega na wdrożeniu aplikacji w nowym środowisku bez wprowadzania zasadniczych zmian w samej aplikacji. Jest to stosunkowo prosty i szybki rodzaj migracji, który pozwala obniżyć koszty utrzymania aplikacji bądź powierzyć zarządzanie nią zewnętrznemu partnerowi. Rehosting przeważnie jest realizowany jako usługa w modelu IaaS (Infrastructure as a Service).

IaaS (Infrastructure as a Service) to usługa polegająca na wynajmie infrastruktury IT: procesorów, pamięci operacyjnej i masowej udostępnianej zwykle pod postacią wirtualnych serwerów (maszyn wirtualnych, VM) lub komponentów sieciowych. W tym rozwiązaniu dostawca usługi posiada kontrolę nad warstwą fizycznego sprzętu oraz platformą wirtualizacji, podczas gdy klient odpowiada za samo powołanie maszyn wirtualnych, ich konfigurację i zarządzanie działających na nich systemów operacyjnych i aplikacji.

Kiedy Rehost to dobre rozwiązanie?

Rehosting jest optymalnym rozwiązaniem dla tych aplikacji, które w obecnej formie spełniają swój cel, ale firma chce w krótkim czasie poprawić ich wydajność lub uwolnić własny dział IT od obowiązku zarządzania rozwiązaniami o niższym priorytecie dla organizacji. Niemniej nie jest to rozwiązanie, które wpłynie na podstawową funkcjonalność przenoszonego oprogramowania.

Zalety

  • Krótki czas migracji
  • Najtańszy ze wszystkich typów migracji
  • Migracja aplikacji nie wymaga przebudowy samej aplikacji
  • Uwalnia firmę od potrzeby posiadania własnej infrastruktury
  • Zmniejszenie kosztów utrzymania aplikacji
  • Lepsza skalowalność aplikacji

Wady

  • Brak możliwości wykorzystania pełni możliwości nowego środowiska i funkcji natywnych chmury
  • Obniżenie kosztów utrzymania aplikacji i poprawa wydajności są widocznie mniejsze niż w innych typach migracji
  • Firma wciąż odpowiada za zarządzanie zarówno samą aplikacją, jak i oprogramowaniem pośredniczącym

Refaktoryzacja aplikacji na platformie w modelu PaaS

Refaktoryzacja, czyli migracja typu Refactor, polega na zmodernizowaniu istniejącej aplikacji i wdrożenie jej na nowej infrastrukturze w modelu PaaS (Platform as a Service). Jej celem jest wprowadzenie głębokich zmian w aplikacji, które znacząco poprawiają jej możliwości i pozwalają w większym stopniu wykorzystać potencjał nowego środowiska.

PaaS (Platform as a Service) to usługa wynajmu infrastruktury IT pod postacią gotowego oprogramowania i narzędzi tworzących środowisko uruchomienia lub budowania aplikacji. Wobec IaaS dostawca rozszerza swoją odpowiedzialność za konfigurację i utrzymanie zwirtualizowanych zasobów oddając klientowi do dyspozycji odpowiednie interfejsy udostępnionego oprogramowania, np. adres wraz z danymi uwierzytelniającymi do bazy danych.

Kiedy Refactor to dobre rozwiązanie?

Migracja typu Refactor jest znacznie bardziej złożona i czasochłonna od rehostingu, ale pozwala osiągnąć rezultaty, które byłyby niemożliwe we wcześniejszym środowisku aplikacji. Z tego powodu jest to dobre rozwiązanie, jeśli przeniesienie aplikacji wynika z potrzeby rozbudowy jej dotychczasowej funkcjonalności czy poprawy wydajności i skalowalności na poziomie, który np. jest osiągalny dopiero po całkowitej zmianie architektury aplikacji.

Zalety

  • Pełne wykorzystanie możliwości nowej infrastruktury (natywne funkcje chmury)
  • Wysoka skalowalność aplikacji
  • Okazja do rozszerzenia aplikacji o wcześniej niedostępne funkcje
  • Niższy koszt utrzymania aplikacji
  • Większość odpowiedzialności po stronie dostawcy IT

Wady

  • Dość wysoki koszt migracji
  • Stosunkowo czasochłonny typ migracji
  • Konieczność wprowadzenia zmian w istniejącej aplikacji

Kiedy refaktoryzacja to za mało

Jeszcze dalej idącym rozwiązaniem jest migracja typu Rebuild, czyli zbudowanie aplikacji “od zera” z myślą o zupełnie nowej infrastrukturze. Istotą tego podejścia jest uwzględnienie zalet środowiska chmurowego od samego początku tworzenia aplikacji.

Kiedy Rebuild to dobre rozwiązanie?

Rebuild to typ migracji, który stosuje się najczęściej wtedy, gdy modernizacja obecnej wersji aplikacji jest niemożliwa lub nieopłacalna. Takie podejście pozwala, podobnie jak w przypadku refaktoryzacji, na pełne wykorzystanie funkcji, które umożliwia nowa infrastruktura.

Zalety

  • Pełne wykorzystanie możliwości nowej infrastruktury (natywne funkcje chmury)
  • Możliwość pełnego zaprojektowania aplikacji pod potrzeby określonej firmy
  • Bardzo wysoka skalowalność aplikacji
  • Okazja do rozszerzenia aplikacji o wcześniej niedostępne funkcje
  • Niższy koszt utrzymania aplikacji
  • Większość odpowiedzialności po stronie dostawcy IT

Wady

  • Tworzenie aplikacji od podstaw
  • Wysoki koszt samej migracji
  • Czasochłonna migracja
  • Potencjalne ryzyko vendor-lockin

Kompromis między szybkim przeprowadzeniem migracji a wykorzystaniem nowej infrastruktury aplikacji

Migracja typu Replatform jest rozwiązaniem pośrednim pomiędzy refaktoryzacją a rehostingiem. W tym przypadku, podczas migrowania sama aplikacja może nie być modyfikowana, ewntualnie zakres zmian jest nieznaczny. Dotyczy to takich aspektów oprogramowania jak edycja fragmentu kodu lub konfiguracji, wykorzystanie innej metody integracji z bazą danych lub innym komponentem aplikacji, podczas gdy refaktoryzacja dotyczy bardziej kluczowych elementów, np. przeprojektowanie całej architektury aplikacji.

Kiedy Replatform to dobre rozwiązanie?

Replatform to metoda, która jest dobrym punktem wyjścia do przetestowania usług PaaS chmury, by następnie wykorzystać je w bardziej kluczowych systemach.

Zalety

  • Wykorzystanie wielu możliwości nowej infrastruktury (natywne funkcje chmury)
  • Skalowalność aplikacji
  • Okazja do rozszerzenia aplikacji o wcześniej niedostępne funkcje
  • Niższy koszt utrzymania aplikacji
  • Stosunkowo tani i szybki typ migracji

Wady

  • Ten typ migracji jest możliwy tylko dla aplikacji wykorzystujących typowe właściwości usług PaaS, które wynikają z unifikacji tej usługi na platformie chmurowej
  • Ryzyko przeprojektowania i zbliżenia do modelu refactor

Zastąpienie obecnej aplikacji usługą SaaS

Replace to strategia migracji polegająca na zamianie istniejącej aplikacji oprogramowaniem typu SaaS (Software as a Service). W niektórych sytuacjach zamiast modernizować dotychczasową aplikację korzystniej jest ją zastąpić zewnętrznym rozwiązaniem o zbliżonej funkcjonalności, który jest dostarczany użytkownikowi końcowemu przez zewnętrznego dostawcę, najczęściej za pośrednictwem przeglądarki internetowej na jego urządzeniu.

SaaS (Software as a Service) to usługa dostarczenia gotowej aplikacji zwykle za pośrednictwem Internetu. W przypadku tego rozwiązania dostawca oprogramowania ponosi pełną odpowiedzialność za hosting i zarządzanie środowiskiem, w którym działa aplikacja, często pod postacią dedykowanej klientowi instancji zbudowanej z elementów IaaS i/lub PaaS. Klientowi pozostaje już tylko konfiguracja samych funkcji aplikacji, nadawanie na jej poziomie uprawnień współpracownikom i korzystanie z dostarczanych wartości biznesowych z pomocą przyjaznego interfejsu webowego.

Kiedy Replace to dobre rozwiązanie?

Zastąpienie dotychczasowej aplikacji oprogramowaniem typu SaaS może być świetną okazją do zminimalizowania liczby usług i aplikacji, oraz sposobem na uwolnienie pracowników firmy od konieczności zarządzania i aktualizowania poszczególnymi narzędziami wykorzystywanymi w firmie. Niemniej dużą wadą tego rozwiązania jest utrata pełnej kontroli nad danymi i uzależnienie firmy od konkretnego dostawcy. Dlatego pomimo wielu zalet nie jest to podejście, które sprawdzi się w każdej sytuacji.

Zalety

  • Niski koszt migracji i niemal natychmiastowy czas wdrożenia
  • Konieczność zarządzania aplikacją przez firmę zostaje ograniczone do absolutnego minimum
  • Za dostarczenie, utrzymanie, bezpieczeństwo i rozwój aplikacji odpowiada jej dostawca
  • Stosunkowo tania w użytkowaniu
  • Wysoka skalowalność
  • Rozbudowana funkcjonalność wykorzystująca atuty chmury

 

Wady

  • Vendor lock-in
  • Przeważnie ograniczone możliwości customizacji aplikacji

Modele dostarczania zasobów w chmurze