Modele migracji do chmury – wybierz najlepszą strategię

Paweł Smagała | Go to Cloud | 01.07.2020

Przeniesienie infrastruktury do chmury nie musi boleć. Ważne, aby wybrać odpowiednią strategię, a tych jest kilka: PaaS, SaaS czy IaaS. Często mówi się też o „5R”, a mnogość terminów i możliwości może przyprawić o zawrót głowy. O co chodzi? W dzisiejszym artykule wyjaśniamy, jakie są modele migracji do chmury i w których sytuacjach się sprawdzą.

Dlaczego przenosimy się do chmury?

Wiele firm ma sprecyzowane cele biznesowe, jeśli chodzi o migrację do chmury. Według raportu Flexery the State of Cloud 2019 główne powody migracji to skalowalność i oszczędności. Aplikacja hostowana w chmurze musi być dostępna i skalowalna, a cennik usług chmurowych – przejrzysty. Obecnie oferta dostawców tego typu usług jest szeroka i elastyczna. Za pomocą dedykowanych platform i usług typu „add Service” z łatwością można dodać aplikacje, maszyny wirtualne oraz wybrać geograficzny region chmurowy, a dzięki kalkulatorom dostawców – obliczyć cenę usług.

Przed migracją do chmury

Pojęcia takie jak „cloud-first strategy”, „multicloud” czy „chmura hybrydowa” przestały brzmieć dla przedsiębiorców obco. Jeszcze kilka lat temu migracja do chmury była alternatywą. Obecnie decyzja o migracji staje się wymogiem dla firm, które chcą funkcjonować w cyfrowo rozpędzonym świecie. Poza decyzją o migracji do chmury przedsiębiorcy stoją też przed wyborem:

  • Dostawcy – według Gartnera liderzy to niezmiennie AWS, Microsoft i Google.
  • Strategii migracji – główne modele opierają się gartnerowskim „5 R”, które omówimy poniżej.
  • Partnera technologicznego, który pomoże w migracji.

Jaki model migracji do chmury wybrać?

Wybór modelu migracji jest ważny, ponieważ wiąże się w wielu przypadkach ze zmianą architektury przenoszonej aplikacji i dostosowania jej działania do funkcjonowania w nowym środowisku. Główne czynniki, jakie powinniśmy wziąć pod uwagę, decydując się określoną strategię, to:

  • Stopień ingerencji w kod aplikacji.
  • Szybkość migracji.
  • Koszt początkowy.
  • Koszt w dalszej perspektywie.
  • Zaangażowanie osób technicznych.

Bazując na najważniejszych modelach opisanych przez Gartnera, a znanych pod nazwą  „5R” (Rehost, Refactor, Revise, Rebuild, Replace), przygotowaliśmy zestawienie najważniejszych modeli migracji do chmury.

Rehosting, czyli przenieś i korzystaj

Rehosting aplikacji, znany jest też pod nazwą Infrastructure as a Service (IaaS) to model, który pozwala przenieść aplikacje z dotychczasowego serwera lokalnego do nowego środowiska chmurowego przy niewielkiej ingerencji w ich architekturę. Dostawca usługi zapewnia infrastrukturę zgodnie z wymaganiami klienta. Mogą to być maszyny wirtualne, serwery czy przestrzeń dyskowa. Klient hostuje swoją aplikację, korzystając z infrastruktury zewnętrznych dostawców. Najbardziej liczący się gracze w tym obszarze to właśnie wielka trójka z raportu Gartnera. W przypadku rehostingu można się także spotkać z nazwą Lift and Shift („Podnieś i przenieś”). Lift and shift to nic innego jak strategia przenoszenia aplikacji wraz z danymi ze środowiska on-premise do środowiska chmurowego dostawcy. Dawniej rehosting aplikacji był stosowany w przypadku bardziej złożonych aplikacji. Obecnie jest często wykorzystywany w kontekście mikroserwisów i konteneryzacji, ponieważ ta strategia migracji sprawdza się właśnie w przypadku aplikacji mikroserwisowych i tych, które są zoptymalizowane pod kątem chmury prywatnej i publicznej.

