Udostępnij przez


Niezawodność w usłudze Azure Load Balancer

Azure Load Balancer to usługa równoważenia obciążenia w warstwie 4 (TCP/UDP), która rozprowadza ruch przychodzący wśród zdrowych instancji usług. Usługa Load Balancer zapewnia wysoką dostępność i wydajność sieci dla aplikacji z bardzo małym opóźnieniem.

W przypadku korzystania z platformy Azure niezawodność jest wspólną odpowiedzialnością. Firma Microsoft oferuje szereg możliwości wspierania odporności systemów i odzyskiwania. Odpowiadasz za zrozumienie, jak te możliwości działają w ramach wszystkich używanych usług oraz za wybór tych, które są potrzebne do osiągnięcia Twoich celów biznesowych i celów dotyczących niezawodności.

W tym artykule opisano, jak usługa Load Balancer jest odporna na różne potencjalne awarie i problemy, w tym przejściowe błędy, awarie stref dostępności i awarie regionów. Wyróżniono również niektóre kluczowe informacje dotyczące umowy dotyczącej poziomu usług (SLA) usługi Load Balancer.

Ważne

Niezawodność ogólnego rozwiązania zależy od konfiguracji wystąpień zaplecza (serwerów), do których moduł równoważenia obciążenia kieruje ruch, na przykład maszyn wirtualnych platformy Azure lub zestawów skalowania maszyn wirtualnych platformy Azure.

Instancje zaplecza nie są objęte zakresem tego artykułu, ale ich konfiguracje dostępności mają bezpośredni wpływ na niezawodność aplikacji. Zapoznaj się z przewodnikami dotyczącymi niezawodności dla wszystkich usług platformy Azure w rozwiązaniu, aby dowiedzieć się, jak każda usługa spełnia wymagania dotyczące niezawodności. Dzięki upewnieniu się, że wystąpienia zaplecza są również skonfigurowane pod kątem wysokiej dostępności i strefy nadmiarowej, można uzyskać całkowitą niezawodność aplikacji.

Zalecenia dotyczące wdrażania produkcyjnego

Platforma Azure Well-Architected Framework udostępnia zalecenia dotyczące niezawodności, wydajności, zabezpieczeń, kosztów i operacji. Aby zrozumieć, jak te obszary wpływają na siebie i przyczyniają się do stworzenia niezawodnego rozwiązania Load Balancer, zobacz najlepsze praktyki architektury dla Load Balancer w ramach Azure Well-Architected Framework.

Omówienie architektury niezawodności

Moduł równoważenia obciążenia może być publiczny lub wewnętrzny. Publiczny moduł równoważenia obciążenia akceptuje ruch z Internetu za pośrednictwem zasobu publicznego adresu IP. Wewnętrzny moduł równoważenia obciążenia jest dostępny tylko w ramach sieci wirtualnej i innych sieci łączących się z siecią wirtualną.

Każdy moduł równoważenia obciążenia składa się z wielu składników, w tym:

  • Konfiguracje IP frontendu, które odbierają ruch. Publiczny moduł równoważenia obciążenia odbiera ruch na publicznym adresie IP. Wewnętrzny moduł balansowania obciążenia odbiera ruch na adres IP w twojej sieci wirtualnej.
  • Pule zaplecza, które zawierają kolekcję wystąpień zaplecza , które mogą odbierać ruch, takich jak poszczególne maszyny wirtualne uruchamiające aplikację.
  • Reguły równoważenia obciążenia, które definiują sposób dystrybucji ruchu z warstwy frontowej do puli zaplecza serwerowego.
  • Sondy zdrowotne, które monitorują dostępność instancji zaplecza.

Aby dowiedzieć się więcej o sposobie działania usługi Load Balancer, zobacz Składniki modułu równoważenia obciążenia.

