Freigeben über


Zuverlässigkeit in Azure Stream Analytics

Azure Stream Analytics ist ein hochgradig widerstandsfähiger Dienst, der Streamingdaten aus mehreren Quellen gleichzeitig verarbeitet und analysiert. Stream Analytics stellt die Informationen bereit, mit denen Sie komplexe Ereignisverarbeitungspipelinen mithilfe von SQL-ähnlichen Abfragen erstellen können.

Wenn Sie Azure verwenden, ist Zuverlässigkeit eine gemeinsame Verantwortung. Microsoft bietet eine Reihe von Funktionen zur Unterstützung von Resilienz und Wiederherstellung. Sie sind dafür verantwortlich, zu verstehen, wie diese Funktionen in allen von Ihnen verwendeten Diensten funktionieren, und die Funktionen auswählen, die Sie benötigen, um Ihre Geschäftsziele und Uptime-Ziele zu erfüllen.

In diesem Artikel wird beschrieben, wie Stream Analytics widerstandsfähig gegen potenzielle Probleme wie vorübergehende Fehler und Ausfall der Verfügbarkeitszone ist. Es bietet Anleitungen zum Schutz von unternehmenskritischen Arbeitsplätzen vor Regionsausfällen und Servicewartungen. Außerdem werden wichtige Informationen zum Stream Analytics Service Level Agreement (SLA) hervorgehoben.

Von Bedeutung

Die Verbesserung der Resilienz von Stream Analytics allein kann nur eingeschränkt wirken, wenn die anderen Komponenten nicht gleich robust sind. Berücksichtigen Sie die Zuverlässigkeit Ihrer Datenquellen, einschließlich Eingaben und Ausgaben. Je nach Ihren Resilienzanforderungen müssen Sie möglicherweise Konfigurationsänderungen in mehreren Bereichen vornehmen.

Bereitstellungsempfehlungen für die Produktion

Um eine hohe Zuverlässigkeit in Produktionsumgebungen zu gewährleisten, die Stream Analytics verwenden, empfehlen wir, die folgenden Aktionen auszuführen:

  • Verwenden Sie Regionen, die Verfügbarkeitszonen unterstützen. Stellen Sie Ihre Streamingaufträge und andere Ressourcen in Regionen bereit, die Verfügbarkeitszonen unterstützen.
  • Stellen Sie ausreichende Kapazität bereit. Legen Sie Ihre Streamingeinheiten (SUs) basierend auf dem erwarteten Durchsatz und mit zusätzlicher Kapazität zur Bewältigung von Spitzenlasten fest. Fügen Sie einen Puffer oberhalb der Basisanforderungen hinzu, um plötzliche Erhöhungen zu behandeln.
  • Überwachen der Gesundheit. Implementieren Sie eine umfassende Überwachung mithilfe von Azure Monitor-Metriken und Diagnoseprotokollen, um die Auftragsintegrität, Eingabe- und Ausgabeereignisse sowie die Ressourcenauslastung nachzuverfolgen. Richten Sie Warnungen für kritische Metriken wie Wasserzeichenverzögerung und Laufzeitfehler ein, um Probleme zu erkennen, bevor sie sich auf die Datenverarbeitung auswirken. Weitere Informationen finden Sie unter Überwachen von Stream Analytics.
  • Implementieren Sie Multiregionsredundanz für unternehmenskritische Workloads. Stellen Sie identische Stream Analytics-Aufträge in mehreren Regionen bereit. Replizieren Sie ihre Konfigurationen, und stellen Sie ein geeignetes Datenrouting sicher, um regionale Resilienz zu erreichen. Stream Analytics bietet keine native Multi-Region-Replikation, aber dieser Ansatz ermöglicht Failover und Kontinuität. Weitere Informationen finden Sie unter benutzerdefinierte Lösungen mit mehreren Regionen zur Resilienz.

Übersicht über die Zuverlässigkeitsarchitektur

In diesem Abschnitt werden einige der wichtigen Aspekte der Funktionsweise des Diensts beschrieben, die aus Zuverlässigkeitsperspektive am relevantesten sind. Im Abschnitt wird die logische Architektur vorgestellt, die einige der Ressourcen und Features enthält, die Sie bereitstellen und verwenden. Außerdem wird die physische Architektur erläutert, die Details zur Funktionsweise des Diensts unter den Deckeln bereitstellt.

Logische Architektur

