Udostępnij przez


Planowanie modernizacji chmury

Właściwe planowanie i nadzór mają kluczowe znaczenie dla modernizacji. Na tym etapie decydujesz, które podejście do modernizacji ma być stosowane i jak to zrobić. Przemyślane planowanie zmniejsza prawdopodobieństwo przekroczenia budżetu, pełzania zakresu lub przerw w działaniu usługi podczas wykonywania.

Wybieranie strategii modernizacji

Modernizacja obciążenia oznacza zaktualizowanie go w celu lepszego dopasowania do bieżących celów biznesowych, standardów technicznych i możliwości chmury. Trzy podstawowe strategie (replatform, refaktoryzacja i zmiana architektury) istnieją w kontinuum złożoności i wartości. Większość wysiłków związanych z modernizacją korzysta z kombinacji tych metod.

Kluczem jest dopasowanie strategii do konkretnych potrzeb każdego składnika, biorąc pod uwagę cele, oś czasu i dostępne zasoby. Unikaj pokusy nadmiernej modernizacji. Chociaż nowe technologie są ekscytujące, każda decyzja powinna być zakorzeniona w wartości biznesowej.

Strategia modernizacji Definition Kiedy należy używać Pros Cons
Przeplatformuj ponownie Przenieś aplikacje na platformy w chmurze z minimalnymi zmianami kodu (IaaS do usługi PaaS). Szybkie zwycięstwa z minimalnymi zakłóceniami wymaganymi. Bieżący kod działa, ale obciążenie operacjami jest wysokie. Szybka implementacja. Zmniejsza nakład pracy konserwacyjnych. Zwiększa niezawodność dzięki lepszej infrastrukturze. Ograniczone zyski z możliwości. Aplikacja podstawowa pozostaje niezmieniona.
Refactor Zmodyfikuj istniejący kod, aby poprawić strukturę, wydajność i optymalizację chmury przy zachowaniu funkcjonalności. Dług techniczny powoduje problemy lub kod nie jest zoptymalizowany pod kątem chmury. Zwiększa łatwość utrzymania, wydajność i bezpieczeństwo. Umożliwia łatwiejsze ulepszenia w przyszłości. Wymaga znacznego nakładu pracy deweloperów i testowania. Brak natychmiastowych nowych funkcji dla użytkowników.
Rearchitect Przeprojektuj architekturę aplikacji przy użyciu wzorców natywnych dla chmury (mikrousług, bezserwerowych, sterowanych zdarzeniami). Bieżąca architektura ogranicza wzrost lub optymalizację chmury. Rozwiązuje podstawowe problemy ze skalowalnością. Umożliwia zaawansowane usługi w chmurze. Wyznacza podstawę dla długoterminowych innowacji. Najbardziej złożone i czasochłonne. Wysoki koszt z góry i ryzyko. Wymaga rozbudowanego testowania i operacji równoległych.

Planowanie modernizacji w fazach