W przypadku rozwiązań wdrożonych globalnie można wdrożyć globalny moduł równoważenia obciążenia, który jest specjalnym typem publicznego modułu równoważenia obciążenia przeznaczonego do kierowania ruchu między różnymi regionalnymi wdrożeniami rozwiązania. Globalny moduł równoważenia obciążenia zapewnia jeden adres IP anycast. Kieruje ruch do najbliższego zdrowego regionalnego modułu równoważenia obciążenia na podstawie bliskości klienta i stanu zdrowia regionalnego. Aby uzyskać więcej informacji, zobacz Odporność na awarie całego regionu.

Odporność na błędy przejściowe

Błędy przejściowe to krótkotrwałe, sporadyczne awarie w komponentach. Występują one często w środowisku rozproszonym, takich jak chmura, i są one normalną częścią operacji. Błędy przejściowe naprawiają się po krótkim czasie. Ważne jest, aby aplikacje mogły obsługiwać 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 uzyskać więcej informacji, zobacz Zalecenia dotyczące obsługi błędów przejściowych.

W przypadku korzystania z usługi Load Balancer należy wziąć pod uwagę następujące najlepsze rozwiązania, aby zminimalizować ryzyko przejściowych błędów wpływających na aplikację:

  • Zaimplementuj logikę ponawiania prób. Klienci powinni zaimplementować odpowiednie mechanizmy ponawiania prób dla przejściowych niepowodzeń połączeń, w tym strategii wykładniczego wycofywania.

  • Skonfiguruj sondy kondycji z tolerancją. Skonfiguruj sondy kondycji, aby równoważyć szybkie wykrywanie błędów i unikać wyników fałszywie dodatnich podczas przejściowych problemów.

  • Monitorowanie alokacji portów SNAT. W przypadku połączeń wychodzących monitoruj alokację portów SNAT i skonfiguruj reguły ruchu wychodzącego, aby zapobiec przejściowym niepowodzeniom połączeń z powodu wyczerpania portów.

Odporność na błędy strefy dostępności

Strefy dostępności są fizycznie oddzielnymi grupami centrów danych w regionie świadczenia usługi Azure. Gdy jedna strefa ulegnie awarii, usługi mogą przejść w tryb failover do jednej z pozostałych stref.

Moduł równoważenia obciążenia można wdrożyć jako strefowo nadmiarowy , konfigurując każdą utworzoną konfigurację adresu IP frontonu. Konfiguracja adresu IP frontonu strefowo nadmiarowego jest obsługiwana jednocześnie z niezależnej infrastruktury w wielu strefach. Ta konfiguracja zapewnia, że awarie stref nie wpływają na zdolność modułu równoważenia obciążenia do odbierania i dystrybucji ruchu.

Na poniższym diagramie przedstawiono strefowo nadmiarowy publiczny moduł równoważenia obciążenia skonfigurowany przez utworzenie strefowo nadmiarowego publicznego adresu IP:

Diagram przedstawiający strefowo nadmiarowy publiczny moduł równoważenia obciążenia ze strefowo nadmiarowym publicznym adresem IP kierujący ruch do trzech różnych maszyn wirtualnych w różnych strefach dostępności.

Na poniższym diagramie przedstawiono wewnętrzny moduł równoważenia obciążenia przy użyciu podobnej konfiguracji strefowo nadmiarowej:

Diagram przedstawiający strefowo nadmiarowy wewnętrzny moduł równoważenia obciążenia kierujący ruch do trzech różnych maszyn wirtualnych w różnych strefach dostępności.

Uwaga

Chociaż można wdrażać moduły równoważenia obciążenia strefowego, zalecamy zawsze używanie strefowo nadmiarowych modułów równoważenia obciążenia, nawet w przypadku obciążeń wdrożonych w jednej strefie. Firma Microsoft migruje obecnie wszystkie publiczne adresy IP i równoważniki obciążenia do strefowej nadmiarowości.

W regionach bez stref dostępności moduły równoważenia obciążenia są tworzone w konfiguracji niezonowej lub regionalnej przy użyciu konfiguracji frontonu bez skonfigurowanej strefy. Jeśli w regionie wystąpi awaria, niezonalne moduły równoważenia obciążenia mogą doświadczyć przestoju.