Ein Auftrag ist die grundlegende Einheit in Stream Analytics, mit der Sie Ihre Datenstromverarbeitungslogik definieren und ausführen können. Ein Auftrag besteht aus den folgenden Hauptkomponenten:

  • Eingaben , die Streamingdaten aus Datenquellen wie Azure Event Hubs, Azure IoT Hub oder Azure Storage lesen.
  • Eine Abfrage , die die Daten verarbeitet und transformiert.
  • Ausgaben, die kontinuierlich Ergebnisse an verschiedene Ziele schreiben, wie Azure SQL-Datenbank, Azure Data Lake Storage, Azure Cosmos DB und Power BI.

Weitere Informationen finden Sie unter Stream Analytics-Ressourcenmodell.

Physische Architektur

Stream Analytics erzielt hohe Zuverlässigkeit, indem mehrere Resilienzebenen angewendet werden, um Probleme in der zugrunde liegenden Infrastruktur und Eingabe- und Ausgabedatenquellen zu beheben. Die folgenden Komponenten tragen dazu bei, dass Ihre Aufträge robust ausgeführt werden:

  • Arbeitsknoten: Stream Analytics-Aufträge werden innerhalb eines Clusters ausgeführt. Die virtuellen Computer (VMs) innerhalb des Clusters werden als Arbeitsknoten bezeichnet. Wenn Sie die Standard- oder Standard V2-SKUs verwenden, werden Ihre Aufträge auf freigegebenen Clustern ausgeführt. Wenn Sie die dedizierte SKU verwenden, werden Ihre Aufträge auf ihrem eigenen dedizierten Cluster ausgeführt.

    Die Plattform verwaltet automatisch die Erstellung von Arbeitsknoten, die Auftragsplatzierung über Arbeitsknoten hinweg, die Integritätsüberwachung und den Ersatz fehlerhafter Arbeitsknoten, sodass Sie die virtuellen Computer nicht direkt sehen oder verwalten.

  • Sus: SUs stellen die Computeressourcen dar, die einen Auftrag ausführen. Je höher die Anzahl der SUs ist, desto mehr Rechenressourcen werden für den Auftrag zugeordnet. Die Plattform verwaltet Arbeitsknoten und Auftragsverteilung über Arbeitsknoten hinweg, aber Sie sind dafür verantwortlich, SUs an Aufträge zu verteilen. Weitere Informationen finden Sie unter Verstehen und Anpassen von SUs von Stream Analytics.

  • Prüfpunkte: Stream Analytics verwaltet den Auftragsstatus durch regelmäßige Prüfpunkte des Zustands. Prüfpunkte helfen fehlgeschlagenen Aufträgen, sich schnell mit minimaler Datenüberarbeitung zu erholen, auch bei Aufträgen, die eine zustandsbehaftete Abfragemethodik verwenden.

    Wenn Verarbeitungsfehler auftreten, startet Stream Analytics automatisch vom letzten Prüfpunkt neu und verarbeitet Ereignisse, die während der Verarbeitung fehlschlagen. Diese Garantie gilt für alle integrierten Funktionen und benutzerdefinierten Funktionen innerhalb des Auftrags. Das Erreichen einer End-to-End-Übermittlung mit genau einem Empfang hängt jedoch von den Fähigkeiten Ihres Ausgabeziels ab. Weitere Informationen finden Sie unter Prüfpunkt- und Wiedergabekonzepte in Stream Analytics-Aufträgen.

Hinweis

Mithilfe von Stream Analytics auf IoT Edge können Sie Aufträge in Ihrer eigenen Infrastruktur ausführen. Wenn Sie Stream Analytics auf IoT Edge verwenden, sind Sie dafür verantwortlich, sie einzurichten, um Ihre Zuverlässigkeitsanforderungen zu erfüllen. Stream Analytics auf IoT Edge liegt außerhalb des Umfangs dieses Artikels.

Resilienz für vorübergehende Fehler

Vorübergehende Fehler sind kurze, zeitweilige Fehler in Komponenten. Sie treten häufig in einer verteilten Umgebung wie der Cloud auf und sind ein normaler Bestandteil von Vorgängen. Vorübergehende Fehler korrigieren sich nach kurzer Zeit. Es ist wichtig, dass Ihre Anwendungen vorübergehende Fehler behandeln können, in der Regel durch Wiederholen betroffener Anforderungen.

Alle in der Cloud gehosteten Anwendungen sollten die Anleitung zur vorübergehenden Fehlerbehandlung von Azure befolgen, wenn sie mit cloudgehosteten APIs, Datenbanken und anderen Komponenten kommunizieren. Weitere Informationen finden Sie unter Empfehlungen zur Behandlung vorübergehender Fehler.