Kiedy decydować się na rehosting?

Rehosting jest dobrym wyborem, kiedy chcemy ograniczyć koszty związane z utrzymaniem lub wymianą sprzętu oraz zyskać dostęp do innowacyjnych rozwiązań, takich jak nowe aplikacje.

Zalety:

  • Szybka migracja dzięki brakowi ingerencji w architekturę.
  • Mniejsze początkowe wydatki, jest to więc dobra opcja dla mniejszych i rozwijających się przedsiębiorstw, które nie chcą inwestować w fizyczny sprzęt.
  • Redukcja bieżących kosztów, takich jak utrzymanie sprzętu i zarządzanie nim.
  • Skalowalność i dostępność na żądanie – w razie potrzeby można zwiększyć ilość zasobów, np. maszyn wirtualnych.
  • Większe możliwości w dłuższej perspektywie pod kątem korzystania z usług typu pay-per-use.

Wady:

  • Odpowiedzialność za migrację posiadanych danych, zasobów i aplikacji jest po stronie działów IT w firmie.
  • Architektura pozostaje niezmieniona, przez co może być niemożliwe wykorzystanie pełnego potencjału usług chmurowych.
  • W porównaniu z innymi modelami migracji w gestii dostawcy wciąż pozostaje zarządzanie danymi oraz aplikacjami, a także oprogramowaniem pośredniczącym i samym systemem operacyjnym.
  • Możliwość zmiany strategii dostarczania usługi przez dostawcę infrastruktury oraz narzucone z góry warunki korzystania z danej usługi.
  • Brak możliwości dalszego dostosowywania przenoszonej aplikacji do chmury.
  • W dłuższej perspektywie może się pojawić potrzeba inwestowania w dodatkowe moce obliczeniowe.

Refactoring, czyli przeprojektuj i korzystaj

Refactoring aplikacji znany jest także pod nazwą  Platform as a Service. Ta strategia migracji wiąże się w prowadzaniem zmian w aplikacji, tak aby dostosować ją do funkcjonowania w środowisku chmurowym, jednak sama funkcjonalność pozostaje niezmieniona.

Kiedy zdecydować się na refactoring?

Ta strategia jest zalecana, gdy nie chcemy tracić funkcjonalności danych aplikacji. Sprawdzi się w przypadku systemów i aplikacji kluczowych dla biznesu, gdy chcemy zachować ciągłość działania i jednocześnie poprawić jakość infrastruktury.

Zalety:

  • Pozwala ulepszyć infrastrukturę.
  • Nie wymaga całkowitej przebudowy aplikacji.
  • Większe możliwości w dłuższej perspektywie pod kątem korzystania z usług typu pay-per-use.
  • Długoterminowo: skalowanie i zwrot kosztów.
  • Wykorzystanie natywnych możliwości chmury dzięki refaktoryzacji.
  • Odpowiedzialność usługodawcy jest wyższa niż w przypadku rehostingu.

Wady:

  • W przeciwieństwie do rehostingu potrzebna jest niewielka ingerencja w architekturę aplikacji.
  • Brak możliwości wprowadzenia większych zmian w architekturze i dzięki temu skorzystania np. z możliwości, jakie dają mikroserwisy
  • Większe początkowe koszty niż Lift and Shift oraz większe zaangażowanie zespołów technicznych ze względu na zmiany w aplikacji.
  • Zarządzanie aplikacjami oraz danymi i ich ochrona są po stronie firmy.

Revise, czyli ulepsz

Według Gartnera ulepszenie istniejącego kodu przy wykorzystaniu potencjału wyżej opisanych strategii (Refactor lub Rehost) jest również ważną strategią w migracji do chmury. Pozwala to na lepsze dostosowanie aplikacji do funkcjonowania w środowisku dostawcy.

Kiedy stosować revise?

Warto zdecydować się na tę opcję, gdy chcemy zmodyfikować aplikację w większym stopniu. Niektóre aplikacje mogą wymagać całkowitej zmiany architektury.

Zalety:

  • Lepsze dostosowanie do funkcjonowania w środowisku chmurowym.
  • Możliwość dodania nowych funkcjonalności.
  • Duże możliwości customizacji aplikacji.

