Przejdź do:
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.