Udostępnij przez


Niezawodność w usłudze Azure Stream Analytics

Azure Stream Analytics to wysoce odporna usługa, która przetwarza i analizuje dane przesyłane strumieniowo z wielu źródeł jednocześnie. Usługa Stream Analytics udostępnia informacje, które umożliwiają tworzenie złożonych potoków przetwarzania zdarzeń za pomocą zapytań przypominających język SQL.

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 Stream Analytics jest odporna na potencjalne problemy, w tym przejściowe błędy i awarie strefy dostępności. Udostępniamy również wskazówki dotyczące ochrony zadań o krytycznym znaczeniu przed awariami regionów i konserwacją usługi oraz wyróżniamy kluczowe informacje o umowie dotyczącej poziomu usług (SLA) usługi Stream Analytics.

Ważne

Poprawa odporności samej usługi Stream Analytics może mieć ograniczony wpływ, jeśli inne składniki nie są równie odporne. Rozważ niezawodność źródeł danych, w tym dane wejściowe i wyjściowe. W zależności od wymagań dotyczących odporności może być konieczne wprowadzenie zmian konfiguracji w wielu obszarach.

Zalecenia dotyczące wdrażania produkcyjnego

Aby zapewnić wysoką niezawodność w środowiskach produkcyjnych za pomocą usługi Stream Analytics, zalecamy:

  • Użyj regionów ze strefami dostępności: Wdróż zadania przesyłania strumieniowego i inne zasoby w regionach, które obsługują strefy dostępności.
  • Wdróż wystarczającą pojemność: Ustaw jednostki przesyłania strumieniowego na podstawie oczekiwanej przepływności, z dodatkową pojemnością do obsługi obciążeń szczytowych i z buforem powyżej wymagań punktu odniesienia w przypadku nagłych wzrostów.
  • Monitorowanie kondycji: Zaimplementuj kompleksowe monitorowanie przy użyciu metryk usługi Azure Monitor i dzienników diagnostycznych w celu śledzenia kondycji zadania, zdarzeń wejściowych/wyjściowych i wykorzystania zasobów. Skonfiguruj alerty dotyczące metryk krytycznych, takich jak opóźnienia znaku wodnego i błędy środowiska uruchomieniowego, aby wykrywać problemy przed ich wpływem na przetwarzanie danych. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi Azure Stream Analytics.
  • Zaimplementuj nadmiarowość w wielu regionach dla obciążeń o znaczeniu krytycznym: Wdróż identyczne zadania usługi Stream Analytics w wielu regionach z zsynchronizowanymi konfiguracjami i odpowiednim routingiem danych, aby osiągnąć odporność regionalną. Chociaż usługa Stream Analytics nie zapewnia natywnej replikacji między regionami, takie podejście umożliwia failover i zapewnia ciągłość działania. Aby uzyskać więcej informacji, zobacz Niestandardowe wieloregionowe rozwiązania dla odporności.

Omówienie architektury niezawodności

W tej sekcji opisano niektóre ważne aspekty działania usługi, które są najbardziej istotne z perspektywy niezawodności. W sekcji przedstawiono architekturę logiczną, która zawiera niektóre z zasobów i funkcji wdrażanych i używanych. Omówiono również architekturę fizyczną, która zawiera szczegółowe informacje na temat działania usługi za kulisami.

Architektura logiczna

Zadanie jest podstawową jednostką w usłudze Stream Analytics, która umożliwia definiowanie i uruchamianie logiki przetwarzania strumieniowego. Zadanie składa się z następujących głównych składników:

  • Dane wejściowe odczytujące dane przesyłane strumieniowo ze źródeł danych, takich jak Azure Event Hubs, Azure IoT Hub lub Azure Storage.
  • Zapytanie, które przetwarza i przekształca dane.
  • Dane wyjściowe , które stale zapisują wyniki w różnych miejscach docelowych, takich jak Azure SQL Database, Azure Data Lake Storage, Azure Cosmos DB, Power BI i inne.

Aby uzyskać więcej informacji na temat zadań usługi Stream Analytics i modelu zasobów, zobacz Model zasobów usługi Azure Stream Analytics.

Architektura fizyczna

