Migrujemy do chmury

Opracowanie dobrej strategii migracji do chmury to bardzo ważne zadanie, które umożliwi dotrzymanie terminów i zrealizowanie założonych celów takiego projektu.

Począwszy od planowania strategicznego i realizacji, poprzez testy i wsparcie powdrożeniowe, cały proces migracji jest obarczony ryzykiem szeregu komplikacji, a nawet zagrożony niepowodzeniem całego projektu. Zrozumienie najlepszych praktyk dotyczących migracji aplikacji i danych z tradycyjnego, lokalnego środowiska to chmury stało się ważniejsze niż kiedykolwiek dotychczas.

Integralność operacyjna

Realizację migracji do chmury należy zorganizować w taki sposób, żeby w jak najmniejszym stopniu zagrozić ciągłości działania operacji biznesowych. Należy unikać czynności, które mogą mieć wpływ na źródłowe środowisko lub operacja biznesowe, których realizacja zależy od posiadanej infrastruktury informatycznej i aplikacji. Dotyczy to, np. wykonywania w godzinach pracy operacji na mocno eksploatowanych bazach danych, aby nie doprowadzić do zablokowania dostępu do danych, co może skutkować przerwaniem działania jakiś usług.

Zobacz również:

Konieczne są również działania, które zapewniają ciągłość działania najważniejszych aplikacji w trakcie migracji. Jednym z ważnych aspektów jest replikacja danych. To złożone zadanie, a jego realizacji wymaga sprawdzenia, jak duże zmiany zachodzą w danych, które wymagają przesyłania przez sieć. Jeśli ilość zmian jest większa niż dostępna przepustowość, replikacja zakończy się niepowodzeniem.

Należy też upewnić się, że środowisko docelowe jest poprawnie skonfigurowane. Jeśli są jakieś znane problemy czy kwestie, które wymagają interwencji, jak wymagane interfejsy aplikacji czy konta użytkowników, które należy założyć na nowych serwerach, to trzeba się nimi zająć, zanim rozpocznie się właściwy proces migracji.

Monitorowanie procesu

Stosowanie się do najlepszych praktyk i zasad zarządzania projektami jest szczególnie ważne w przypadku bardzo złożonych, technicznych operacji. Należy jasno i konkretnie określić cele pośrednie, przedstawiać regularnie raporty o postępach projektu osobom nadzorującym jego wykonanie. Warto utworzyć formalną strukturę, np. co tygodniowe spotkania w określonym gronie, aby dostarczać te informacje i pomagać w rozwiązywaniu potencjalnych komplikacji, które mogą się pojawić. Bez takiej struktury i regularnego raportowania bardzo często dochodzi do przekraczania zaplanowanych terminów, co skutkuje kosztownymi opóźnieniami.

Rozwiązywanie problemów

Warto upewnić się, że wszystkie licencje na oprogramowanie są aktualne, aby można było prowadzić testy w trakcie i po migracji. Jeśli jakaś licencja została udzielona na specyficzny serwer, a nie obejmuje nowego środowiska, rozwiązywanie problemów z licencjonowaniem w środku trwającej migracji może być trudne bez zakłócenia płynnej realizacji tego procesu.

Z drugiej strony, ważne jest też przeprowadzenie podstawowych testów strukturalnych i funkcjonalności w trakcie i po zakończeniu migracji. Nie można zapomnieć o dodatkowych testach funkcjonalności z udziałem użytkowników końcowych. Należy unikać angażowania w testy zewnętrznych podmiotów. Nie da się bowiem zastąpić perspektywy i doświadczenia, którymi dysponują pracownicy korzystający z danej aplikacji.

Jeśli zostanie wykryty jakiś błąd w nowych środowisku, użytkownicy testujący mogą przekazać go do zespołu zajmującego się migracją, aby określić, czy jest to błąd programistyczny czy raczej wynikający ze zmian w konfiguracji środowiska. Jest to istotne, zanim podejmie się jego naprawy. Testy nie będą kompletne dopóki wszystko nie będzie funkcjonować perfekcyjnie i wszystkie aplikacje będą w nowym środowisku działać bez zarzutu.

Ocena wydajności i bezpieczeństwa

Po zakończeniu testów użytkowników należy wykonać testy wydajnościowe oraz bezpieczeństwa. Testy wydajności są kluczowe, ponieważ nowe środowisko może działać w bardzo różnych warunkach – obsługiwać od kilku do kilkuset użytkowników. Testy wydajnościowe umożliwiają także zweryfikowanie, czy poprawnie działają wszelkie mechanizmy automatycznego skalowania, sprawdzić, czy nowe środowisko w ogóle jest w stanie obsłużyć określone aplikacje. W ten sposób ustali się również maksymalną liczbę równoległych połączeń, które są w stanie obsłużyć poszczególne aplikacje czy serwery. Pokaże również szereg parametrów wydajnościowych, jak czas ładowania stron internetowych czy wydajność aplikacji w nowych środowisku. Jest to też pierwszy krok w kierunku optymalizacji wydajności.

Z kolei ocena bezpieczeństwa i testy podatności dla poszczególnych serwerów i aplikacji przełożą się na bezpieczeństwo firmowych danych. Tego rodzaju testy warto przeprowadzić nie tylko po zakończeniu migracji, ale także podczas trwania tego procesu. Dzięki temu szybciej wykryje się ewentualne luki w zabezpieczeniach serwerów i aplikacji. Jest to również dobry moment do wdrożenia narzędzi wykorzystywanych w ramach DevOps. Warto skonsultować z zespołem zajmującym się migracją i określić rekomendacje dla tego procesu, zanim aplikacje zaczną działać w nowym, chmurowym środowisku.

Właściwie przygotowanie środowiska docelowego, zarządzania procesem migracji, dokładne testy funkcjonale i obciążeniowe, wraz z oceną bezpieczeństwa, nie tylko zapewnią płynną migrację, ale również komfort psychiczny dotyczący wydajności nowego środowiska po przejściu w fazę produkcyjną. Jednak każda aplikacja, a co za tym idzie strategii migracja, są inne. Nie da się więc stworzyć dokładnej instrukcji migracji, która sprawdzi się w każdej firmie.