Instancje back-end i strefy dostępności

Konfiguracja strefy dostępności instancji backendu jest niezależna od konfiguracji adresu IP frontendu równoważnika obciążenia.

Dystrybuuj instancje zaplecza między strefy poprzez skonfigurowanie odpowiedniej usługi zgodnie z funkcjonalnościami niezawodności usługi, z którymi są związane, oraz z architekturą, którą projektujesz.

Uwaga

Dystrybucja instancji serwerowych w wielu strefach dostępności jest niezbędna dla zapewnienia odporności. Jeśli wszystkie instancje zaplecza są zlokalizowane w jednej strefie, awaria w tej strefie spowoduje niedostępność aplikacji, nawet jeśli używasz strefowo redundantnego modułu równoważenia obciążenia.

Na przykład w przypadku korzystania z maszyn wirtualnych typowym podejściem projektowym dla obciążeń produkcyjnych jest osiągnięcie odporności strefy przez umieszczenie wielu strefowych maszyn wirtualnych w strefach 1, 2 i 3. W przypadku równoważenia obciążenia można utworzyć strefowo redundantny moduł równoważenia obciążenia i skonfigurować te maszyny wirtualne jako wystąpienia zaplecza w module równoważenia obciążenia. Automatyczne badania zdrowia modułu równoważenia obciążenia usuwają niesprawne maszyny wirtualne z rotacji, niezależnie od strefy, w której się znajdują.

Jeśli jednak zdecydujesz się wdrożyć maszyny wirtualne w tej samej strefie dostępności, nadal możesz wdrożyć strefowo nadmiarową konfigurację adresu IP frontonu w module równoważenia obciążenia, co przedstawiono na poniższym diagramie:

Diagram przedstawiający strefowo redundantny publiczny równoważnik obciążenia, kierujący ruch do dwóch różnych maszyn wirtualnych w strefie 1.

Requirements

Obsługa regionów: Strefowo nadmiarowe równoważniki obciążenia można wdrożyć w dowolnym regionie obsługującym strefy dostępności.

Koszt

Konfiguracja strefy dostępności nie zmienia sposobu naliczania opłat za moduł równoważenia obciążenia. Rozliczenia są oparte na liczbie skonfigurowanych reguł i przetwarzaniu danych, niezależnie od konfiguracji strefy. Aby uzyskać więcej informacji, zobacz cennik usługi Azure Load Balancer.

Konfiguruj obsługę stref dostępności

Podczas pracy z usługą Load Balancer należy ustawić obsługę stref dostępności w konfiguracji adresu IP frontendowego.

  • Utwórz nowy moduł równoważenia obciążenia z obsługą stref dostępności.

  • Zmień konfigurację strefy dostępności istniejącego modułu równoważenia obciążenia. Aby zmienić konfigurację strefy dostępności istniejącego modułu równoważenia obciążenia, należy zastąpić konfigurację adresu IP frontonu. Tej metody można użyć do przejścia z strefy do strefowo nadmiarowej konfiguracji adresu IP frontonu. Podejście wysokiego poziomu jest następujące:

    1. Utwórz nową konfigurację adresu IP frontonu z konfiguracją żądanej strefy dostępności.

      W przypadku publicznych modułów równoważenia obciążenia utwórz nowy publiczny adres IP, który najpierw używa żądanej konfiguracji strefy dostępności. Następnie skonfiguruj ponownie równoważnik obciążenia, aby dodać konfigurację adresu IP frontendu, która odnosi się do tego publicznego adresu IP.

      W przypadku wewnętrznych modułów równoważenia obciążenia skonfiguruj ponownie moduł równoważenia obciążenia, aby dodać nową konfigurację adresu IP frontonu z żądaną konfiguracją dostępności. Ten krok przypisuje nowy prywatny adres IP z podsieci.

    2. Skonfiguruj ponownie swoje reguły równoważenia obciążenia, aby używać nowej konfiguracji IP frontend.

      Ważne

      Ta operacja wymaga ponownego skonfigurowania klientów w celu wysyłania ruchu do nowego adresu IP frontend. W zależności od klientów proces może wymagać przestoju.

    3. Usuń starą konfigurację adresu IP frontonu.

