Thomas Claudius Huber Trivadis Services AG

„Mit den Azure Event Hubs hat Microsoft einen Dienst im Portfolio, mit dem sich Millionen von Events per Sekunde erfassen lassen.“

Mit den Azure Event Hubs hat Microsoft einen Dienst im Portfolio, mit dem sich Millionen von Events per Sekunde erfassen lassen. Anwendungsszenarien gibt es viele: Beispielsweise könnte eine gewöhnliche Anwendung Telemetriedaten an den Event Hub senden. Ebenso ist es denkbar, dass Windkrafträder, Kühlschränke oder Raspberry Pis Sensordaten an einen Event Hub übermitteln – typischerweise das, was man sich unter IoT vorstellt. Mit einem Stream Analytics Job lässt sich der Event Stream aus dem Event Hub auslesen und für die Weiterverarbeitung mit einer SQL-ähnlichen Syntax aggregieren. Die aggregierten Daten lassen sich dann bspw. in Echtzeit in einem Live-Dashboard in Power BI anzeigen. Genau dieses Szenario wird in diesem Artikel beschrieben – von der Anwendung über einen Event Hub über Stream Analytics hin zum Power-BI-Live-Dashboard.

Microsoft hat mit der „Cloud-first and Mobile-first“-Strategie richtig an Fahrt aufgenommen. Was heute mit Microsoft Azure für jeden Entwickler in einfachen Schritten möglich ist, war vor ein paar Jahren noch nahezu undenkbar. So lässt sich mit etwas Know-how bereits ein hochskalierendes Backend zum Verarbeiten von Millionen von Events konfigurieren. Wie das geht, wird in diesem Artikel beschrieben. Los geht’s mit einem Blick auf das „Big Picture“.

Das „Big Picture“

Die in diesem Artikel erstellte Architektur ist in Abbildung 1 dargestellt: Endgeräte senden Events an einen Azure Event Hub. Ein Stream Analytics Job liest den Event Stream aus dem Event Hub aus und aggregiert gegebenenfalls die Daten mit einer SQL-ähnlichen Abfragesprache. Der Stream Analytics Job kann die Daten in verschiedene Outputs schieben – in eine Azure-SQL-DB, in einen Table Storage, in einen weiteren Event Hub usw. In diesem Artikel ist der Output des Stream Analytics Jobs wie in Abbildung 1 dargestellt Power BI. In Power BI lässt sich ein Live-Dashboard erstellen, das die aktuellen Daten nahezu in Echtzeit darstellt.

Abb. 1: Klassische Architektur mit Event Hub, Stream Analytics und Power BI

Abb. 1: Klassische Architektur mit Event Hub, Stream Analytics und Power BI

In Abbildung 1 sind die Event-Produzenten Raspberry Pis. Doch das sendende Gerät ist beliebig: Es kann ein Kühlschrank, ein Toaster, ein Windrad, ein Motor, ein Smartphone oder beispielsweise auch ein ganz normaler PC sein. Letzten Endes ist es einfach ein Stück Software, das auf irgendeiner Art von Gerät oder sogar ebenfalls als Job in der Cloud läuft. Und diese Software sendet Events an den Event Hub.

Szenarien für eine solche Event-getriebene Architektur gibt es viele. So könnte eine gewöhnliche Anwendung Telemetriedaten an einen Event Hub senden. Die Telemetriedaten ermöglichen Informationen über die Nutzung der Anwendung. Ebenso ist es denkbar, dass Geräte mit Sensoren aktuelle Sensordaten an den Event Hub liefern. Beispielsweise könnten Windräder die aktuell produzierten Kilowatt pro Stunde an den Energiedienstleister in Echtzeit überliefern. Es gibt keine Grenzen.

In diesem Artikel werden keine Raspberry Pis wie in Abbildung 1 eingesetzt, da dies den Umfang des Artikels hinsichtlich Hardwareintegration sprengen würde. Stattdessen wird eine kleine WPF-Applikation verwendet, die den Event Hub mit Events füttert. Damit lässt sich auf einfache Weise das ganze Szenario vom Client über den Event Hub über den Stream Analytics Job zum Power-BI-Live-Dashboard durchspielen. Mehr zu der verwendeten WPF-Applikation als Event-Sender erfahren Sie nach dem Erstellen des Event Hubs.

Azure Event Hubs

Über das Azure-Portal lässt sich auf einfache Weise ein Event Hub erstellen. Nach dem Einloggen in das Azure-Portal wird über das + eine neue Ressource angelegt. Unter der Kategorie Internet of Things (IoT) befindet sich das Element „Event Hubs“. Damit lässt sich ein neuer Namespace für Event Hubs erstellen. Ein Event Hub als solcher gehört immer zu einem Event Hub Namespace. Dieser wiederum kann bis zu zehn Event Hubs enthalten. Wird im Azure-Portal auf das Element Event Hubs geklickt, öffnet sich der „Blade“ – so werden die einzelnen, horizontal nebeneinander geöffneten „Fenster“ im Azure-Portal genannt – zum Erstellen des Event Hub Namespace. Nach der Eingabe eines Namespace-Namens – in unserem Beispiel „WinDeveloper-EH-NS“ – und der Angabe einer Ressourcengruppe lässt sich der Event Hub Namespace durch einen Klick auf den Create-Button anlegen (mehr Infos zu Ressourcengruppen finden sich im zugehörigen Infokasten).

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 2.17 - "Einblicke mit Azure"

Alle Infos zum Heft
579758298Azure Event Hubs ermöglichen die IoT-Infrastruktur
X
- Gib Deinen Standort ein -
- or -