Lösungsmöglichkeiten
In diesem Artikel ist ein Lösungsvorschlag beschrieben. Ihr Cloudarchitekt kann diesen Leitfaden verwenden, um die Hauptkomponenten einer typischen Implementierung dieser Architektur zu visualisieren. Verwenden Sie diesen Artikel als Ausgangspunkt, um eine gut durchdachte Lösung zu entwerfen, die den spezifischen Anforderungen Ihrer Workload entspricht.
In diesem Artikel wird eine Variante einer serverlosen ereignisgesteuerten Architektur beschrieben, die auf Azure Kubernetes Service (AKS) mit einem KEDA-Scaler ausgeführt wird. Die Lösung erfasst einen Datenstrom, verarbeitet die Daten und schreibt die Ergebnisse dann in eine Back-End-Datenbank.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Datenfluss
- AKS mit dem KEDA-Scaler wird für die automatische Skalierung von Azure Functions-Containern basierend auf der Anzahl der zu verarbeitenden Ereignisse verwendet.
- Ereignisse treffen beim Eingabeereignis-Hub ein.
- Die Azure-Funktion zum Debatchieren und Filtern wird ausgelöst, um das Ereignis zu behandeln. In diesem Schritt werden unerwünschte Ereignisse herausgefiltert, und die empfangenen Ereignisse werden vor der Übermittlung an den Ausgabeereignis-Hub als Batches zurückgesetzt.
- Wenn die Azure-Funktion zum Debatchieren und Filtern das Ereignis nicht erfolgreich speichern kann, wird das Ereignis an den Deadletter Event Hub 1 übermittelt.
- Ereignisse, die beim Ausgabeereignis-Hub eintreffen, lösen die Azure-Funktion zum Transformieren aus. Diese Azure-Funktion transformiert das Ereignis in eine Nachricht für die Azure Cosmos DB-Datenbank.
- Das Ereignis wird in einer Azure Cosmos DB-Datenbank gespeichert.
Komponenten
- Azure Kubernetes Service (AKS) vereinfacht die Bereitstellung eines Managed Kubernetes-Clusters in Azure, indem der betriebliche Aufwand in Azure ausgelagert wird. Azure führt als gehosteter Kubernetes-Dienst wichtige Aufgaben aus, z. B. Systemüberwachung und Wartung.
- KEDA ist eine ereignisgesteuerte Autoskalierung, die zum Skalieren von Containern im Kubernetes-Cluster basierend auf der Anzahl der zu verarbeitenden Ereignisse verwendet wird.
- Der Datenstrom wird mit Event Hubs erfasst. Event Hubs ist für Datenstromszenarien mit hohem Durchsatz konzipiert.
- Azure Functions ist eine serverlose Computeoption. Es wird ein ereignisgesteuertes Modell verwendet, bei dem ein Codeabschnitt (eine Funktion) durch einen Trigger aufgerufen wird.
- Azure Cosmos DB ist ein Datenbankdienst mit mehreren Modellen, der in einem serverlosen, verbrauchsbasierten Modus verfügbar ist. Für dieses Szenario speichert die Funktion für die Ereignisverarbeitung JSON-Datensätze mithilfe von Azure Cosmos DB for NoSQL.
Hinweis
Für Internet der Dinge (IoT)-Szenarien empfehlen wir Azure IoT Hub. IoT Hub verfügt über einen integrierten Endpunkt, der mit der Azure Event Hubs-API kompatibel ist, sodass Sie beide Dienste in dieser Architektur ohne größere Änderungen bei der Back-End-Verarbeitung nutzen können. Weitere Informationen finden Sie unter Verbinden von IoT-Geräten mit Azure: IoT Hub und Event Hubs.
Szenariodetails
In diesem Artikel wird eine serverlose ereignisgesteuerte Architektur behandelt, die in AKS mit einem KEDA-Scaler ausgeführt wird. Die Lösung erfasst einen Datenstrom, verarbeitet die Daten und schreibt die Ergebnisse dann in eine Back-End-Datenbank.
Mögliche Anwendungsfälle
Ein beliebter Anwendungsfall für die Implementierung eines End-to-End-Ereignisdatenstrom-Verarbeitungsmusters ist der Event Hubs-Streamingerfassungsdienst zum Empfangen und Verarbeiten von Ereignissen pro Sekunde mithilfe einer Debatching- und Transformationslogik, die mit hochgradig skalierbaren, durch Event Hub ausgelösten Funktionen implementiert wird.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautor:
- Rajasa Savant | Senior Software Development Engineer
Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.