Wady:

  • Rozwiązanie pracochłonne ze względu na znaczne zmiany w kodzie.
  • Trudne do zastosowania w przypadku monolitycznych aplikacji (np. napisanych w starszych językach, jak Java).

Rebuild, czyli przebuduj i zyskaj

W przypadku refactoringu często można posunąć się o krok dalej i wtedy pojawia się kolejne R: Rebuild. Ten model polega na całkowitej przebudowie i zmianie architektury aplikacji oraz wymaga znacznych zmian w kodzie (często jest to budowa aplikacji od podstaw). Pozwala to skorzystać z bardziej zaawansowanych, innowacyjnych funkcjonalności na platformie chmurowej dostawcy w modelu PaaS.

Kiedy zdecydować się na przebudowę?

Warto skorzystać z tego modelu, gdy chcemy zyskać dostęp do bardziej zaawansowanych funkcjonalności. Odpowiedni w przypadku mniej złożonych aplikacji, które nie są w znaczny sposób zależne od innych systemów.

Zalety:

  • Dostęp do innowacyjnych rozwiązań.
  • Niskie koszty wdrożenia i brak kosztów licencjonowania.
  • Nie jesteśmy uzależnieni od oprogramowania pośredniczącego.
  • Większe wykorzystanie natywnych mechanizmów chmurowych.

Wady:

  • Nie wszystkie funkcjonalności aplikacji można przebudować, stąd poziom funkcjonalności może być różny od oryginalnej aplikacji.
  • Ryzyko uzależnienia się od jednego dostawcy, który zajmuje się przebudową i customizacją aplikacji.

Replace, czyli zastąp, zamiast przenosić

W tym modelu nie dokonujemy żadnych zmian w posiadanym oprogramowaniu, lecz całkowicie je zastępujemy innym rozwiązaniem. Wybieramy nowe oprogramowanie, które posiada podobne funkcjonalności do już wykorzystywanych w dotychczasowym systemie. Ten model migracji polega na zastąpieniu wykorzystywanych przez firmę aplikacji ich odpowiednikami w chmurze.

Kiedy zastąpić aplikację?

Ten model migracji (znany jako SaaS – Software as a Service) sprawdzi się, gdy firma chce mieć dostęp do danych funkcjonalności, a dodatkowo korzystać z pełnego potencjału chmury. Warto rozważyć ten model w sytuacji, gdy posiadamy wiele aplikacji i systemów, a chcemy zminimalizować nasze zaangażowanie w zarządzanie nimi.

Zalety:

  • Niski koszt migracji.
  • Uniknięcie kosztów rozwoju oprogramowania (są po stronie dostawcy)
  • Wysoka skalowalność i dostępność
  • Wykorzystanie potencjału chmury przy zachowaniu znanych funkcjonalności.
  • Całość odpowiedzialności za dostarczanie i utrzymanie aplikacji spoczywa na dostawcy.
  • Duże możliwości dostosowania funkcjonalności według określonych potrzeb firmy.

Wady:

  • Customizacja wpływa na zmiany związane z zarządzaniem dostępami, danymi oraz kwestie bezpieczeństwa. Wiąże się to z dłuższym czasem oczekiwania na ich wprowadzenie.
  • Możliwe problemy z dostępem do danych, którymi zarządza dostawca.
  • Ryzyko uzależnienia się od jednego dostawcy oprogramowania (tzw. vendor lock-in).

Podsumowanie

Mimo świadomości tego, jakie korzyści niesie chmura, sama decyzja o migracji to dopiero początek. Decydując się na przeniesienie infrastruktury do chmury, stajemy przed kolejnymi wyborami, z których każdy niesie wiele możliwości. W przypadku migracji bierzemy pod uwagę cele krótko- i długoterminowe, zastanawiamy się, jakimi zasobami dysponujemy i na ile chcemy ingerować w architekturę aplikacji. W każdym przypadku wartością jest skorzystanie z konsultacji doświadczonych na tym polu partnerów, którzy wspierają firmy w procesie transformacji cyfrowej.