Usługa Stream Analytics zapewnia wysoką niezawodność, stosując wiele warstw odporności w celu wyeliminowania problemów w podstawowej infrastrukturze oraz źródłach danych wejściowych i wyjściowych. Następujące składniki pomagają zapewnić niezawodną obsługę zadań:

  • Węzły robocze. Zadania usługi Stream Analytics są uruchamiane na maszynach wirtualnych nazywanych węzłami procesu roboczego, które działają w klastrze. W przypadku korzystania z SKU Standard lub StandardV2, zadania są uruchamiane we współdzielonych klastrach. W przypadku korzystania z dedykowanej SKU zadania są uruchamiane na własnym dedykowanym klastrze.

    Ponieważ platforma automatycznie zarządza tworzeniem węzła roboczego, umieszczaniem zadań w węzłach roboczych, monitorowaniem kondycji i zastępowaniem węzłów roboczych w złej kondycji, nie widzisz maszyn wirtualnych ani nie zarządzasz nimi bezpośrednio.

  • Jednostki streamingu. Platforma zarządza węzłami procesu roboczego i dystrybucją zadań między węzłami procesu roboczego, ale odpowiadasz za przydzielanie jednostek przesyłania strumieniowego (SU) do zadań. Jednostki SU symbolizują zasoby obliczeniowe, które realizują zadanie. Im większa liczba jednostek SU, tym więcej zasobów obliczeniowych jest przydzielanych do zadania. Aby uzyskać więcej informacji, zobacz Omówienie i dostosowywanie jednostek przesyłania strumieniowego usługi Stream Analytics.

  • Punkty kontrolne. Usługa Stream Analytics utrzymuje stan zadania za pomocą regularnego tworzenia punktów kontrolnych stanu. Punkty kontrolne umożliwiają szybkie odzyskiwanie przy minimalnym przetwarzaniu danych w przypadku awarii, nawet w przypadku zadań korzystających z logiki zapytań stanowych.

    W przypadku wystąpienia błędów przetwarzania usługa Stream Analytics automatycznie uruchamia się ponownie z ostatniego punktu kontrolnego i automatycznie przetwarza zdarzenia, które kończą się niepowodzeniem podczas przetwarzania. Ta gwarancja dotyczy wszystkich wbudowanych funkcji i funkcji zdefiniowanych przez użytkownika w zadaniu. Jednak osiągnięcie dostarczania dokładnie jednokrotnego zależy od możliwości docelowego środowiska wyjściowego. Aby uzyskać więcej informacji, zobacz Checkpoint and replay concepts in Azure Stream Analytics jobs (Pojęcia dotyczące punktów kontrolnych i powtarzania w zadaniach usługi Azure Stream Analytics).

Uwaga / Notatka

Usługa Azure Stream Analytics w usłudze IoT Edge umożliwia uruchamianie zadań we własnej infrastrukturze. Gdy używasz usługi Stream Analytics w usłudze IoT Edge, odpowiadasz za skonfigurowanie jej w celu spełnienia wymagań dotyczących niezawodności. Usługa Stream Analytics w usłudze IoT Edge wykracza poza zakres tego artykułu.

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.

Usługa Stream Analytics automatycznie obsługuje wiele błędów przejściowych zarówno w przypadku pozyskiwania danych z danych wejściowych, jak i zapisywania danych do danych wyjściowych za pomocą wbudowanych mechanizmów ponawiania prób. Po ponownym uruchomieniu węzła roboczego lub ponownym przypisaniu zadania, zadanie używa punktów kontrolnych do odtwarzania wszystkich zdarzeń, które nie zostały w pełni przetworzone, i kontynuuje przetwarzanie, dopóki nie osiągnie bieżącego strumienia wejściowego.

Dobrym rozwiązaniem jest skonfigurowanie zasad błędów wyjściowych. Jednak te zasady dotyczą tylko błędów konwersji danych i nie mają wpływu na sposób obsługi błędów tymczasowych.

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.

Usługa Stream Analytics jest automatycznie strefowo nadmiarowa w regionach, które obsługują strefy dostępności, co oznacza, że zadania korzystają z wielu stref dostępności. Nadmiarowość stref zapewnia odporność zadania na duży zestaw awarii, w tym katastrofalne awarie centrum danych bez żadnych zmian logiki aplikacji.

Tworząc zadanie Stream Analytics w regionie obsługującym strefy, usługa rozmieszcza zasoby obliczeniowe zadania między wieloma strefami dostępności.

Diagram przedstawiający strefowo nadmiarowe zadanie usługi Stream Analytics.

Ten model wdrożeniowy z nadmiarowością strefową zapewnia, że zadania przesyłania strumieniowego będą kontynuować przetwarzanie danych, nawet jeśli cała strefa dostępności stanie się niedostępna. Na przykład na poniższym diagramie pokazano, jak zadania nadal będą się uruchamiać, jeśli w strefie 3 wystąpi awaria.

Diagram przedstawiający strefowo nadmiarowe zadanie usługi Stream Analytics, które jest nadal uruchamiane, gdy strefa nie działa.

Redundancja strefy ma zastosowanie do wszystkich funkcji Stream Analytics, w tym przetwarzania zapytań, tworzenia punktów kontrolnych (checkpointing) i zarządzania zadaniami. Usługa Stream Analytics automatycznie replikuje stan zadania i dane punktów kontrolnych w strefach dostępności, zapobiegając utracie danych i umożliwiając prawie zerowy czas przestoju podczas awarii strefy.

