Udostępnij przez


Wdrażanie rozwiązań natywnych dla chmury

Teraz wdróż rozwiązanie w środowisku platformy Azure na żywo zgodnie z planowaną strategią. Ta faza obejmuje końcowe przygotowania, wykonywanie wdrożenia oraz weryfikację i obsługę po wdrożeniu.

Przygotowywanie uczestników projektu na potrzeby wdrożeń natywnych dla chmury

  1. Ogłaszanie harmonogramu wdrożenia i oczekiwanego wpływu. Przed rozpoczęciem wdrażania produkcyjnego przekaż plan i wartość wszystkim odpowiednim uczestnikom projektu. Ogłaszanie harmonogramu wdrożenia i oczekiwanych efektów użytkownika. Na przykład w przypadku nowych funkcji zanotuj wszelkie przestój lub zmiany widoczne dla użytkownika z wyprzedzeniem. Uczestnicy projektu mogą identyfikować konflikty z wydarzeniami biznesowymi lub zgłaszać obawy dotyczące czasu. Podaj kanał opinii i potwierdź, że okno wdrażania jest zgodne z priorytetami operacyjnymi. Dostosuj harmonogram, jeśli to konieczne, aby uniknąć zakłóceń.

  2. Powiadamianie zespołów pomocy technicznej i grup, których dotyczy problem. Upewnij się, że zespoły pomocy technicznej są w gotowości i świadome tego, co jest wydawane, aby mogły rozwiązywać problemy lub odpowiadać na zapytania użytkowników. Jeśli wdrożenie może mieć wpływ na użytkowników końcowych lub inne systemy, należy również powiadomić te grupy.

  3. Ustaw oczekiwania dotyczące funkcjonalności w oknie wdrażania. Okno wdrażania może obejmować ograniczone funkcje lub tymczasowe opóźnienia. Poinformuj uczestników projektu o tych warunkach, aby zapobiec nieporozumieniu i zapewnić ciągłość działalności biznesowej. Uwzględnij procedury rezerwowe lub obejścia, jeśli ma to zastosowanie.

  4. Przeprowadź przegląd gotowości przed wdrożeniem. Przegląd gotowości potwierdza, że wszystkie zespoły rozumieją swoje role i mają niezbędny dostęp. Zorganizuj spotkanie z przedstawicielami każdego zespołu pomocy technicznej, aby przejrzeć plan wdrożenia, kryteria sukcesu i kryteria wycofania. Sprawdź, czy zespoły pomocy technicznej mają skonfigurowane odpowiednie narzędzia dostępu do systemu i monitorowania. To przygotowanie zapewnia skoordynowaną reakcję na wszelkie problemy występujące podczas migracji.

Wykonywanie wdrożeń natywnych dla chmury

Kroki wdrażania różnią się nieznacznie w zależności od tego, czy jest to nowe autonomiczne obciążenie, czy aktualizacja funkcji do istniejącego systemu:

Wdrażanie nowych obciążeń natywnych dla chmury

  1. Tworzenie środowiska produkcyjnego. Użyj potoku CI/CD, aby wdrożyć potok wdrażania produkcyjnego, korzystając z tej samej konfiguracji przetestowanej na etapie staging. Użyj tych samych artefaktów kompilacji, szablonów IaC i skryptów wdrażania, które przeszły walidację w środowisku przejściowym. Ponieważ wdrażasz w osobnym środowisku, utwórz wszystkie niezbędne zasoby platformy Azure za pośrednictwem szablonów IaC, a następnie wdróż kod aplikacji lub artefakty.

  2. Test dymny Po wdrożeniu przeprowadź testy dymne w środowisku produkcyjnym (podstawowe testy), aby upewnić się, że wszystkie usługi są uruchomione, a podstawowe funkcje działają prawidłowo. Sprawdź, czy są uruchomione kluczowe usługi, bazy danych są dostępne, a aplikacja odpowiada (naciśnij punkt końcowy sprawdzania kondycji lub kilka kluczowych stron). Sprawdź usługę Azure Service Health pod kątem problemów z platformą w twoim regionie, które mogą mieć wpływ na składniki. Ten test jest sprawdzaniem, zanim wszyscy użytkownicy zostaną przekierowani do systemu.

  3. Wdrożenie w małej grupie użytkowników. Wdrożenie progresywne jest implementowane przez uwidacznianie nowego systemu małym zestawom użytkowników. To wdrożenie można zrealizować, udostępniając funkcję tylko użytkownikom wewnętrznym lub kierując niewielki procent ruchu na żywo do nowego wdrożenia. Uważnie monitoruj wszelkie błędy lub problemy z wydajnością. Użyj usługi Application Insights i niestandardowych pulpitów nawigacyjnych, aby obserwować współczynniki błędów, czasy odpowiedzi i wykorzystanie zasobów w czasie rzeczywistym. Zbieraj również jakościowe opinie od wszystkich użytkowników pilotażowych w wersji kanarowej.

  4. Monitoruj i stopniowo rozwijaj. Stopniowe wdrażanie zmniejsza ryzyko i umożliwia walidację w świecie rzeczywistym przed pełnym wydaniem. Wydaj aplikację do małej grupy użytkowników kanarkowych. Użyj modułu równoważenia obciążenia, takiego jak Azure Front Door lub Traffic Manager, aby skierować podzbiór ruchu do nowego wdrożenia. Zbieranie opinii i monitorowanie wydajności. Skalowanie w górę lub otwieranie dostępu do wszystkich użytkowników po pomyślnej weryfikacji.