Zachowanie, gdy wszystkie strefy są w dobrej kondycji

W tej sekcji opisano, czego można oczekiwać, gdy równoważnik obciążenia korzysta ze strefowo redundantnej konfiguracji adresu IP interfejsu frontowego, a wszystkie strefy dostępności działają.

  • Routing ruchu między strefami: Równoważenie obciążenia można przeprowadzić w dowolnej strefie dostępności. Ruch jest wysyłany do zdrowych instancji zaplecza określonych w puli zaplecza, bez względu na strefę dostępności, w której znajduje się instancja zaplecza.

  • Replikacja danych między strefami. Load Balancer to usługa przekazywania sieciowego, która nie przechowuje ani nie replikuje danych aplikacji. Nawet jeśli włączysz trwałość sesji w module równoważenia obciążenia, żaden stan nie jest przechowywany w module równoważenia obciążenia. Trwałość sesji dostosowuje proces tworzenia skrótów, aby kierować żądania do tego samego serwera zaplecza. Jednak trwałość sesji nie jest gwarantowana. Gdy pula zaplecza ulegnie zmianie, rozkład żądań klientów zostanie ponownie skompilowany. Ten proces odbywa się bez przechowywania lub synchronizowania stanu.

    Usługa utrzymuje stan konfiguracji z replikacją synchroniczną między strefami, zapewniając natychmiastową spójność reguł równoważenia obciążenia, konfiguracji sondy kondycji i członkostwa w puli zaplecza we wszystkich strefach.

Zachowanie podczas awarii strefy

W tej sekcji opisano, czego można oczekiwać, gdy moduł równoważenia obciążenia korzysta ze strefowo nadmiarowej konfiguracji adresu IP frontonu i występuje awaria strefy dostępności.

  • Wykrywanie i reagowanie: platforma Azure jest odpowiedzialna za wykrywanie awarii w strefie dostępności i odpowiadanie. Nie musisz nic robić, aby zainicjować tryb failover strefy.
  • Aktywne żądania: wszystkie istniejące przepływy TCP/UDP w strefie, które zakończyły się niepowodzeniem, są resetowane i muszą zostać ponowione przez klienta. Klienci powinni mieć zaimplementowaną wystarczającą obsługę błędów przejściowych , w tym automatyczne ponawianie prób.

  • Oczekiwana utrata danych: jako usługa sieciowa bezstanowa usługa Load Balancer nie przechowuje danych aplikacji, więc żadna utrata danych nie występuje w warstwie modułu równoważenia obciążenia.

  • Oczekiwany przestój: Żaden przestój nie jest oczekiwany dla strefowo nadmiarowych modułów równoważenia obciążenia, ponieważ moduły równoważenia obciążenia nadal działają ze zdrowych stref.

    Jeśli jednak awaria wpłynie na usługi obliczeniowe w strefie, wszystkie maszyny wirtualne lub inne zasoby, które znajdują się w strefie, której dotyczy problem, mogą być niedostępne. Sondy diagnostyczne równoważnika obciążenia są zaprojektowane do wykrywania tych awarii i kierowania ruchu do alternatywnych instancji w innej strefie, na podstawie algorytmu równoważenia obciążenia i stanu kondycji instancji zaplecza.

  • Przekierowywanie ruchu: moduł równoważenia obciążenia nadal działa ze stref w dobrej kondycji. Usługa Load Balancer utrzymuje ten sam adres IP frontend podczas awarii strefy. To zachowanie oznacza, że nie trzeba stosować aktualizacji DNS ani ponownie konfigurować klientów. Nowe połączenia są automatycznie ustanawiane poprzez zdrowe strefy.

Odzyskiwanie strefy