Stream Analytics verarbeitet automatisch viele vorübergehende Fehler, wenn sie Daten aus Eingaben erfasst und Daten mithilfe integrierter Wiederholungsmechanismen in Ausgaben schreibt. Nachdem ein Arbeitsknoten neu gestartet oder ein Auftrag neu zugewiesen wurde, verwendet der Auftrag Prüfpunkte, um alle Ereignisse wiederzugeben, die nicht vollständig verarbeitet wurden, und setzt die Verarbeitung fort, bis er den aktuellen Eingabedatenstrom erreicht.

Es empfiehlt sich, Ausgabefehlerrichtlinien einzurichten. Diese Richtlinien gelten jedoch nur für Datenkonvertierungsfehler, und sie ändern nicht, wie Stream Analytics vorübergehende Fehler behandelt.

Ausfallsicherheit bei Ausfällen von Verfügbarkeitszonen

Verfügbarkeitszonen sind physisch getrennte Gruppen von Rechenzentren innerhalb einer Azure-Region. Wenn eine Zone ausfällt, erfolgt ein Failover der Dienste zu einer der verbleibenden Zonen.

Stream Analytics ist automatisch zonenredundant in Regionen, die Verfügbarkeitszonen unterstützen, was bedeutet, dass Aufträge mehrere Verfügbarkeitszonen verwenden. Zonenredundanz stellt sicher, dass Ihr Job gegen eine Vielzahl von Fehlern, einschließlich katastrophaler Ausfälle des Rechenzentrums, ohne Änderungen an der Anwendungslogik resilient bleibt.

Wenn Sie einen Stream Analytics-Auftrag in einer zonenfähigen Region erstellen, verteilt der Dienst die Computeressourcen Ihres Auftrags über mehrere Verfügbarkeitszonen.

Diagramm, das einen zonenredundanten Stream Analytics-Auftrag zeigt.

Mit diesem zonenredundanten Bereitstellungsmodell wird sichergestellt, dass Ihre Streamingaufträge weiterhin Daten verarbeiten, auch wenn eine gesamte Verfügbarkeitszone nicht mehr verfügbar ist. Das folgende Diagramm zeigt beispielsweise, wie Aufträge weiterhin ausgeführt werden, wenn Zone 3 einen Ausfall erlebt.

Diagramm, das einen zonenredundanten Stream Analytics-Auftrag zeigt, der weiterhin ausgeführt wird, wenn eine Zone ausfällt.

Zonenredundanz gilt für alle Funktionen von Stream Analytics, einschließlich der Abfrageverarbeitung, Prüfpunkterstellung und Auftragsverwaltung. Stream Analytics repliziert automatisch die Status- und Prüfpunktdaten Ihres Auftrags über Verfügbarkeitszonen hinweg, wodurch Datenverluste verhindert und Ausfallzeiten während Zonenfehlern reduziert werden.

Anforderungen

  • Regionsunterstützung: Zonenredundanz für Stream Analytics-Ressourcen wird in jeder Region unterstützt, die Verfügbarkeitszonen unterstützt. Die vollständige Liste der Regionen, die Verfügbarkeitszonen unterstützen, finden Sie in der Azure-Regionsliste.
  • SKU-Anforderungen: Zonenredundanz ist in allen Stream Analytics-SKUs verfügbar.

Kosten

Zonenredundanz in Stream Analytics verursacht keine zusätzlichen Gebühren. Sie zahlen den gleichen Satz für SUs, unabhängig davon, ob Ihr Auftrag in einer zonenredundanten Konfiguration oder in einer nicht zonenredundanten Konfiguration ausgeführt wird. Weitere Informationen finden Sie unter Stream Analytics-Preise.

Konfigurieren der Unterstützung von Verfügbarkeitszonen

Verhalten, wenn alle Zonen fehlerfrei sind

In diesem Abschnitt wird beschrieben, was Sie erwarten müssen, wenn Stream Analytics-Aufträge zonenredundant sind und alle Verfügbarkeitszonen betriebsbereit sind.

  • Datenverkehrsrouting zwischen Zonen: Stream Analytics führt jedes Job auf Arbeitsknoten aus. Mitarbeiter in jeder Zone verarbeiten möglicherweise eingehende Streamingdaten. Der Dienst verwendet den internen Lastenausgleich, um Verarbeitungsaufgaben über Zonen hinweg zu verteilen.

  • Datenreplikation zwischen Zonen: Stream Analytics repliziert Auftragsstatus- und Prüfpunktdaten synchron über Verfügbarkeitszonen hinweg. Da der Auftrag Ereignisse verarbeitet und den Zustand aktualisiert, schreibt Stream Analytics diese Änderungen in mehrere Verfügbarkeitszonen, bevor er sie erkennt. Diese synchrone Replikation stellt keinen Datenverlust sicher, auch wenn eine gesamte Zone nicht verfügbar ist. Der Replikationsprozess ist für Ihre Anwendung transparent und wirkt sich nicht auf die Verarbeitungslatenz unter normalen Bedingungen aus.