Wdrażanie nowych funkcji natywnych dla chmury w istniejącym obciążeniu

Podczas wdrażania nowej funkcji w istniejącym obciążeniu natywnym dla chmury wybierz strategię wdrażania zgodną z tolerancją ryzyka, ograniczeniami infrastruktury i celami wdrażania. Dwa typowe podejścia to wdrożenie w miejscu i wdrożenie niebiesko-zielone (środowisko równoległe).

Lokalne wdrożenie służy do stopniowego wdrażania w tym samym środowisku

Użyj wdrożenia w miejscu podczas dodawania nowej funkcji do istniejącego zadania lub procesu bez tworzenia lub konfiguracji oddzielnego środowiska. Takie podejście umożliwia bezpieczne, przyrostowe wdrożenie z minimalnym obciążeniem infrastruktury.

  1. Włączanie funkcji dla małego segmentu użytkowników Wdróż nową funkcję w istniejącym środowisku przy użyciu flag funkcji lub przełączeń konfiguracji. Zacznij od włączenia funkcji dla ograniczonej grupy odbiorców, takiej jak użytkownicy wewnętrzni, testerzy beta lub niewielki procent ruchu na żywo. Takie podejście umożliwia walidację w świecie rzeczywistym przy zachowaniu możliwości szybkiego wyłączania funkcji, jeśli wystąpią problemy. Upewnij się, że interakcje użytkownika są oznaczane, aby odróżnić użytkowników lub sesje z włączoną funkcją od tych z wyłączoną, umożliwiając zestawienie porównawcze.

  2. Test dymny. Po wdrożeniu przeprowadź testy dymne w środowisku produkcyjnym (podstawowe testy), aby upewnić się, że wszystkie usługi są uruchomione, a podstawowe funkcje działają prawidłowo. Sprawdź, czy są uruchomione kluczowe usługi, bazy danych są dostępne, a aplikacja odpowiada (naciśnij punkt końcowy sprawdzania kondycji lub kilka kluczowych stron).

  3. Monitoruj i stopniowo rozwijaj. Stale monitoruj kondycję aplikacji, wydajność i współczynniki błędów przy użyciu narzędzi, takich jak Application Insights lub Azure Monitor. Porównaj metryki między użytkownikami z włączoną funkcją i bez tej funkcji, aby wykrywać anomalie. Jeśli nie zostaną wykryte żadne problemy, stopniowo zwiększ procent wdrożenia flagi funkcji lub rozwiń grupę użytkowników. Powtarzaj monitorowanie po każdym inkrementacji. Po pełnym wdrożeniu wykonaj ostateczną walidację, aby zapewnić spójne zachowanie we wszystkich wystąpieniach i segmentach użytkowników.

Wdrażanie nowych funkcji w środowisku równoległym