Requirements

  • Obsługa regionów: Nadmiarowość stref dla zasobów usługi Stream Analytics jest obsługiwana w dowolnym regionie obsługującym strefy dostępności. Aby uzyskać pełną listę regionów obsługujących strefy dostępności, zobacz Regiony platformy Azure ze strefami dostępności.
  • SKU: Redundancja strefowa jest dostępna we wszystkich wersjach SKU usługi Stream Analytics.

Koszt

Nadmiarowość strefy w usłudze Stream Analytics nie powoduje naliczania dodatkowych opłat. Płacisz tę samą stawkę za jednostki streamingu, niezależnie od tego, czy Twoje zadanie działa w konfiguracji z nadmiarowością strefową, czy nie. Aby uzyskać informacje, zobacz Cennik usługi Azure Stream Analytics.

Konfiguruj obsługę stref dostępności

Zachowanie, gdy wszystkie strefy są w dobrej kondycji

W tej sekcji opisano, czego można oczekiwać podczas konfigurowania zadań usługi Stream Analytics z obsługą strefy dostępności, a wszystkie strefy dostępności działają.

  • Routing ruchu między strefami. Stream Analytics uruchamia każde zadanie na węzłach roboczych. Dane napływające strumieniowo mogą być przetwarzane przez węzły robocze w dowolnej strefie. Usługa używa wewnętrznego równoważenia obciążenia do dystrybuowania zadań przetwarzania między strefami.

  • Replikacja danych między strefami. Usługa Stream Analytics replikuje stan zadania i dane punktu kontrolnego synchronicznie w strefach dostępności. Ponieważ zadanie przetwarza zdarzenia i aktualizuje jego stan, usługa Stream Analytics zapisuje te zmiany w wielu strefach dostępności przed ich potwierdzeniem. Ta synchroniczna replikacja zapewnia zerową utratę danych, nawet jeśli cała strefa stanie się niedostępna. Proces replikacji jest niewidoczny dla aplikacji i nie ma wpływu na opóźnienie przetwarzania w normalnych warunkach.

Zachowanie podczas awarii strefy

W tej sekcji opisano, czego można oczekiwać przy konfigurowaniu zadań Stream Analytics z obsługą strefy dostępności oraz w przypadku awarii strefy dostępności.

  • Wykrywanie i reagowanie: Platforma usługi Stream Analytics jest odpowiedzialna za wykrywanie awarii w strefie dostępności i odpowiadanie. Usługa Stream Analytics oznacza pracowników w awaryjnej strefie jako nieprawidłowych, a zadania uruchomione na tych pracownikach są automatycznie redystrybuowane do pracowników w pozostałych zdrowych strefach. Nie musisz nic robić, aby zainicjować tryb failover strefy.
  • Aktywne żądania: uruchomione procesy są przesuwane do innego pracownika w strefie dostępności, która jest w pełni sprawna.

    Usługa Stream Analytics używa punktów kontrolnych do utrzymania stanu przetwarzania. Podczas awarii strefy przetwarzane zdarzenia przez pracowników w uszkodzonej strefie są automatycznie ponownie przetwarzane od ostatniego punktu kontrolnego przez pracowników w strefach funkcjonujących poprawnie.

  • Oczekiwana utrata danych: system tworzenia punktów kontrolnych zadania zapewnia brak utraty danych.

  • Oczekiwany przestój: zadania w toku są automatycznie wznawiane po przeniesieniu ich do zdrowego procesora.

  • Przekierowywanie ruchu: Usługa automatycznie przekierowuje wszystkie nowe dane wejściowe do pracowników w zdrowych strefach. Istniejące połączenia z wejściowych źródeł danych są odnawiane z pracownikami w strefach operacyjnych. Połączenia wyjściowe są podobnie ustanawiane ponownie, zapewniając ciągły przepływ danych przez potok przesyłania strumieniowego.

Odzyskiwanie strefy

Gdy strefa dostępności, która uległa awarii, zostanie przywrócona, usługa Stream Analytics automatycznie ponownie zintegrowała ją z aktywną pulą przetwarzania. Zadania zaczynają wykorzystywać odzyskaną infrastrukturę.

Nie podejmujesz żadnych działań na potrzeby odzyskiwania strefy, ponieważ platforma obsługuje wszystkie aspekty operacji odzyskiwania strefy, w tym synchronizację stanu i redystrybucję obciążeń.

Testowanie pod kątem niepowodzeń strefy

Ponieważ platforma Stream Analytics zarządza routingiem ruchu, trybem awaryjnym i odzyskiwaniem stref, nie trzeba inicjować ani weryfikować procesów awarii stref dostępności.

Odporność na awarie całego regionu

Usługa Stream Analytics wdraża zasoby w jednym regionie świadczenia usługi Azure. Jeśli region stanie się niedostępny, zadania (i dedykowane klastry, jeśli ma to zastosowanie), są również niedostępne.

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