Gdy strefa dostępności zostanie odzyskana, usługa Load Balancer automatycznie wznowi normalne operacje. Interfejs strefowej redundancji automatycznie zaczyna obsługiwać ruch z odzyskanej strefy wraz z innymi strefami operacyjnymi. Sondy kondycji z odzyskanej strefy wznawiają ocenianie instancji backendowych.

Jeśli awaria strefy również miała wpływ na usługi obliczeniowe w tej strefie, to gdy instancje zaplecza w odzyskanej strefie przechodzą testy kondycji, są one automatycznie przywracane do zdrowej puli zaplecza. Rozkład ruchu jest równoważony na nowo w odniesieniu do wszystkich dostępnych stref na podstawie algorytmu równoważenia obciążenia i stanu zdrowia instancji zaplecza.

Testowanie pod kątem niepowodzeń strefy

Platforma Azure zarządza routingiem ruchu, reakcją na awarię strefy i odzyskiwaniem. Te możliwości są w pełni zarządzane, więc nie trzeba inicjować ani weryfikować procesów awarii strefy dostępności.

Za pomocą programu Azure Chaos Studio można symulować awarię maszyny wirtualnej w jednej strefie. Program Chaos Studio udostępnia wbudowane błędy dla maszyn wirtualnych, w tym zamykanie maszyny wirtualnej. Te możliwości umożliwiają symulowanie awarii strefy i testowanie procesów trybu failover.

Odporność na awarie całego regionu

Publiczne i wewnętrzne moduły równoważenia obciążenia są wdrażane w jednym regionie świadczenia usługi Azure. Jeśli region stanie się niedostępny, moduły równoważenia obciążenia w tym regionie są również niedostępne. Jednak usługa Azure Load Balancer zapewnia natywną obsługę wielu regionów za pośrednictwem globalnego modułu równoważenia obciążenia, co umożliwia równoważenie obciążenia w różnych regionach świadczenia usługi Azure. Możesz również wdrożyć inne usługi równoważenia obciążenia w celu kierowania i przełączania w tryb failover w regionach świadczenia usługi Azure.

Globalne moduły równoważenia obciążenia

Globalny równoważnik obciążenia zapewnia jeden statyczny adres IP anycast, który automatycznie kieruje ruch do optymalnego wdrożenia regionalnego w oparciu o bliskość klienta i stan regionalny. Globalny moduł równoważenia obciążenia może pomóc zwiększyć niezawodność i wydajność aplikacji.

Usługa Global Load Balancer wdraża wiele publicznych modułów równoważenia obciążenia w różnych regionach, a globalny moduł równoważenia obciążenia działa jako globalny fronton. Jeśli serwery zaplecza w jednym regionie mają problem, ruch jest automatycznie przełączany do zdrowych regionów bez konieczności zmiany DNS, ponieważ adres IP anycast pozostaje stały i kieruje ruch do innego regionu.

Aby uzyskać więcej informacji, zobacz Globalny moduł równoważenia obciążenia.

Niestandardowe rozwiązania obejmujące wiele regionów w celu zapewnienia odporności

Platforma Azure oferuje szereg usług równoważenia obciążenia, które odpowiadają różnym wymaganiom. Możesz wybrać moduł równoważenia obciążenia spełniający wymagania dotyczące odporności i odpowiadający typowi aplikacji. Aby uzyskać więcej informacji, zobacz Opcje równoważenia obciążenia.

Umowa dotycząca poziomu usług

Umowa dotycząca poziomu usług (SLA) dla usług platformy Azure opisuje oczekiwaną dostępność każdej usługi oraz warunki, które rozwiązanie musi spełnić, aby osiągnąć te oczekiwania dotyczące dostępności. Aby uzyskać więcej informacji, zobacz Umowy SLA dotyczące usług online.

Umowa SLA dla Azure Load Balancer obowiązuje, gdy dostępne są co najmniej dwie sprawnie działające maszyny wirtualne skonfigurowane jako instancje zaplecza. Umowa SLA wyklucza przestój z powodu wyczerpania portów SNAT lub sieciowych grup zabezpieczeń, które blokują ruch.