W przypadku wprowadzenia nowej funkcji do istniejącego obciążenia użyj wdrożenia blue-green, wdrażając ją w równoległym środowisku produkcyjnym. Takie podejście minimalizuje ryzyko, zezwalając na pełną walidację przed przełączeniem ruchu użytkowników do nowej wersji.

  1. Utwórz środowisko równoległe (zielony). Użyj potoku CI/CD, aby wdrożyć potok wdrażania produkcyjnego, korzystając z tej samej konfiguracji przetestowanej na etapie staging. Użyj tych samych artefaktów kompilacji, szablonów IaC i skryptów wdrażania, które przeszły walidację w środowisku przejściowym. Ponieważ wdrażasz w osobnym środowisku, utwórz wszystkie niezbędne zasoby platformy Azure za pośrednictwem szablonów IaC, a następnie wdróż kod aplikacji lub artefakty.

  2. Przeprowadź test dymu w środowisku równoległym. Po wdrożeniu przeprowadź testy dymne w środowisku produkcyjnym (podstawowe testy), aby upewnić się, że wszystkie usługi są uruchomione, a podstawowe funkcje działają prawidłowo. Sprawdź, czy są uruchomione kluczowe usługi, bazy danych są dostępne, a aplikacja odpowiada (naciśnij punkt końcowy sprawdzania kondycji lub kilka kluczowych stron). Sprawdź usługę Azure Service Health pod kątem problemów z platformą w twoim regionie, które mogą mieć wpływ na składniki. Ten test dymny jest przeprowadzany przed skierowaniem użytkowników do systemu.

  3. Kierować część ruchu do środowiska równoległego. Stopniowe wdrażanie zmniejsza ryzyko i umożliwia walidację w świecie rzeczywistym przed pełnym wydaniem. Wydaj aplikację do małej grupy użytkowników kanarkowych. Użyj modułu równoważenia obciążenia, takiego jak Azure Front Door lub Traffic Manager, aby skierować podzbiór ruchu do nowego wdrożenia. Alternatywnie uwidacznia nową funkcję tylko dla określonego segmentu użytkownika za pomocą reguł routingu lub flag funkcji. Monitorowanie wydajności, współczynników błędów i środowiska użytkownika przy użyciu usługi Application Insights lub usługi Azure Monitor. Porównaj ruch użytkowników między niebieskimi i zielonymi środowiskami, aby wykryć regresje lub anomalie.

  4. Monitoruj i stopniowo rozwijaj. Jeśli nowa wersja działa dobrze, stopniowo zwiększ ilość przekierowywanego ruchu, aż obsłuży 100% ruchu. Promuj "zielone" wdrożenie jako główne. Stare wdrożenie "niebieskie" jest zachowywane bez zmian w trakcie tego procesu, co ułatwia wycofywanie. Jeśli zostanie wykryty poważny problem, możesz natychmiast przełączyć cały ruch sieciowy z powrotem do stabilnej wersji.

  5. Finalizuj cutover. Po pomyślnej weryfikacji należy skierować wszystkich użytkowników do nowego systemu lub formalnie ogłosić go na żywo, jeśli został ukryty. Stare środowisko, jeśli istnieje dla zaktualizowanej funkcji, można teraz rozważyć likwidację po bezpiecznym okresie weryfikacji.

Weryfikowanie powodzenia wdrożenia