Aby osiągnąć odporność wieloregionową dla obciążeń związanych z przesyłaniem strumieniowym, rozważ wdrożenie oddzielnych zadań w kilku regionach. Gdy to zrobisz, odpowiadasz za wdrażanie zadań i zarządzanie nimi oraz konfigurowanie odpowiednich strategii routingu i synchronizacji danych. Zadania usługi Stream Analytics to dwie oddzielne jednostki. Aplikacja jest odpowiedzialna za wysyłanie danych wejściowych zarówno do regionalnych danych wejściowych, jak i uzgadnianie regionalnych danych wyjściowych. Aby uzyskać więcej informacji na temat tego podejścia, zobacz Uzyskiwanie nadmiarowości geograficznej dla zadań usługi Stream Analytics.

Tworzenie kopii zapasowej i przywracanie

Usługa Stream Analytics nie ma wbudowanej funkcji tworzenia i przywracania kopii zapasowych.

Jeśli jednak chcesz przenieść, skopiować lub utworzyć kopię zapasową definicji i konfiguracji zadań, możesz użyć rozszerzenia usługi Stream Analytics dla programu Visual Studio Code, aby wyeksportować istniejące zadanie w chmurze platformy Azure do komputera lokalnego. Po zapisaniu całej konfiguracji zadań usługi Stream Analytics lokalnie można wdrożyć je w tym samym lub innym regionie świadczenia usługi Azure. Aby dowiedzieć się, jak kopiować, tworzyć kopie zapasowe i przenosić zadania usługi Stream Analytics, zobacz Kopiowanie, tworzenie kopii zapasowych i przenoszenie zadań usługi Azure Stream Analytics.

Odporność usługi na prace konserwacyjne

Usługa Stream Analytics przeprowadza automatyczną konserwację platformy w celu stosowania aktualizacji zabezpieczeń, wdrażania nowych funkcji i zwiększania niezawodności usługi. W związku z tym usługa Stream Analytics może wdrażać aktualizacje usług co tydzień (lub częściej). Usługa Stream Analytics zapewnia, że każda nowa aktualizacja przechodzi przez rygorystyczne wewnętrzne etapy kontroli, aby zapewnić najwyższą jakość.

Rozważ następujące kwestie, aby upewnić się, że Twoje zadania są odporne na działania związane z konserwacją usługi:

  • Skonfiguruj zadania tak, aby były odporne na powtórki: Punkty kontrolne są zwykle używane do przywracania danych po konserwacji usługi. Jednak od czasu do czasu należy użyć techniki odtwarzania zamiast punktu kontrolnego. Aby uzyskać więcej informacji i dowiedzieć się, jak skonfigurować wejściowe źródła danych, tak aby powtórki nie powodowały nieprawidłowych lub częściowych wyników w danych wyjściowych, zobacz Odzyskiwanie zadania z uaktualnienia usługi.

  • Rozważ ograniczenie ryzyka błędów przez wdrożenie identycznych zadań: Usługa aktywnie szuka wielu sygnałów po wdrożeniu w każdej partii, aby uzyskać większą pewność, że nie wprowadzono żadnych usterek. Jednak bez względu na to, ile testów zostanie przeprowadzonych, wciąż istnieje ryzyko, że istniejące, uruchomione zadanie może ulec awarii z powodu problemu wprowadzonego przez konserwację. W przypadku uruchamiania zadań o znaczeniu krytycznym należy wykonać kroki, aby uniknąć tego ryzyka.

    Możesz zmniejszyć ryzyko wystąpienia usterki wpływającej na obciążenie, wdrażając identyczne zadania w dwóch regionach świadczenia usługi Azure. Następnie należy monitorować te zadania , aby otrzymywać powiadomienia, gdy coś nieoczekiwanego się stanie. Jeśli jedno z tych zadań znajduje się w stanie Niepowodzenia po aktualizacji usługi Stream Analytics, należy:

    Po wybraniu regionów platformy Azure do użycia dla zadania pomocniczego należy rozważyć, czy region ma sparowany region. Lista regionów platformy Azure zawiera najbardziej aktualne informacje o tym, które regiony są sparowane. Usługa Stream Analytics gwarantuje, że infrastruktura w sparowanych regionach jest aktualizowana w różnym czasie. Wdrożenie aktualizacji w usłudze Stream Analytics nie odbywa się jednocześnie w zestawie sparowanych regionów. W związku z tym istnieje wystarczająca różnica czasu między aktualizacjami w celu zidentyfikowania potencjalnych problemów i ich rozwiązania.

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.

Usługa Stream Analytics zapewnia oddzielne umowy SLA dotyczące dostępności dla wywołań interfejsu API do zarządzania zadaniami oraz dla operacji tych zadań.