Próba modernizacji całego złożonego obciążenia (lub wielu) za jednym razem jest ryzykowna. Podział nakładu pracy na fazy logiczne. Etapy umożliwiają dostarczanie wartości przyrostowej, zmniejszanie ryzyka poprzez zwalczanie możliwych do zarządzania fragmentów i dostosowywanie kursu między fazami w oparciu o to, czego się uczysz.

  1. Podziel modernizacje na fazy logiczne. Określ, jak podzielić pracę. Nie ma jednej "właściwej drogi". Wybierz podział, który ma sens dla twojej architektury i struktury zespołu. Celem jest to, że każda faza jest wystarczająco mała, aby wykonać i przetestować bez przytłaczającej złożoności, ale wystarczająco znacząca, aby zapewnić wartość. Typowe sposoby podziału faz:

    Metoda dzielenia Description Example
    Według składnika lub warstwy Oddzielne fazy oparte na warstwach obciążenia lub granicach obciążenia Faza 1. Migracja bazy danych, Faza 2: Refaktoryzacja aplikacji, Faza 3: Modernizacja interfejsu użytkownika
    Według priorytetu i złożoności Organizuj pracę od zmian o niskim ryzyku do zmian o wysokim ryzyku Faza 1. Usługi niekrytyczne, Faza 2: Podstawowa logika biznesowa, Faza 3: Funkcje dostępne dla klientów
    Według funkcji biznesowej Fazy struktury wokół granic aplikacji lub funkcjonalności Faza 1. Obciążenie zarządzania użytkownikami, Faza 2: Przetwarzanie płatności, Faza 3: Usługi raportowania
  2. Zacznij od zmian o niskim ryzyku i wysokiej wartości. Dla fazy 1 wybierz coś, co jest osiągalne i zapewnia namacalne zwycięstwo, ale nie zagraża firmie, jeśli wystąpią problemy. Na przykład, zmodernizuj najpierw usługę backendową lub narzędzie wewnętrzne, a nie witrynę skierowaną do klienta. Celem jest szybkie ukończenie pierwszej fazy (miesiąc lub dwa) jako punkt dowodowy. Wczesny sukces buduje zaufanie zespołu i wsparcie uczestników projektu dla kolejnych faz.

  3. Sekwencja pozostałych faz według wartości i zależności. Po pierwszej fazie zaplanuj kolejność kolejnych faz na podstawie wartości biznesowej i zależności technicznych. Utwórz plan działania, w którym każda faza ma zdefiniowany zakres i zapewnia, że krytyczne składniki mają już zmodernizowane lub zgodne elementy pomocnicze.

    • Zajmij się delikatnymi obszarami. Jeśli obciążenie jest kruche w bieżącym stanie, może być nawet konieczne wstępne "Faza 0", aby ustabilizować je (zastosować pilne poprawki w starym środowisku), aby zapewnić bezpieczeństwo modernizacji w fazie 1.
    • Najpierw spełnij wymagania wstępne: Jeśli modernizacja obciążenia B zależy od zmodernizowanego obciążenia A (lub co najmniej stabilnego), najpierw wykonaj obciążenie A.
    • Rozważ wartość biznesową a ryzyko: Możesz zdecydować się na alternatywę, wykonując wysoką wartość, ale bardziej ryzykowną część w jednej fazie, a następnie niższy poziom ryzyka w następnej kolejności, aby zrównoważyć obciążenie zespołu i ryzyko dla firmy.
  4. Zdefiniuj kryteria powodzenia dla każdej fazy. Dla każdej fazy zdecyduj, kiedy zostanie ukończona i zakończona pomyślnie. Jasne kryteria zakończenia uniemożliwiają rozrastanie się zakresu w danej fazie. Kryteria powodzenia mogą obejmować:

    Typ kryteriów powodzenia Examples
    Cele techniczne • Usługa X działa w usłudze Azure App Service i obsługuje 20% większe obciążenie
    • Baza danych Y migruje do usługi Azure SQL z zerową utratą danych i wydajnością zbliżoną do 10% od poprzedniego poziomu odniesienia.
    Bramy jakości • Brak otwartych usterek sev-1
    • Wszystkie testy automatyczne kończą się powodzeniem
    • Skanowanie zabezpieczeń pokazuje zero krytycznych luk w zabezpieczeniach
    Ograniczenia dotyczące chronometrażu i budżetu • Ukończenie w ciągu trzech miesięcy i w ciągu 5% budżetu
    • Wdrażanie podczas zaplanowanych okienek konserwacyjnych
  5. Dostosowywanie planów na podstawie wyników. Po zakończeniu fazy przejrzyj wyniki i wnioski. Może się okazać, że niektóre założenia były nietrafione lub że pewne zadania były łatwiejsze albo trudniejsze, niż się spodziewano. Odpowiednio dostosuj plan dla nadchodzących faz, takich jak dodawanie, łączenie lub przyporządkowanie priorytetów. Podejście etapowe ma być elastyczne. Ważne jest, aby nie próbować robić wszystkiego jednocześnie.