Verhalten bei einem Zoneausfall

In diesem Abschnitt wird beschrieben, was Sie erwarten müssen, wenn Stream Analytics-Aufträge zonenredundant sind und ein Ausfall der Verfügbarkeitszone vorhanden ist.

  • Erkennung und Reaktion: Die Stream Analytics-Plattform ist dafür verantwortlich, einen Fehler in einer Verfügbarkeitszone zu erkennen und darauf zu reagieren. Stream Analytics kennzeichnet Mitarbeiter in der fehlgeschlagenen Zone als ungesund und verteilt Aufträge automatisch an Mitarbeiter in den verbleibenden fehlerfreien Zonen. Sie müssen keine Maßnahmen ergreifen, um ein Zonenfailover zu initiieren.
  • Benachrichtigung: Microsoft benachrichtigt Sie nicht automatisch, wenn eine Zone deaktiviert ist. Sie können jedoch Azure Resource Health verwenden, um den Status einer einzelnen Ressource zu überwachen, und Sie können Ressourcenintegritätswarnungen einrichten, um Sie über Probleme zu informieren. Sie können auch Azure Service Health verwenden, um die allgemeine Integrität des Diensts zu verstehen, einschließlich jeglicher Zonenfehler, und Sie können Dienststatuswarnungen einrichten, um Sie über Probleme zu informieren.
  • Aktive Anforderungen: Stream Analytics verschiebt die Ausführung von Aufträgen zu einem anderen Mitarbeiter in einer fehlerfreien Verfügbarkeitszone.

    Stream Analytics verwendet Prüfpunkte, um den Verarbeitungszustand aufrechtzuerhalten. Während eines Zonenfehlers verarbeiten Mitarbeiter in fehlerfreien Zonen automatisch Aufträge, die in der fehlerhaften Zone ausgeführt werden, vom letzten Prüfpunkt aus.

  • Erwarteter Datenverlust: Das Auftragsprüfsystem stellt sicher, dass keine Datenverluste auftreten.

  • Erwartete Ausfallzeiten: Aufträge, die ausgeführt werden, werden automatisch fortgesetzt, nachdem die Plattform sie zu einem fehlerfreien Mitarbeiter verschoben hat.

  • Datenverkehrsumleitung: Der Dienst leitet automatisch alle neuen Eingabedaten an Mitarbeiter in fehlerfreien Zonen weiter. Bestehende Verbindungen aus Eingabequellen werden mit Mitarbeitern in Betriebszonen neu aufgebaut. Ausgabeverbindungen werden ähnlich wiederhergestellt, wodurch ein kontinuierlicher Datenfluss über Ihre Streamingpipeline sichergestellt wird.

Zonenwiederherstellung

Wenn die fehlgeschlagene Verfügbarkeitszone wiederhergestellt wird, integriert Stream Analytics sie automatisch in den aktiven Verarbeitungspool. Jobs beginnen die wiederhergestellte Infrastruktur zu nutzen.

Sie ergreifen keine Maßnahmen für die Zonenwiederherstellung. Die Plattform behandelt alle Zonenwiederherstellungsaufgaben, einschließlich Zustandsreplikation und Workloadumverteilung.

Test auf Zonenfehler

Die Stream Analytics-Plattform verwaltet die Verkehrslenkung, Failover und Zonenwiederherstellung, sodass Sie keine Ausfallprozesse von Verfügbarkeitszonen initiieren oder prüfen müssen.

Widerstandsfähigkeit bei regionalen Ausfällen

Stream Analytics stellt Ressourcen in einer einzelnen Azure-Region bereit. Wenn die Region nicht verfügbar ist, sind Ihre Aufträge (und dedizierte Cluster, falls zutreffend) ebenfalls nicht verfügbar.

Benutzerdefinierte Lösungen mit mehreren Regionen für Resilienz

Um die Resilienz mehrerer Regionen für Ihre Streamingworkloads zu erreichen, sollten Sie separate Aufträge in mehreren Regionen bereitstellen. Wenn Sie diesen Ansatz verfolgen, sind Sie für die Bereitstellung und Verwaltung der Aufträge und für die Einrichtung der entsprechenden Datenrouting- und Replikationsstrategien verantwortlich. Die Stream Analytics-Aufträge sind zwei separate Entitäten. Es liegt in der Verantwortung Ihrer Anwendung, Eingabedaten sowohl an regionale Eingaben zu senden als auch die regionalen Ausgaben abzugleichen. Weitere Informationen finden Sie unter Erreichen von Georedundanz für Stream Analytics-Aufträge.