Po wdrożeniu nowego obciążenia lub funkcji należy upewnić się, że system działa prawidłowo, zarówno technicznie, jak i z perspektywy użytkownika.

  1. Zweryfikuj krytyczne ścieżki użytkowników. Przejdź poza testy dymne, aby sprawdzić, czy wszystkie kluczowe przepływy użytkowników działają zgodnie z oczekiwaniami w środowisku produkcyjnym. Użyj automatycznych zestawów testów lub ręcznej kontroli jakości, aby zweryfikować rzeczywiste scenariusze. Skoncentruj się na ścieżkach o wysokiej wartości, takich jak uwierzytelnianie, transakcje i przepływy pracy danych. Ten test ma zastosowanie zarówno, gdy wdrożenie wprowadziło nowy system, jak i gdy ulepszyło istniejący.

  2. Weryfikowanie procesów i integracji w tle. Sprawdź, czy procesy w tle, integracje i zaplanowane zadania działają poprawnie. Sprawdź dzienniki, stany zadań i punkty końcowe integracji, aby upewnić się, że działają zgodnie z oczekiwaniami. Ten krok uniemożliwia dyskretne błędy, które mogą nie być natychmiast widoczne dla użytkowników.

  3. Przejrzyj pulpity nawigacyjne do monitorowania kondycji systemu. Użyj usług Azure Monitor i Application Insights, aby sprawdzić dzienniki i metryki. Poszukaj anomalii w współczynnikach błędów, opóźnieniach, użyciu procesora CPU/pamięci i przepływności. Upewnij się, że dane monitorowania przepływają prawidłowo i że żadne dane nie są brakujące ani nie są nieprawidłowo przekierowywane.

  4. Sprawdź alerty pod kątem nieoczekiwanych wyzwalaczy. Przejrzyj skonfigurowane alerty dotyczące współczynników awarii, opóźnień lub użycia zasobów. Upewnij się, że żadne alerty nie są nieoczekiwanie wyzwalane. Jeśli alerty są wyzwalane, zbadaj główne przyczyny i oceń, czy wskazują problem związany z wdrożeniem.

  5. Przeprowadzaj ewidencjonacje uczestników projektu i użytkowników. Warto również szybko zaewidencjonować kilku użytkowników końcowych lub uczestników projektu po wdrożeniu, aby uzyskać potwierdzenie, że rzeczy działają z perspektywy użytkownika.

  6. Zadeklaruj zakończenie wdrażania dopiero po pełnej weryfikacji. Należy uznać wdrożenie za ukończone dopiero po pomyślnym wykonaniu wszystkich kroków weryfikacji i spełnieniu kryteriów akceptacji przez system. W przypadku znalezienia problemów należy natychmiast rozwiązać problemy krytyczne. Rejestrowanie drobnych problemów w celu rozwiązania w przyszłych aktualizacjach.

Obsługa obciążeń podczas stabilizacji

  1. Ustanów zwiększone monitorowanie i poziom pomocy technicznej. Wdrażanie w środowisku produkcyjnym nie jest końcem podróży. W godzinach i dniach natychmiast po wdrożeniu zwiększ czujność monitorowania i wsparcia, podczas gdy system rozpędza się pod rzeczywistym obciążeniem. Zaleca się posiadanie zespołu programistycznego w gotowości obok zespołu operacyjnego, aby szybko zbadać i rozwiązać wszelkie problemy, ponieważ najlepiej znają nowe zmiany.

  2. Śledzenie metryk systemowych i opinii użytkowników w sposób ciągły. Traktuj pierwszy tydzień lub dwa jako okres stabilizacji. Monitoruj metryki, takie jak procesor CPU, pamięć, współczynniki błędów i czasy odpowiedzi, przy użyciu usług Azure Monitor i Application Insights. Zbieraj opinie użytkowników za pośrednictwem kanałów pomocy technicznej lub bezpośredniego wsparcia. Pomaga to wykrywać problemy, które mogą zostać pominięte w zautomatyzowanych systemach.

  3. Dostosuj konfiguracje na podstawie obserwowanego zachowania. Dostosuj konfiguracje w razie potrzeby. Na przykład zwiększ skalowanie poziome, jeśli użycie jest wyższe niż oczekiwano. Jeśli dzienniki są zbyt gadatliwe lub zbyt skąpe, zmodyfikuj poziomy rejestrowania. Te zmiany pomagają zachować wydajność i zauważalność podczas szczytowego użycia. Upewnij się, że wszelkie problemy wykryte w tej fazie zostały rozwiązane lub wprowadzone do systemu śledzenia w celu uzyskania przyszłych ulepszeń.

  4. Rejestruj i klasyfikuj wszystkie problemy wykryte podczas stabilizacji. Ten aktywny etap wsparcia przechwytuje kwestie, które ujawniają się tylko w warunkach produkcyjnych i zapewnia, że obciążenie rzeczywiście spełnia swoje cele. Po upływie tego okresu stabilizacji i pewności co do wydajności systemu można przejść do normalnych procedur operacyjnych i monitorowania.

  5. Zdefiniuj kryteria zakończenia stabilizacji. Ustaw jasne progi wydajności systemu, współczynniki błędów i zadowolenie użytkowników. Systematyczne spełnienie tych kryteriów przez system umożliwia przejście do standardowych procedur operacyjnych i monitorowania. Te kryteria zapewniają płynne przekazanie i zapobiegają przedwczesnemu zamknięciu fazy wsparcia.

Następny krok