Plan zarządzania modernizacją

Modernizacja często wprowadza znaczące zmiany w krytycznych obciążeniach, dlatego konieczne jest silne zarządzanie ryzykiem. Zarządzanie modernizacją obejmuje procesy zarządzania zmianami, zamrażanie oraz kontrolę zakresu.

  1. Ustanów formalny przepływ pracy zatwierdzania zmian. Zdefiniuj ustrukturyzowany proces zatwierdzania dla wszystkich zmian związanych z modernizacją. Integracja z istniejącymi Radami Doradczymi ds. Zmian (CAB) lub utwórz dedykowaną komisję ds. przeglądu modernizacji. Przypisz uprawnienia do zatwierdzania na podstawie kategorii zmian oraz udokumentuj pełny przepływ pracy w planie projektu. Aby uzyskać więcej informacji, zobacz Zarządzanie zmianami.

  2. Blokowanie zmian w razie potrzeby. Bezpośrednio przed i podczas głównych wydarzeń związanych z wdrażaniem wstrzymać inne zmiany w tych obciążeniach roboczych. Zamrożenie zmian oznacza, że w tych obciążeniach nie są wykonywane żadne inne niepowiązane zmiany w okresie poprzedzającym i podczas wdrażania. Stabilizuje środowisko, aby uniknąć celu będącego w ciągłym ruchu. Przekaż okno zamrożenia wszystkim odpowiednim zespołom.

  3. Unikaj rozszerzania się zakresu. Rozciąganie zakresu jest głównym wyzwaniem w modernizacji. Wymagaj wszelkich proponowanych zmian w uzgodnionym zakresie modernizacji, aby przejść przez krok oceny i zatwierdzenia. Większość żądań powinna zostać odroczona, chyba że mają kluczowe znaczenie. Sformalizuj "nie, nie teraz" do dodatkowej pracy z procesem. Aby po zakończeniu bieżącej modernizacji móc zasilić przyszłe projekty innowacyjne, zachowaj listę pomysłów, które się pojawiają. Uczestnicy projektu powinni wiedzieć, że ich pomysł nie zostanie utracony.

Definiowanie strategii wdrażania

Kluczową decyzją dotyczącą wdrożenia jest sposób wprowadzenia zmodernizowanych składników do środowiska produkcyjnego. Istnieją dwie główne strategie. We wdrożeniu w miejscu uaktualniasz istniejącą konfigurację (na przykład remont domu, gdy mieszkasz w nim). W ramach wdrożenia równoległego tworzysz nową konfigurację obok (np. konstruowanie nowego domu, a następnie przenoszenie się). Wybierz strategię pasującą do poziomu zmiany i tolerancji ryzyka dla każdej fazy lub obciążenia. Często każda faza modernizacji może używać innej strategii. Na przykład możesz wybrać opcję na miejscu dla fazy 1 (jeśli jest to niewielka zmiana) i równoległy tryb dla fazy 2 (jeśli dotyczy to gruntownej przebudowy bazy danych).

  1. Wdrożenie w miejscu służy do wprowadzania zmian o niskim ryzyku, odwracalnych. Wdrożenie w miejscu wprowadza zmiany bezpośrednio w bieżącym środowisku produkcyjnym, być może w oknie konserwacyjnym. Ta strategia minimalizuje nakłady pracy związane z infrastrukturą, ale zwiększa ryzyko przestoju. Proces wdrażania na miejscu należy używać tylko wtedy, gdy zmiany są małe, izolowane i łatwo odwracalne. Przykłady obejmują drobne aktualizacje kodu lub zmiany schematu, które można szybko wycofać przy użyciu kontroli źródła lub kopii zapasowych.

  2. Wdrażanie równoległe służy do wprowadzania złożonych lub wysokiego ryzyka zmian. W tym modelu skonfigurujesz nowe środowisko dla zmodernizowanego obciążenia, gdy stare obciążenie nadal działa. Dane są synchronizowane (za pośrednictwem procesów replikacji lub migracji), aby były gotowe do przejścia od starego do nowego środowiska. Należy używać w przypadku złożonych lub wysokiego ryzyka zmian, w których przestój musi być minimalny. Jeśli przeprowadzasz dużą migrację bazy danych lub przeprojektowanie architektury, które obejmuje nową infrastrukturę, działanie równoległe jest zwykle najlepszym rozwiązaniem. Ponadto jeśli obciążenie ma krytyczne znaczenie i nie może mieć więcej niż kilku minut przestojów, konieczne jest równoległe (z replikacją i szybkim przejściem jednorazowym).

    Strategy Description Kiedy należy używać Pros Cons
    Wdrożenie w miejscu Wdrażanie zmian bezpośrednio w bieżącym środowisku produkcyjnym Małe, odwracalne zmiany z akceptowalnymi oknami obsługi Brak zduplikowanej infrastruktury, szybsze wdrażanie Większe ryzyko, wymaga przestoju, wolniejszego wycofywania
    Wdrażanie równoległe Uruchamianie nowego środowiska obok istniejącego obciążenia podczas przejścia Złożone zmiany, obciążenia o krytycznym znaczeniu wymagające minimalnego przestoju Bezpieczniejsze wdrożenie, niemal zerowy przestój, natychmiastowy powrót Koszty zduplikowanej infrastruktury, złożona synchronizacja danych, nakład pracy związany z likwidacją

