Pytacie w różny sposób. Jak przenieść aplikację do Chmury? Jak zmigrować do Chmury? Jak przenieść dane do Chmury? Co to jest Cloud Migration? Zatem odpowiadamy.
Migracja aplikacji jest procesem, do którego przeprowadzenia należycie trzeba się przygotować. To na pewno! Ale jak wybrać najlepszego dostawcę? Za pomocą jakich kryteriów? W jaki sposób przeprowadzić migrację aplikacji? Na te pytania udzielimy dzisiaj konkretnych i pomocnych odpowiedzi.
Cloud Migration, czyli nie taki diabeł straszny jak go malują
Przenoszenie aplikacji biznesowych do Chmury to problem wielowymiarowy, złożony, ale przy odpowiednim planowaniu i przygotowaniu w większości przypadków przebiegający płynnie. Migracja aplikacji do Chmury, to mówiąc skrótowo problem:
- technologiczny
- logistyczno-operacyjny (np. w wielu branżach migrację należy uzależniać o sezonowych cykli obciążenia)
- administracyjny
- finansowy
- oraz w dużym stopniu także mentalny.
Ostatnia kwestia, choć wydaje się najmniej istotna, w praktyce odgrywa kluczową rolę i bywa najbardziej problematyczna. Opór wobec rozwiązań chmurowych, lęk przed przeniesieniem aplikacji do zewnętrznego dostawy jest w dużym stopniu nieuzasadniony i zbudowany na mitach. Do najbardziej rozpowszechnionych należy przekonanie, że Chmura:
- umożliwia dostęp do danych poufnych osobom trzecim
- rodzi więcej ryzyk niż rozwiązania typu On Premises
- jest kosztowna - w szczególności w długoterminowej perspektywie
- jest adekwatna, wskazana tylko dla dużych i skomplikowanych projektów, o podwyższonym statusie ważności, dla dużych podmiotów (np. globalnych korporacji)
- jest problematyczna - pod względem konfiguracji, zarządzania
- nieekologiczna i tym samym szkodząca wizerunkowi firmy
- uzależniająca usługobiorcę od usługodawcy (Vendor Lock-In)
- nieelastyczna, ograniczająca pod względem programistycznym
- jest niepewna, nieprzetestowana, tym samym potencjalnie zawodna
- jest tylko kolejnym modnym rozwiązaniem, które szybko przejdzie do historii, tworząc tym samym konieczność rozwiązania niepotrzebnych problemów, których można było uniknąć.
No dobrze, sprawdzamy. Czy choć jedna z powyższych wątpliwości jest prawdziwa? Nie. Ale, w porządku, tego rodzaju obawy można zrozumieć. Każde nowe rozwiązanie, w szczególności w jakimś sensie przełomowe, na początku rodzi szereg obaw i fałszywych wyobrażeń.
Podobnie było z usługami Cloud Computing. Powyższe mity najlepiej zweryfikowało życie, udowadniając, że Chmury posiadają o wiele więcej zalet, oferują o wiele więcej korzyści i przewag, niż rodzą problemów. Problemów głównie jednak antycypowanych, niż realnie doświadczanych.
Migracja do Chmury - fakty zamiast mitów
Zaufani dostawcy (Cloud Service Providers) w opinii swoich klientów, a badania satysfakcji są przeprowadzane także przez niezależne podmioty, gwarantują poufność oraz bezpieczeństwo danych. Usługi chmurowe znaczną część ryzyk wręcz rozwiązują (np. dotyczących skalowalności, czy bezpieczeństwa). Kosztowo zazwyczaj także są atrakcyjniejsze, w szczególności, jeśli uwzględnimy zmianę kosztu kapitałowego na operacyjny. Struktura kliencka od lat jasno pokazuje coraz większy udział mniejszych podmiotów, dla których rozwiązania chmurowe częstokroć są wręcz dedykowane.
W pozostałych kwestiach sytuacja wygląda podobnie.
Migracja aplikacji do Chmury jest rozwiązaniem pozwalającym organizacji na zmniejszenie kosztów. W wyniku migracji do Chmury mamy dostęp do wysoko wyspecjalizowanych funkcjonalności (np. dystrybucja contentu, konfiguracja bazy danych). Dzięki czemu nie musimy poszerzać zespołu o kolejnych specjalistów, tworzących potrzebne firmie narzędzia.
Problem uzależnienia usługobiorcy od usługodawcy (Vendor Lock-In) rozwiązują open source`owe frameworki oraz sami dostawcy usług chmurowych. Na pewno dotyczy to liderów branżowych, którzy owe frameworki wykorzystują.
Rynkowy staż, rozszerzanie się pakietu usług chmurowych, wzrost zapotrzebowania ewidentnie przeczą mitom doraźności. Usługi chmurowe stały się dziś standardem, usługami sprawdzonymi, znajdującymi zastosowanie w większości branż. Cenionymi za ich bezpieczeństwo, atrakcyjność kosztów oraz możliwości.
Jeśli można dziś wskazać rynkowy trend, który wyznaczy standardy na kolejne lata, to na pewno jest nim Cloud Computing. A migrację do Chmury niebawem będzie się uznawać za oczywistą oczywistość. Już dziś, firmy, które nie korzystają z usług chmurowych, które proces migracji uznają za ryzykowny, coraz częściej są postrzegane jako anachroniczne i mniej atrakcyjne.
Zatem, skoro uporaliśmy się z mitami czas odpowiedzieć na podstawowe pytania.
Czy wiesz, że... Cloud Computing może być nawet kilkadziesiąt razy tańszy w porównaniu do kosztów rozwiązań typu On Premises.
Jak przenieść aplikację webową do Chmury?
Przeniesienie aplikacji do Chmury (mobilnej lub webowej) to proces, w którym przenosimy aplikację, dane, elementy infrastrukturalne na serwer dostawcy usług chmurowych, by zapewnić sobie:
- lepszą wydajność i skalowalność
- dostęp do funkcji, rozwiązań, aplikacji wspomagających zarządzanie zasobami, procesami, żądaniami, wydarzeniami
- dostęp do zaawansowanych technologicznie, bardzo kosztownych narzędzi, których samodzielne tworzenie jest czasochłonne i wymaga znacznych nakładów finansowych (np. Amazon Rekognition)
- optymalne wykorzystanie zasobów, aplikacji, rozwiązań etc.
- bezpieczeństwo danych, poprawić poziom ich zabezpieczeń
- obniżyć ryzyko oraz zwiększyć wiarygodność
- obniżyć koszty utrzymania wysokowydajnej infrastruktury.
W praktyce, w pierwszej kolejności oznacza to zmianę sposobu myślenia. Chmura spodoba się każdemu, kto lubi korzystać ze sprawdzonych, gotowych rozwiązań. Programistycznym majsterkowiczom raczej też przypadnie do gustu. W szczególności jeśli zrozumieją, że gotowe rozwiązania także pozwalają na majsterkowanie, tyle że na trochę wyższym poziomie. Zamiast budować klocki, w Chmurze można budować z klocków.
A to z kolei pociąga za sobą zmianę sposobu działania i pracy zespołów specjalistów, organizowania, zarządzania, kontrolowania procesów, monetyzowania technologii. Wraz z przeniesieniem aplikacji do chmury zmieniają się cele, środki, narzędzia i zadania. Mówiąc ogólniej, zmienia się model biznesowy firmy.
Skoro mówimy o procesie, to mówimy zatem o etapach, krokach, przygotowaniach, działaniach, celach, wskaźnikach ich osiągania oraz koniec końcu kryteriach, jakich będziemy używać do oceny, porównania i wyboru dostawcy usług chmurowych.
Można powiedzieć, wcale nie przesadzając, że najtrudniejszą kwestią w migracji aplikacji do Chmury jest sam wybór dostawcy. Rynek oferuje naprawdę szeroką gamę i dostawców i możliwości, jakie oferują. Przy czym najważniejszymi graczami na rynku chmurowym są Amazon AWS, Microsoft Azure, Google Cloud oraz Alibaba Cloud (w szczególności polecany dla firm działających na rynkach azjatyckich). Jakimi zatem kryteriami należy się posłużyć, by wybrać optymalną ofertę usług chmurowych?
Migracja do Chmury - Kryterium Ekonomiczne
Do najczęstszych powodów należy oczywiście motywacją ekonomiczna. Możliwość minimalizowania, optymalizowania kosztów jest istotą usług chmurowych. Różnice kosztów są oczywiście kwestią bardzo indywidualną, ale zdecydowana większość użytkowników Chmur aspekt ekonomiczny uznaje jako istotny i przekonujący.
Kryterium Konkurencyjności
Podobnie rzecz się ma z efektywnością oraz potrzebą strategicznego zabezpieczenia pozycji rynkowej, zdobywania przewagi. Rozwiązania chmurowe zwiększają szanse rynkowego sukcesu i stanowią narzędzia konkurowania. Są po prostu technologicznie o wiele bardziej wydajne, stabilne, bezpieczne, perspektywiczne.
Ponadto, wiele z oferowanych narzędzi jest po prostu trudna do samodzielnego zbudowania. Są zbyt zaawansowane, wymagają zbyt dużych nakładów finansowych. Mogąc z nich korzystać na platformie chmurowej, możemy wyprzedzać naszą konkurencję.
Kryterium Celów Biznesowych
Nie mniej istotną kwestią jest chęć rozwiązywania problemów biznesowych za pomocą najbardziej adekwatnych, niezawodnych i efektywnych narzędzi. Mając na uwadze hierarchię ich ważności oraz strategiczne znaczenie dla rozwoju firmy, wybierać należy dostawcę zgodnie z nadaną im rangą i rolą.
Najprostszym, najbardziej popularnym narzędziem do określania celów biznesowych jest metoda S.M.A.R.T. Za nazwą-akronimem kryją się cechy, jakimi cel biznesowy musi się charakteryzować.
Zgodnie z tą metodą powinien być konkretny (Specific), jednocześnie szczegółowy i jednoznaczny. Musi także być osiągalny (Attainable) i mierzalny (Measurable), a więc powinien pozwalać stwierdzać, czy został, czy też nie został osiągnięty.
Cel biznesowy musi być również istotny (Relevant). Jego osiągnięcie powinno przynieść wymierną zmianę w organizacji. Ostatnią cechą jest przekładalność, wyrażalność celów biznesowych w czasie (Time-defined).
Przenosząc aplikację do Chmury bardzo łatwo znaleźć wskaźniki dla poszczególnych celów biznesowych, zdefiniowanych za pomocą metody S.M.A.R.T. Oferowane rozwiązanie powinno pozwalać na ich wytypowanie, określenie, zmierzenie oraz porównanie do wyników sprzed migracji.
Kryterium Bezpieczeństwa, Ochrony Danych
Możliwość szyfrowania danych przechowywanych w Chmurze, do których klucz posiada tylko klient, powinna uspokoić wszystkich. W szczególności tych, którzy nie czują się przekonani w kwestii przeciwdziałania dostępowi do danych osób trzecich.
Nie czujecie się przekonani? Zatem polecam skrupulatne sprawdzenie specyfikacji wykorzystywanych przez dostawcę, w szczególności dotyczących:
- zabezpieczeń
- stosowanych standardów ochrony danych (np. tworzenia kopii - backupów).
Warto także pamiętać, że dostawcy usług chmurowych nie funkcjonują w próżni prawnej i muszą dostosowywać swoją ofertę do wymogów i rekomendacji organizacji oraz instytucji państwowych. W przypadku usług Cloud Computing szczególności istotne jest spełnianie wymogów:
- CISPE (Cloud Internet Service Providers in Europe)
- EU-US Privacy Shield
- GDPR / RODO (General Data Protection Regulation).
Oraz dostosowanie firmy-dostawcy usług do norm jakości:
- ISO 9001
- ISO 27001
- ISO 27017.
Infrastruktura aplikacja realnie chroniona przez budzące zaufanie standardy, narzędzia, środki stanowi realną wartość i korzyść dla jej użytkowników.
Kryterium Istotności i Problematyczności Aplikacji
Firmy najczęściej poszukują rozwiązań chmurowych dla aplikacji już istniejących i charakteryzujących się dużym obciążeniem lub dopiero produkowanych i testowanych. Oba warianty to odmienne zbiory potrzeb i problemów, zatem wymagają różnych rozwiązań.
Kolejność przenoszenia aplikacji do Chmury powinna być uzależniona od stopnia ważności aplikacji, w jakim stopniu jej niedostępność będzie dla organizacji niosła skutki krytyczne, ważne i poboczne. Szybkość, kłopotliwość integracji, a co za tym idzie możliwość wystąpienia nieprzewidzianych, niepożądanych przerw także powinna rozstrzygać o wyborze konkretnego dostawcy.
Kryterium Nakładów Pracy, Czasu i Środków
Częstym kryterium jest także czasochłonność, pracochłonność zmian, jakie są wymagane do dostosowania aplikacji do nowego środowiska. Rachunek zysków, kosztów jest więc nieodzownym narzędziem w czasie selekcji aplikacji, których działanie chcemy docelowo oprzeć na usługach chmurowych.
Warto mieć świadomość, że każda migracja może, ale wcale nie musi wiązać się z przerwą w pracy aplikacji lub zmianą jej funkcjonalności. Odpowiednie zaplanowanie, efektywne przeprowadzenie migracji skutecznie przeciwdziała niepożądanym przestojom. Można im także zaradzić dzięki wyposażeniu aplikacji w narzędzia diagnostyczne, systemy monitoringu. Po migracji pozwalają one na szybkie wychwycenie błędów.
Kryterium Wymogów, Ograniczeń Zewnętrznych
Wybierając dostawcę usług chmurowych, należy także mieć na uwadze panujące w danej branży normy prawne, wymogi narzucane przez zewnętrzne instytucje oraz wszelkie ograniczenia, jakim organizacja i jej aplikacja podlegają. Wymogi dotyczące na przykład bezpieczeństwa, dokumentacji zdarzeń muszą znajdować odzwierciedlenie w funkcjach danego rozwiązania chmurowego.
Kryterium Kosztów
Wymierny zysk finansowy - jego wysokość, różnica - jest do ustalenia po precyzyjnym określeniu kosztów “przed” i “po”. Większość ofert chmurowych nalicza koszty za rzeczywiste wykorzystanie zasobów, przy czym należy ustalić “czy” i “przy jakich warunkach” są naliczane koszty dodatkowe.
Mogą one dotyczyć kwestii, które z punktu widzenia klienta nie są oczywiste (np. koszty komunikacji). Znając wszystkie opcje kosztowe, możemy dokonać szacunków i porównań.
Przy czym, by miały one wartość porównawczą, by pozwalały na określenie rzeczywistej różnicy, musimy równie skrupulatnie liczyć koszty utrzymania własnej infrastruktury.
Warto jednak pamiętać, że koszt sprzętu, oprogramowania, zasilania i utrzymania sieci to tylko około 40% wszystkich kosztów.
Pozostałe 60% stanowią koszty związane z pomieszczeniami, w których znajduje się sprzęt (serwerownie). W szczególności dotyczy to kosztów utrzymania stałej temperatury, wilgotności.
Nie można także zapomnieć o kosztach związanych z zatrudnieniem pracowników obsługujących infrastrukturę, kosztach wynajmu, podatkach, oświetleniu, kosztach pracy, amortyzacji (także sprzętowej niekompatybilności podzespołów różnych generacji) oraz kosztach ryzyka.
Kryterium Koniecznych Zmian
Przenoszenie aplikacji do Chmury oznacza - w zależności od konkretnego przypadku - zmiany w kodzie. Ich zakres oraz złożoność jest zmienna i bardzo indywidualna. Niemniej jednak nie można wykluczyć takich prac.
Konieczność jest wynikiem odmiennego skonfigurowania, odmiennych funkcjonalności, odmiennego środowiska, jakimi są firmowe Data Center i Cloud Computing. Ale przede wszystkim są wynikiem ilości i złożoności natywnych rozwiązań dostawcy, którymi chcemy zastąpić rozwiązania w naszej aplikacji.
Zmiana modelu działania wymusza jednocześnie na organizacji konieczność dostosowania procedur, instrukcji, polityk, zadań oraz zakresów odpowiedzialności. W szczególności dotyczy to kwestii bezpieczeństwa, sposobów reagowania na zagrożenia, definiowania ryzyka.
Etapy Przenoszenia Aplikacji do Chmury
W większości przypadków dostawcy usług chmurowych oferują szerokie wsparcie merytoryczne oraz pomoc w procesie migracji do Chmury. Warto pamiętać, że proces obejmuje procedury, etapy oraz narzędzia i instrukcje.
Rozwiązania dostępne w ramach danej oferty zazwyczaj obejmują także doradztwo związane z dopasowaniem ich do celów i procesów biznesowych. Dokonując wyboru, należy także przemyśleć kwestię modelu, formy migracji.
Klienci zazwyczaj wybierają jeden z trzech najpopularniejszych:
- Rehosting (Lift and Shift)
- Rebuilding & Refactoring.
Rehosting (Lift and Shift)
Rehosting wiąże się zazwyczaj z minimalną ingerencją w kod aplikacji w trakcie migracji do nowego środowiska. Infrastruktura jest dostosowywana do aplikacji. Bardzo często z tego modelu korzystają firmy wykorzystującą konteneryzację oraz wirtualizacje.
Ich celem jest zmniejszenie kosztów związanych z utrzymaniem, amortyzacją sprzętu. Równie istotne jest pragnienie dostępu do najnowocześniejszych rozwiązań technologiczno-sprzętowych.
Do najważniejszych zalet metody Lift and Shift należy:
- minimalna bądź zerowa ilość zmian w kodzie
- łatwiejsze zarządzanie kluczowymi elementami aplikacji (np. bezpieczeństwem)
- szybko odczuwalna zmiana (redukcja) obciążeń finansowych związanych z aplikacją
- szybkość migracji oraz mniejsza ilość zasobów koniecznych do migracji.
Rehosting jest metodą polecaną użytkownikom o mniejszym doświadczeniu i mniejszych kompetencjach technicznych. Niemniej jednak nie jest to metoda pozbawiona wad. Do najważniejszych należą:
- brak możliwości wykorzystania całego potencjału Chmury
- niższa wydajność aplikacji ze względu na brak pełnego dostosowania do nowego środowiska.
Rebuilding & Refactoring
Czy wiesz, że... Prawie połowa agencji rządowych w Stanach Zjednoczonych korzysta z Chmury. Polityka pro chmurowa doczekała się nawet własnej nazwy – Cloud First!
Oba modele bywają w opisach od siebie separowane, ale w praktyce różnice między nimi nie są aż tak duże. Nie wdając się w akademickie spory nazewnicze, przejdźmy do istoty tych prac.
W praktyce Rebuilding i Refactoring oznacza mniej lub bardziej szeroką przebudowę aplikacji, bądź jej budowę od podstaw. Co pozwala maksymalnie wykorzystać możliwości oferowane przez rozwiązania chmurowe.
Migracja wiąże się z przeprojektowaniem aplikacji pod kątem jej zgodności z wymogami nowego środowiska, w szczególności jej dostosowania pod kątem funkcjonalnym. Nie oznacza to zmiany funkcjonalności aplikacji, ale dostosowanie jej do funkcjonalności chmurowych.
Dzięki tym rozwiązaniom zyskujemy:
- aktualizację technologiczną, w szczególności starszych aplikacji i usunięcie problemu długu technologicznego (Technical Debt, Design Debt)
- dostęp do wszystkich natywnych, zaawansowanych funkcjonalności Chmury
- lepsze zabezpieczenia
- poprawę wydajności, jakości działania bez konieczności przeprowadzania długoterminowych, drogich adaptacji
- większą elastyczność, dostępność
- znaczny zwrot z inwestycji (ROI).
Wadą obu rozwiązań jest:
- konieczność ingerencji w kod
- konieczność przeprowadzenia testów, pozwalających sprawdzić poprawność działania (problem regresji funkcjonalnej)
- ryzyko wystąpienia błędów na różnych poziomach działania aplikacji
- czasochłonność
- konieczność użycia większej ilości zasobów.
Działania Postmigracyjne & Cloud Economy
Czy wiesz, że... Usługi pocztowe w Chmurze nie znają ograniczeń, nie rozumieją limitu 25 MB. Z ich pomocą, możesz przechowywać i udostępniać duże pliki.
Wraz z przeniesieniem aplikacji do Chmury nie kończą się prace związane z jej utrzymaniem i rozwojem. W Chmurze podobnie jak w środowisku On Premises aplikacja wymaga stałego nadzoru, aktualizacji kodu, zarządzania jej wydajnością.
Warto także zadbać o jej wielowymiarowe testy, które pozwolą wyeliminować wszelkie błędy. W szczególności należy sprawdzić, czy aplikacja:
- działa poprawnie
- jest dostępna dla wszystkich użytkowników
- zawiera kompletne dane
- i jej komponenty komunikują się ze sobą poprawnie.
Optymalizacji poddawać można także koszty związane z rozwiązaniami chmurowymi. Przenosząc aplikację do Chmury mamy możliwość nieustannego poprawiania wydajności finansowej infrastruktury.
Na gruncie takich działań, praktyk wyrosła prężnie rozwijająca się specjalizacja Cloud Economy, która jest praktyką kreatywnego zmniejszania kosztów usług chmurowych oraz usługą świadczoną przez wysoko wykwalifikowanych specjalistów.
Alokacja kosztów, monitorowanie i optymalizacja utylizacji zasobów, dostosowywanie ilości zasobów do obciążeń okresowych to najpopularniejsze z działań możliwych do przeprowadzenia na gruncie Cloud Economy.
Inną możliwością jest pomysłowe podejście do funkcjonalności chmurowych - sprawdzenie różnych konfiguracji. Ciągłe eksperymentowanie z infrastrukturą przynosi wymierne korzyści.
Podsumowanie
Przenoszenie aplikacji do Chmury jest procesem o różnym stopniu złożoności i na bardzo podstawowym poziomie może być wykonany bez angażowania dodatkowych specjalistów. Proces migracji może się odbyć z pomocą dedykowanych doradców dostawcy.
Rozwiązania chmurowe są z powodzeniem wykorzystywane przez organizacje z różnych branż, o różnej wielkości, realizujących różne cele biznesowe.. Także przez firmy małe i średnie, które używają nowoczesnego oprogramowania, technologii, centrów danych, Chmury Obliczeniowej do zwiększenia swojej konkurencyjności.
Firma wykorzystująca środowisko, zasoby, realizująca swoje potrzeby biznesowe za pomocą Chmury, jest w stanie (przy znacznym ROI i relatywnie niskim koszcie) zdobyć dostęp do bardzo zaawansowanych narzędzi.
Wybór konkretnego dostawcy (Amazon AWS, Microsoft Azure, Google Cloud, Alibaba Cloud) powinien być przeprowadzony wielowymiarowo, gruntownie, w oparciu o zróżnicowane kryteria, pozwalające dostrzec korzyści i ograniczenia danej oferty.
Migrację, przeniesienie aplikacji do Chmury można wykonać na kilka sposobów, które pozwalają uzyskać różne cele i wiążą się z różnymi koniecznościami. Na najbardziej podstawowym poziomie, przeniesienie aplikacji do Chmury nie musi się wiązać z ingerencją, zmianą jej kodu i funkcjonalności.