Die Keynotes der ersten beiden Tage waren voller Highlights. In den folgenden Breakout-Sessions werden einige Ankündigungen im Detail vorgestellt. Hier und da gab es auch noch weitere Überraschungen. Auf diese werden wir in den kommenden Tagen gezielt eingehen.
Einen großen Block in den Sessions nahm natürlich das Thema Azure IoT ein. Für Azure IoT Edge wurden die verfügbaren Module (Azure Machine Learning, Azure Stream Analytics, Azure Functions und Cognitive Services) gezeigt. Als Anwendungsszenarien sieht Microsoft vor allem das Filtern und Aggregieren von Daten, bevor diese an den IoT-Hub gesendet werden und die schnellere Reaktionszeit z.B. bei Fehlerinvervention.
Dabei stellt sich natürlich sofort die Frage, wie leistungsfähig ein Endgerät sein muss, um Azure IoT Edge nutzen zu können. Die Anforderungen sind dabei verblüffend gering. Ein Rechenkern und 128 MB RAM sind ausreichend. Es gilt jedoch zu beachten, dass Azure IoT Edge eine containerbasierte Lösung ist, was vom Betriebssystem unterstützt werden muss. Aktuell wurde Azure IoT Edge erfolgreich unter Ubuntu 14.04, Ubuntu 15.10, Yocto Linux 3.0 on Intel Edison, Windows 10 und Wind River 7.0 getestet. Das SDK steht auf GitHub zum Ausprobieren bereit und bringt auch genug Beispiele mit, um direkt loslegen zu können.
Bei dem Thema Geräte geht es auch gleich weiter. Viele Ideen und Prototypen funktionieren mit einem oder wenigen Endgeräten fantastisch. In realistischen Szenarien kommen jedoch mehrere hundert oder tausend Geräte zum Einsatz. Die Provisionierung (initiale Konfiguration und Verbindung mit dem richtigen IoT Hub) der Geräte kann zu einem Alptraum werden. Mit der Enrollment List soll das Ganze nun deutlich einfacher werden. Ein neues IoT-Device meldet sich mit seiner ID beim IoT Hub Device Provisioning Service an und wird entsprechend der Enrollment List mit dem passenden IoT-Hub verbunden. Dieser IoT-Hub führt nun die initiale Konfiguration durch, indem ein passender Device Twin ausgerollt wird. Über die Device Twins kann ab diesem Zeitpunkt die Konfiguration für jedes angemeldete Gerät gesteuert werden. So wird sichergestellt, dass sobald ein Gerät online ist, die neuste Konfiguration verteilt wird. Die Konfiguration von IoT-Devices sollte ausschließlich über den Device Twin und seine Desired Properties durchgeführt werden – dieser Tipp ist wohl einer der Wichtigsten aus der Device Management Session. Die Nutzung von Cloud-to-Device-Messages oder Direct Methods ist aufgrund der zu geringen TTL und des interaktiven Verhaltens nicht zu empfehlen.
Wenn das Device nun verbunden und konfiguriert ist, müssen die anfallenden Daten auch sinnvoll ausgewertet werden. Einer der gebräuchlichsten Wege läuft aktuell vom IoT Hub über Azure Stream Analytics in Power BI Dashboards. Wesentliche Nachteile dieser Lösung können die Verdichtung der Daten via Analytics Stream und die vorkonfigurierten Auswertungen in Power BI sein.
Um zum Beispiel Analysten eine uneingeschränkte Sicht auf Daten zur Auswertung geben zu können, steht mit Azure Time Series Insights eine neue Alternative zur Verfügung. In Azure Time Series Insights werden die Roh-Daten vom IoT-Hub gespeichert und zur Auswertung steht ein umfangreiches Web-UI mit den Daten der letzten 30 Tage zur Verfügung. Der Zeitraum kann aktuell auf maximal 100 Tage erweitert werden. Sehr beeindruckend war die Performance bei der Auswertung. Datenmengen von mehreren hundertmillionen Datenpunkten pro Tag stellen keinerlei Probleme für das System dar. Um eine bessere Auswertung zu ermöglichen, können Referenzdaten aus verschiedensten Quellen genutzt werden. Alternative Darstellungen wie zum Beispiel Heat-Maps sind ein weiterer Schritt hin zu einer einfachen und schnellen Auswertbarkeit von großen Datenmengen.
Diese drei Neuerungen zeigen, dass Microsoft die Schmerzen und Hürden erkennt, die bei der Entwicklung von IoT-Szenarien auftreten und diese versucht zu beheben. Jetzt ist es an uns Entwicklern, die Technologien zum Einsatz zu bringen. Also schauen wir mal, ob die Versprechen auch alle gehalten werden können.