Planowanie ograniczania ryzyka modernizacji

Nawet w przypadku najlepszego planowania i testowania, nie każda zmiana idzie idealnie. Modernizacja często wiąże się ze złożonymi zmianami i zawsze istnieje ryzyko, że wdrożenie może spowodować problem lub coś zachowuje się nieoczekiwanie w środowisku produkcyjnym. Znakiem dobrze przygotowanego zespołu jest solidny plan wycofań dla każdej zmiany i fazy.

  1. Używaj technik wdrażania progresywnego. Jeśli platforma zezwala, przeprowadź wydania kanaryjne lub stopniowe przekierowywanie ruchu do zmodernizowanych części aplikacji. Na przykład wdróż nową wersję obok starej i początkowo wysyłaj do niej tylko 5% użytkowników podczas monitorowania. Takie podejście może przechwytywać problemy, podczas gdy większość użytkowników na nie nie odczuwa wpływu. Jeśli metryki wyglądają dobrze, zwiększ do 50%, a następnie 100%. Jeśli coś zacznie zawodzić, szybko wróć do poprzedniego stanu (0% zmian).

  2. Utwórz procedury wycofywania dla każdej istotnej zmiany. Dla każdej głównej zmiany lub fazy dostarczenia napisz procedurę wycofywania etap po etapie. Jasno podaj każdą akcję, aby cofnąć zmianę, która jest odpowiedzialna za każdy krok i jak długo to potrwa. Po wycofaniu uwzględnij, jakie kontrole potwierdzają, że wszystko wróciło do normy.

  3. W miarę możliwości automatyzuj wycofywanie zmian. Automatyczne wycofywanie skryptów lub infrastruktury jako kodu może zapewnić szybkie i niezawodne odzyskiwanie. Użyj narzędzi infrastruktury jako kodu (Terraform, szablon ARM, Bicep), aby ponownie wdrożyć znane dobre stany. Wdrożenia niebiesko-zielone (blue/green) lub kanarkowe (canary) z natury umożliwiają powrót do poprzedniej wersji, jeśli jest to konieczne. Przetestuj te mechanizmy w środowisku testowym. Celem jest przekształcenie pracy manualnej (realizowanej o 3:00 podczas zdarzenia) w akcję skryptową. Zapisz kroki wycofywania wraz z krokami wdrażania, aby ułatwić wycofanie.

  4. Utrzymuj wsparcie w gotowości podczas wdrażania i po jego zakończeniu. Zaplanuj wdrożenia w okresach niskiego natężenia ruchu (weekendy lub noc), jeśli to możliwe, ale upewnij się, że odpowiedni eksperci są dostępni. Nie rób tego, gdy kluczowi członkowie zespołu są na wakacjach. Zaraz po wdrożeniu powinien być zapewniony przedłużony okres wsparcia dodatkowego (hypercare) z deweloperami i zespołem operacyjnym w gotowości w celu szybkiego wychwycenia ewentualnych problemów. Dla głównych wdrożeń niektóre organizacje stosują intensywne monitorowanie kryzysowe przez 24-48 godzin po wdrożeniu.

