Niezawodność w usłudze aplikacja systemu Azure
W tym artykule opisano obsługę niezawodności w usłudze aplikacja systemu Azure, obejmującą zarówno odporność wewnątrz regionalną ze strefami dostępności, jak i informacje na temat wdrożeń w wielu regionach.
Odporność jest wspólną odpowiedzialnością między Tobą a firmą Microsoft, dlatego artykuł obejmuje również sposoby tworzenia odpornego rozwiązania spełniającego Twoje potrzeby.
aplikacja systemu Azure Service to oparta na protokole HTTP usługa do hostowania aplikacji internetowych, interfejsów API REST i zapleczy mobilnych. usługa aplikacja systemu Azure dodaje do aplikacji możliwości platformy Microsoft Azure z funkcjami zabezpieczeń, równoważenia obciążenia, skalowania automatycznego i zautomatyzowanego zarządzania. Aby dowiedzieć się, jak usługa aplikacja systemu Azure może zwiększyć niezawodność i odporność obciążenia aplikacji, zobacz Dlaczego warto używać usługi App Service?
Podczas wdrażania usługi aplikacja systemu Azure Można utworzyć wiele wystąpień planu usługi App Service, które reprezentuje procesy robocze obliczeniowe uruchamiające kod aplikacji. Mimo że platforma stara się wdrożyć wystąpienia w różnych domenach błędów, nie rozkłada ona automatycznie wystąpień w różnych strefach dostępności.
Zalecenia dotyczące wdrażania produkcyjnego
W przypadku wdrożeń produkcyjnych należy:
- Użyj planów usługi App Service w wersji Premium w wersji 3.
- Włącz nadmiarowość strefy, która wymaga, aby plan usługi App Service używał co najmniej trzech wystąpień.
- Włącz nadmiarowość strefy, która wymaga, aby plan usługi App Service używał co najmniej trzech wystąpień.
Błędy przejściowe
Błędy przejściowe są krótkie, sporadyczne błędy w składnikach. Występują one często w środowisku rozproszonym, takich jak chmura, i są one normalną częścią operacji. Poprawiają się po krótkim czasie. Ważne jest, aby aplikacje obsługiwały błędy przejściowe, zwykle ponawiając próby żądań, których dotyczy problem.
Wszystkie aplikacje hostowane w chmurze powinny postępować zgodnie ze wskazówkami dotyczącymi obsługi błędów przejściowych platformy Azure podczas komunikowania się z dowolnymi interfejsami API hostowanymi w chmurze, bazami danych i innymi składnikami. Aby dowiedzieć się więcej na temat obsługi błędów przejściowych, zobacz Zalecenia dotyczące przekazywania błędów przejściowych.
Mimo że zestawy SDK dostarczane przez firmę Microsoft zwykle obsługują błędy przejściowe, ponieważ hostujesz własne aplikacje w usłudze aplikacja systemu Azure, należy rozważyć, jak uniknąć powodowania błędów przejściowych, upewniając się, że:
Wdróż wiele wystąpień planu. usługa aplikacja systemu Azure wykonuje automatyczne aktualizacje i inne formy konserwacji na wystąpieniach planu. Jeśli wystąpienie stanie się w złej kondycji, usługa może automatycznie zastąpić to wystąpienie nowym wystąpieniem w dobrej kondycji. W trakcie procesu wymiany może wystąpić krótki okres, w którym poprzednie wystąpienie jest niedostępne, a nowe wystąpienie nie jest jeszcze gotowe do obsługi ruchu. Możesz ograniczyć wpływ tego zachowania, wdrażając wiele wystąpień planu usługi App Service.
Użyj miejsc wdrożenia. aplikacja systemu Azure Miejsca wdrożenia usługi umożliwiają wdrażanie aplikacji bez przestojów. Użyj miejsc wdrożenia, aby zminimalizować wpływ wdrożeń i zmian konfiguracji na użytkowników. Użycie miejsc wdrożenia zmniejsza również prawdopodobieństwo ponownego uruchomienia aplikacji, co powoduje błąd przejściowy.
Unikaj skalowania w górę lub w dół. Zamiast tego wybierz warstwę i rozmiar wystąpienia spełniający wymagania dotyczące wydajności w ramach typowego obciążenia. Skalowanie wystąpień tylko w poziomie w celu obsługi zmian w woluminie ruchu. Rozważ, że skalowanie w górę i w dół może spowodować ponowne uruchomienie aplikacji.
Obsługa strefy dostępności
Strefy dostępności są fizycznie oddzielnymi grupami centrów danych w każdym regionie świadczenia usługi Azure. Gdy jedna strefa ulegnie awarii, usługi mogą przejść w tryb failover do jednej z pozostałych stref.
Aby uzyskać więcej informacji na temat stref dostępności na platformie Azure, zobacz Co to są strefy dostępności?.
aplikacja systemu Azure Usługę można skonfigurować jako strefowo nadmiarową, co oznacza, że zasoby są rozmieszczone w wielu strefach dostępności. Rozłożenie na wiele stref pomaga w działaniu obciążeń produkcyjnych w celu uzyskania odporności i niezawodności. Obsługa strefy dostępności jest właściwością planu usługi App Service.
Wystąpienie rozłożone przy użyciu wdrożenia strefowo nadmiarowego jest określane wewnątrz następujących reguł, nawet gdy aplikacja jest skalowana w poziomie i w poziomie:
- Minimalna liczba wystąpień planu usługi App Service to trzy.
- Jeśli określisz pojemność większą niż trzy, a liczba wystąpień jest podzielna przez trzy, wystąpienia są rozłożone równomiernie.
- Wszystkie liczby wystąpień przekraczające 3*N są rozłożone w pozostałych strefach.
Gdy platforma App Service przydziela wystąpienia dla strefowo nadmiarowego planu usługi App Service, używa najlepszego równoważenia nakładu pracy oferowanego przez bazowe zestawy skalowania maszyn wirtualnych platformy Azure. Plan usługi App Service jest "zrównoważony", jeśli każda strefa ma taką samą liczbę maszyn wirtualnych lub +/- jedną maszynę wirtualną we wszystkich pozostałych strefach używanych przez plan usługi App Service.
W przypadku planów usługi App Service, które nie są skonfigurowane jako strefowo nadmiarowe, wystąpienia maszyn wirtualnych nie są odporne na błędy strefy dostępności. Mogą wystąpić przestoje podczas przestoju w dowolnej strefie w tym regionie.
Obsługiwane regiony
Aby skonfigurować nadmiarowość strefy, należy użyć typów planów Premium v2 lub Premium w wersji 3.
- Strefy dostępności są obsługiwane tylko w nowszych miejscach usługi App Service. Nawet jeśli używasz jednego z obsługiwanych regionów, zostanie wyświetlony błąd, jeśli strefy dostępności nie są obsługiwane dla grupy zasobów. Aby upewnić się, że obciążenia wylądowały na sygnaturze obsługującej strefy dostępności, może być konieczne utworzenie nowej grupy zasobów, planu usługi App Service i usługi App Service.
- Musisz wdrożyć co najmniej trzy wystąpienia planu.
Aby zobaczyć, które regiony obsługują strefy dostępności dla środowiska App Service Environment w wersji 3, zobacz Regiony.
Wymagania
::: zone-end
- Musisz użyć typów planów Premium w wersji 2 lub Premium w wersji 3.
- Strefy dostępności są obsługiwane tylko w nowszych miejscach usługi App Service. Nawet jeśli używasz jednego z obsługiwanych regionów, zostanie wyświetlony błąd, jeśli strefy dostępności nie są obsługiwane dla grupy zasobów. Aby upewnić się, że obciążenia wylądowały na sygnaturze obsługującej strefy dostępności, może być konieczne utworzenie nowej grupy zasobów, planu usługi App Service i usługi App Service.
- Musisz wdrożyć co najmniej trzy wystąpienia planu.
Kwestie wymagające rozważenia
Aplikacje wdrożone w ramach strefowo nadmiarowego planu usługi App Service nadal działają i obsługują ruch, nawet jeśli w regionie wystąpi awaria wielu stref. Istnieje jednak możliwość, że podczas awarii strefy dostępności nadal mogą mieć wpływ zachowania niezwiązane ze środowiskiem uruchomieniowym, takie jak skalowanie planu usługi App Service, tworzenie aplikacji, konfiguracja aplikacji i publikowanie aplikacji. Nadmiarowość strefowa dla planów usługi App Service zapewnia tylko stały czas pracy wdrożonych aplikacji.
Koszt
W przypadku korzystania z planów usługi App Service Premium w wersji 2 lub Premium w wersji 3 nie ma żadnych dodatkowych kosztów związanych z włączaniem stref dostępności, o ile masz co najmniej trzy wystąpienia w planie usługi App Service. Opłaty będą naliczane na podstawie jednostki SKU planu usługi App Service, określonej pojemności i wszelkich wystąpień skalowanych na podstawie kryteriów autoskalowania. Jeśli włączysz strefy dostępności, ale określisz pojemność mniejszą niż trzy, platforma wymusza minimalną liczbę wystąpień wynoszącą trzy i nalicza opłaty za te trzy wystąpienia.
Środowisko App Service Environment w wersji 3 ma określony model cenowy dla nadmiarowości strefy. Aby uzyskać informacje o cenach środowiska App Service Environment w wersji 3, zobacz Cennik.
Konfigurowanie obsługi strefy dostępności
Aby wdrożyć nowy strefowo nadmiarowy plan usługi aplikacja systemu Azure, wybierz opcję Strefowo nadmiarowa podczas wdrażania planu.
Aby wdrożyć nowe strefowo nadmiarowe środowisko usługi aplikacja systemu Azure, zobacz Tworzenie środowiska App Service Environment.
Nadmiarowość strefy można skonfigurować tylko podczas tworzenia nowego planu usługi App Service. Jeśli masz istniejący plan usługi App Service, który nie jest strefowo nadmiarowy, musisz zastąpić go nowym planem strefowo nadmiarowym. Nie można przekonwertować istniejącego planu usługi App Service w celu korzystania ze stref dostępności. Podobnie nie można wyłączyć nadmiarowości strefy w istniejącym planie usługi App Service.
Planowanie pojemności i zarządzanie nimi
Aby przygotować się do awarii strefy dostępności, należy nadmiernie aprowizować pojemność usługi, aby upewnić się, że rozwiązanie może tolerować utratę pojemności 1/3 i nadal działać bez obniżonej wydajności podczas awarii całego obszaru strefy. Ponieważ platforma rozprzestrzenia maszyny wirtualne w trzech strefach i musisz uwzględnić co najmniej awarię jednej strefy, pomnożyć liczbę wystąpień szczytowych obciążeń przez współczynnik stref/(strefy-1) lub 3/2. Jeśli na przykład typowe szczytowe obciążenie wymaga czterech wystąpień, należy aprowizować sześć wystąpień: (2/3 * 6 wystąpień) = 4 wystąpienia.
Routing ruchu między strefami
Podczas normalnych operacji ruch jest kierowany między wszystkimi dostępnymi wystąpieniami planu usługi App Service we wszystkich strefach dostępności.
Środowisko strefowe
Wykrywanie i reagowanie: Platforma usługi App Service jest odpowiedzialna za wykrywanie awarii w strefie dostępności i odpowiadanie. Nie musisz nic robić, aby zainicjować tryb failover strefy.
Aktywne żądania: jeśli strefa dostępności jest niedostępna, wszystkie żądania w toku połączone z wystąpieniem planu usługi App Service w strefie dostępności, które są uszkodzone, zostaną zakończone i należy ponowić próbę.
Przekierowywanie ruchu: gdy strefa jest niedostępna, usługa aplikacja systemu Azure wykrywa utracone wystąpienia z tej strefy. Automatycznie podejmuje próbę znalezienia nowych wystąpień zastępczych. Następnie rozkłada ruch między nowe wystąpienia zgodnie z potrzebami.
Jeśli skonfigurowano automatyczne skalowanie i jeśli zdecydujesz, że potrzebne jest więcej wystąpień, skalowanie automatyczne również wysyła żądanie do usługi App Service w celu dodania większej liczby wystąpień.
Uwaga
Zachowanie autoskalowania jest niezależne od zachowania platformy App Service. Specyfikacja liczby wystąpień autoskalowania nie musi być wielokrotna z trzech.
Ważne
Nie ma gwarancji, że żądania dotyczące dodatkowych wystąpień w scenariuszu strefowym kończą się powodzeniem. Wypełnienie wsteczne utraconych wystąpień odbywa się na zasadzie najlepszego nakładu pracy. Jeśli potrzebujesz gwarantowanej pojemności po utracie strefy dostępności, należy utworzyć i skonfigurować plany usługi App Service, aby uwzględnić utratę strefy. Możesz to zrobić, nadmiernie aprowizując pojemność planu usługi App Service.
Powrót po awarii
Gdy strefa dostępności zostanie odzyskana, usługa aplikacja systemu Azure automatycznie tworzy wystąpienia w odzyskanej strefie dostępności, usuwa wszystkie tymczasowe wystąpienia utworzone w innych strefach dostępności i kieruje ruch między wystąpieniami w zwykły sposób.
Testowanie pod kątem niepowodzeń strefy
platforma aplikacja systemu Azure Service zarządza routingiem ruchu, trybem failover i powrotem po awarii dla strefowo nadmiarowych planów usługi App Service. Ponieważ ta funkcja jest w pełni zarządzana, nie trzeba inicjować ani weryfikować procesów awarii strefy dostępności.
Obsługa wielu regionów
aplikacja systemu Azure Service to usługa jednoregionowa. Jeśli region stanie się niedostępny, aplikacja jest również niedostępna.
Alternatywne rozwiązania obejmujące wiele regionów
Aby upewnić się, że aplikacja staje się mniej podatna na awarię jednego regionu, należy wdrożyć aplikację w wielu regionach. W tym celu należy wykonać następujące czynności:
- Wdróż aplikację w wystąpieniach w każdym regionie.
- Konfigurowanie równoważenia obciążenia i zasad trybu failover.
- Replikuj dane między regionami, aby można było odzyskać ostatni stan aplikacji.
Na przykład architektury ilustrujące to podejście, zobacz:
- Architektura referencyjna: aplikacja internetowa o wysokiej dostępności w wielu regionach.
- Aplikacje usługi App Service w wielu regionach na potrzeby odzyskiwania po awarii
Aby skorzystać z samouczka, który tworzy aplikację z wieloma regionami, zobacz Samouczek: tworzenie aplikacji z wieloma regionami o wysokiej dostępności w usłudze aplikacja systemu Azure Service.
Przykładowe podejście ilustrujące tę architekturę można znaleźć w temacie Wdrażanie w przedsiębiorstwie o wysokiej dostępności przy użyciu środowiska App Service Environment.
Kopie zapasowe
W przypadku korzystania z warstwy Podstawowa lub nowszej możesz utworzyć kopię zapasową aplikacji usługi App Service w pliku przy użyciu funkcji tworzenia kopii zapasowej i przywracania usługi App Service. Ta funkcja jest przydatna, jeśli trudno jest ponownie wdrożyć kod lub jeśli stan jest przechowywany na dysku. Jednak w przypadku większości rozwiązań nie należy polegać na kopiach zapasowych usługi App Service i zamiast tego należy użyć innych metod opisanych w tym artykule w celu obsługi wymagań dotyczących odporności.
Umowa dotycząca poziomu usług (SLA)
Umowa dotycząca poziomu usług (SLA) dla usługi aplikacja systemu Azure opisuje oczekiwaną dostępność usługi. Opisano również warunki, które należy spełnić, aby osiągnąć te oczekiwania dotyczące dostępności. Aby zrozumieć te warunki, należy zapoznać się z umowami dotyczącymi poziomu usług (SLA) dla usług online.
Podczas wdrażania strefowo nadmiarowego planu usługi App Service zwiększa się procent czasu pracy zdefiniowany w umowie SLA.