Co to jest azure chaos studio (wersja zapoznawcza)?

Azure Chaos Studio to usługa zarządzana, która poprawia odporność przez wstrzykiwanie błędów do aplikacji platformy Azure. Uruchamianie kontrolowanych eksperymentów iniekcji błędów w aplikacjach ( rozwiązania znanego jako inżynieria chaosu) pomaga mierzyć, rozumieć i poprawiać odporność na rzeczywiste zdarzenia, takie jak awarie regionów lub awarie aplikacji powodujące wysokie wykorzystanie procesora CPU na maszynie wirtualnej.

Dlaczego warto używać programu Chaos Studio?

Niezależnie od tego, czy opracowujesz nową aplikację, która będzie hostowana na platformie Azure, migruje istniejącą aplikację na platformę Azure, czy też pracujesz z aplikacją, która już działa na platformie Azure, ważne jest zweryfikowanie i zwiększenie odporności aplikacji. Odporność to zdolność systemu do obsługi i odzyskiwania po zakłóceniach. Zakłócenia w dostępności aplikacji mogą powodować błędy i błędy dla użytkowników, co z kolei może mieć negatywne konsekwencje dla firmy lub misji.

W przypadku uruchamiania aplikacji w chmurze unikanie tych negatywnych konsekwencji wymaga zweryfikowania, czy aplikacja skutecznie reaguje na zakłócenia, które mogą być spowodowane przez usługę, od których zależysz, zakłócenia spowodowane awarią w samej usłudze, a nawet przerwy w działaniu narzędzi i procesów reagowania na zdarzenia. Eksperymentowanie chaosu umożliwia przetestowanie, czy aplikacja hostowana w chmurze jest odporna na awarie.

Kiedy należy używać programu Chaos Studio?

Inżynieria chaosu może być używana w wielu różnych scenariuszach weryfikacji odporności. Te scenariusze obejmują cały cykl życia opracowywania i działania usługi i można je podzielić na przesunięcia w prawo, gdzie scenariusz najlepiej zweryfikować w środowisku produkcyjnym lub przedprodukcyjnym albo przesunąć w lewo, gdzie scenariusz może zostać zweryfikowany w środowisku dewelopera lub udostępnionym środowisku testowym. Zazwyczaj scenariusze przesunięcia w prawo powinny być wykonywane przy użyciu rzeczywistego ruchu klientów lub symulowanego obciążenia, natomiast scenariusze przesunięcia w lewo mogą być wykonywane bez rzeczywistego ruchu klientów. Niektóre typowe scenariusze, w których można zastosować inżynierię chaosu, to:

  • Odtworzenie zdarzenia, które miało wpływ na aplikację, w celu lepszego zrozumienia trybu awarii lub zapewnienia, że elementy napraw po zdarzeniu zapobiegną powtarzaniu się zdarzenia.
  • Uruchamianie "dni gry" — walidacja obciążenia, skalowania, wydajności i odporności usługi w ramach przygotowania do ważnego wydarzenia lub pory roku dla użytkownika.
  • Przeprowadzanie testów ciągłości działania/odzyskiwania po awarii (BCDR, business continuity/disaster recovery) w celu zapewnienia, że w razie poważnej awarii na Twoją aplikację może ona szybko odzyskać dane krytyczne, a krytyczne dane zostaną zachowane.
  • Uruchamianie testów wysokiej dostępności w celu przetestowania odporności aplikacji na określone awarie, takie jak awarie regionów, błędy konfiguracji sieci, zdarzenia wysokiego obciążenia lub problemy z hałaśliwymi sąsiadami.
  • Opracowywanie testów porównawczych wydajności aplikacji.
  • Planowanie wymagań w zakresie pojemności w środowiskach produkcyjnych.
  • Uruchamianie testów obciążeniowych lub obciążeniowych.
  • Zapewnienie, że usługi migrowane ze środowiska lokalnego lub innego środowiska chmury pozostają odporne na znane awarie.
  • Zbudowanie zaufania do usług zbudowanych na podstawie architektur natywnych dla chmury.
  • Sprawdzania, czy narzędzia witryny na żywo, dane zauważalne i procesy na miejscu działają zgodnie z oczekiwaniami w nieoczekiwanych warunkach.

W wielu z tych scenariuszy najpierw tworzysz odporność przy użyciu eksperymentów ad hoc chaosu, a następnie stale sprawdzasz, czy nowe wdrożenia nie zwężają odporności przy użyciu eksperymentów chaosu jako bramy wdrożenia w potoku ciągłej ciągłej wymiany/ciągłego wdrażania.

Jak działa program Chaos Studio?

Program Chaos Studio umożliwia organizowanie iniekcji błędów w zasobach platformy Azure w bezpieczny i kontrolowany sposób. Sednem programu Chaos Studio jest eksperyment chaosu. Eksperyment chaosu to zasób platformy Azure opisujący błędy, które należy uruchomić, oraz zasoby, względem których te błędy powinny być uruchamiane. W zależności od potrzeb błędy można zorganizować tak, aby działały równolegle lub sekwencyjnie. Program Chaos Studio obsługuje dwa typy błędów — błędy bezpośrednie dla usługi, które działają bezpośrednio względem zasobu platformy Azure bez żadnej instalacji ani instrumentacji (na przykład ponowne uruchomienie klastra usługi Azure Cache for Redis lub dodanie opóźnienia sieci do zasobników usługi AKS) oraz błędy oparte na agentach, które są uruchamiane na maszynach wirtualnych lub w zestawach skalowania maszyn wirtualnych w celu przeprowadzenia awarii gościa (na przykład stosowanie użycia pamięci wirtualnej lub zaśmiecanie procesu). Każdy błąd ma określone parametry, które można kontrolować, na przykład proces, który ma zostać zabicia, lub ilość pamięci do wygenerowania.

Podczas tworzenia eksperymentu chaosu definiuje się co najmniej jeden krok wykonywany sekwencyjnie, każdy krok zawierający co najmniej jedną gałąź, która działa równolegle w ramach kroku, oraz każdą gałąź zawierającą jedną lub więcej akcji, takich jak wstrzyknięcie błędu lub oczekiwanie przez określony czas. Na koniec organizujesz zasoby (obiekty docelowe), względem których każdy błąd będzie uruchamiany w grupach nazywanych selektorami, dzięki czemu można łatwo odwoływać się do grupy zasobów w każdej akcji.

Diagram przedstawiający układ eksperymentu chaosu.

Eksperyment chaosu to zasób platformy Azure, który znajduje się w subskrypcji i grupie zasobów. Interfejs API REST Azure Portal Chaos Studio umożliwia tworzenie, aktualizowanie, uruchamianie, anulowanie i wyświetlanie stanu eksperymentu.

Następne kroki

Rozpoczynanie tworzenia i uruchamiania eksperymentów chaosu w celu zwiększenia odporności aplikacji za pomocą programu Chaos Studio przy użyciu poniższych linków.