Sicherung und Wiederherstellung

Stream Analytics verfügt nicht über ein integriertes Sicherungs- und Wiederherstellungsfeature.

Wenn Sie die Definition und Konfiguration Ihrer Aufträge verschieben, kopieren oder sichern möchten, können Sie die Stream Analytics-Erweiterung für Visual Studio Code verwenden, um einen vorhandenen Auftrag in der Azure-Cloud auf Ihren lokalen Computer zu exportieren. Nachdem Sie die gesamte Konfiguration Ihrer Stream Analytics-Aufträge lokal gespeichert haben, können Sie sie in derselben Region oder einer anderen Azure-Region bereitstellen. Weitere Informationen finden Sie unter Kopieren, Sichern und Verschieben Ihrer Stream Analytics-Aufträge.

Resilienz gegenüber Wartungsarbeiten an Diensten

Stream Analytics führt automatische Plattformwartung durch, um Sicherheitsupdates anzuwenden, neue Features bereitzustellen und die Dienstzulässigkeit zu verbessern. Möglicherweise werden Dienstupdates wöchentlich oder häufiger bereitgestellt. Stream Analytics testet alle neuen Updates, um eine hohe Qualität sicherzustellen.

Beachten Sie die folgenden Punkte, um sicherzustellen, dass Ihre Aufträge widerstandsfähig gegenüber Wartungsarbeiten sind:

  • Richten Sie Aufträge ein, die gegenüber Wiederholungen widerstandsfähig sind. Stream Analytics verwendet in der Regel Prüfpunkte, um Daten nach der Wartung des Diensts wiederherzustellen. Manchmal muss es aber stattdessen eine Wiedergabetechnik verwenden. Sie müssen Ihre Eingabedatenquellen so einrichten, dass Wiederholungen keine falschen oder teilweisen Ergebnisse in der Ausgabe verursachen. Weitere Informationen finden Sie unter Auftragswiederherstellung von einem Dienstupgrade.

  • Erwägen Sie, das Risiko von Fehlern zu verringern, indem Sie identische Aufträge bereitstellen. Der Dienst sucht proaktiv nach Signalen nach der Bereitstellung für jeden Batch, um zu überprüfen, ob bei der Bereitstellung Fehler auftreten. Aber unabhängig davon, wie viel Sie testen, kann ein vorhandener laufender Auftrag fehlschlagen, wenn die Wartung ein Problem verursacht. Wenn Sie unternehmenskritische Aufträge ausführen, ergreifen Sie Schritte, um dieses Risiko zu minimieren.

    Sie können das Risiko eines Fehlers verringern, der Sich auf Ihre Workload auswirkt, indem Sie identische Aufträge in zwei Azure-Regionen bereitstellen. Überwachen Sie diese Aufträge , um Benachrichtigungen zu erhalten, wenn etwas unerwartetes auftritt. Wenn einer dieser Aufträge nach einem Stream Analytics-Dienstupdate in einen fehlgeschlagenen Zustand wechselt, führen Sie die folgenden Aktionen aus:

    • Wenden Sie sich an den Azure-Support , um die Ursache zu identifizieren und das Problem zu beheben.
    • Schalten Sie alle nachgeschalteten Verbraucher auf die fehlerfreie Ausgabe des Jobs um.

    Wenn Sie Azure-Regionen auswählen, die für Ihren sekundären Auftrag verwendet werden sollen, überlegen Sie, ob Ihre Region über eine gekoppelte Region verfügt. Die Liste der Azure-Regionen enthält die aktuellsten Informationen darüber, welche Regionen gepaart sind. Stream Analytics garantiert, dass die Infrastruktur in gekoppelten Regionen zu unterschiedlichen Zeiten aktualisiert wird. Updates für Stream Analytics werden nicht gleichzeitig in einer Reihe von gekoppelten Regionen bereitgestellt. Es besteht eine ausreichende Zeitlücke zwischen den Updates, um potenzielle Probleme zu identifizieren und zu beheben.

Service-Level-Vereinbarung

Der Service level agreement (SLA) für Azure-Dienste beschreibt die erwartete Verfügbarkeit jedes Diensts und die Bedingungen, die Ihre Lösung erfüllen muss, um diese Verfügbarkeitserwartungen zu erreichen. Weitere Informationen finden Sie unter SLAs für Onlinedienste.

Stream Analytics bietet separate Verfügbarkeits-SLAs für API-Aufrufe zum Verwalten von Aufträgen und für die Vorgänge der Aufträge.