Bezpieczne zatwierdzenie uczestników projektu

Do tego momentu skupiliśmy się na planowaniu technicznym. Równie ważne jest uzyskanie wsparcia od interesariuszy, zarówno kierownictwa biznesowego, jak i technicznego. Modernizacja często wymaga znacznych inwestycji, więc musisz przedstawić przekonujący przypadek i utrzymać zaangażowanie uczestników projektu.

  1. Dopasuj propozycję wartości do poszczególnych odbiorców. Różne osoby biorące udział w projekcie dbają o różne wyniki. Dostosuj obsługę komunikatów:

    • Zespoły techniczne ustalają priorytety wydajności operacyjnej: zmniejszenie konserwacji, skrócenie czasu pracy i zmniejszenie liczby eskalacji.
    • Liderzy biznesowi koncentrują się na wynikach: szybszy czas na rynku, ulepszone środowisko klienta i oszczędności kosztów.
  2. Dokumentowanie planu strukturalnego z kamieniami milowymi. Interesariusze czują się bardziej komfortowo, jeśli zobaczą jasny plan działania. Przedstawić planowane fazy, zgodnie z wcześniejszymi decyzjami i co należy osiągnąć, z przybliżoną osią czasu. Podkreślenie wczesnych zwycięstw, takich jak "W ciągu 6 tygodni, chcemy zmodernizować składnik X i poprawić jego wydajność do 20%."

  3. Kwantyfikuje wartość modernizacji. Przygotuj metryki przed i po oraz docelowe ulepszenia. Przykłady metryk i typowych zakresów ulepszeń (na podstawie branżowych testów porównawczych) to:

    Category Przykładowe metryki Typowy zakres wartości
    Obniżenie kosztów Infrastruktura, konserwacja, licencjonowanie 20–40% roczne oszczędności
    Wzrost produktywności Częstotliwość wdrażania, czas rozwiązywania 50–80 ulepszenia%
    Ograniczenie ryzyka Unikanie przestojów, zdarzeń zabezpieczeń $100K-$1M+ oszczędności kosztów
    Revenue Krótszy czas wprowadzenia na rynek, utrzymanie klientów 10–25% przyspieszanie przychodów
  4. Rozwiązywanie problemów z ryzykiem projektu. Zidentyfikuj potencjalne wyzwania i pokazuj gotowość za pomocą określonych strategii ograniczania ryzyka. Typowe zagrożenia obejmują replikację danych, obniżenie wydajności i problemy z integracją. Przedstawia rozwiązania, takie jak zautomatyzowane procedury wycofywania, kompleksowe protokoły testowania i dostępność konsultacji ekspertów. Jasna dyskusja na temat ryzyka buduje zaufanie interesariuszy do przywództwa i dokładności planowania projektu.

  5. Zachowaj regularny cykl komunikacji. Zgłoś postęp względem zdefiniowanych kryteriów powodzenia, wyróżnij ukończone elementy dostarczane i przekaż nadchodzące kamienie milowe. Aktywnie żądaj opinii i rozwiąż problemy dotyczące utrzymania pomocy technicznej w całym procesie modernizacji.

Następny krok