© StonePictures/Shutterstock.com
Vollautomatisierte Pipelines als erster Schritt zum Erfolg

IoT im DevOps-Zeitalter


Für Verbraucher ist das Internet der Dinge längst in den Alltag vorgedrungen, sei es über Heimautomatisierung, intelligente Fahrzeuge oder E-Health-Szenarien. Auch im industriellen Kontext werden seit einiger Zeit vermehrt IIoT-Projekte (Industrial Internet of Things) umgesetzt. Hiervon verspricht man sich eine Verbesserung der Effizienz, des Ertrags und auch der Qualität [1].

Durch intelligentere Maschinen wird auch die Produktion selbst intelligenter. Während der Proof of Concept meist nur aus der Visualisierung von Daten besteht, wird der eigentliche Mehrwert erst dadurch erzielt, dass weitere Prozessschritte automatisiert werden oder Wissen aus den Daten abgeleitet wird. Nur durch die kontinuierliche Arbeit am Produkt und mit den Daten entstehen ständige Verbesserungen. Das lässt sich nicht erreichen, indem man einmal zu Projektbeginn die Pflichten zusammenschreibt. Vielmehr müssen verschiedene Kompetenzen und Verantwortungen vereint werden, um in einem fortlaufenden Prozess die Entwicklung voranzubringen.

DevOps in IoT-Projekten

„DevOps ist die Vereinigung von Menschen, Prozessen und Produkten, um einen kontinuierlichen Mehrwert an den Endnutzer zu liefern“ [2]. Mit diesem Zitat bringt Donovan Brown, Principal DevOps Manager bei Microsoft, das Thema DevOps ganz gut auf den Punkt. Denn bei DevOps geht es darum, einen kontinuierlichen Mehrwert für den Endnutzer zu schaffen.

DevOps besteht aus verschiedenen Aspekten, die die bessere Kollaboration zwischen Dev und Ops fördern sollen. Die Kollaboration findet dabei im gesamten Entwicklungsprozess statt und wird durch Continuous Integration und Continuous Feedback geprägt. Während es bei Continuous Integration um den automatischen Test des aktuellen Codestands und sein automatisches Ausliefern in Systeme geht, beschäftigt sich Continuous Feedback damit, wie der Zustand dieser Systeme überwacht werden kann.

Viele der Aspekte von DevOps können auch bei IoT-Projekten angewendet werden. Im Folgenden wollen wir einige davon anhand eines konkreten Projekts weiter beleuchten. Dabei fokussieren wir uns technisch auf einen hohen Grad an Automatisierung im Microsoft-Azure-IoT-Edge-Umfeld.

Das Szenario

Um an die besagten Maschinendaten zu gelangen, muss die Maschine mit ihren Sensoren einen geeigneten Weg haben, diese Daten an eine zentrale Stelle zur Auswertung zu übertragen. An dieser Stelle kommen die sogenannten Edge-Devices ins Spiel und bringen im IIoT-Umfeld diverse Vorteile mit sich. Sie dienen als Gateway zwischen Maschinen oder Sensoren und dem Internet, weshalb man sie meist auch als IoT-Gateway oder Edge-Gateway bezeichnet. Das schränkt nicht nur die Angriffsfläche ein, da nur noch ein Device aus dem Internet erreichbar sein muss, sondern bündelt auch jegliche Kommunikation an einem Punkt. Über das Edge-Device können so im Vorfeld schon Daten aggregiert, gefiltert oder angereicht werden. Außerdem kann sichergestellt werden, dass etwa bei einem Ausfall der Internetverbindung Maschinen, die über das Edge-Device kommunizieren, immer noch miteinander sprechen können. Auch Nachrichten, die in dieser Zeit verlorengehen würden, können im Edge-Device zwischengespeichert und, sobald das Internet wieder erreichbar ist, erneut verschickt werden.

Mit Azure IoT Edge [3] bietet Microsoft die Möglichkeit, Workloads als Container aus der Cloud auf Edge-Devices auszuliefern und dort auszuführen. Dazu wird die Azure IoT Edge Runtime [4] auf den Edge-Devices installiert, die sich dann um die Provisionierung der Devices gegen den Azure IoT Hub [5] und die Installation und Ausführung der Container kümmert. Auch Szenarien wie Offlinefähigkeit werden von Azure IoT Edge unterstützt.

Für unser Szenario betrachten wir den in Abbildung 1 dargestellten Aufbau: unsere Maschinen (Taktstraße) besitzen Sensoren und Aktoren, die über eine Siemens-S7-Steuerung [6] angesprochen werden. Dabei wollen wir nicht, dass unsere Maschinen direkten Kontakt zum Internet haben, weshalb sie mit unserem Maschinennetzwerk verbunden sind. Die Kommunikation erfolgt dann über das Edge-Device, das sowohl mit dem Maschinennetzwerk als auch mit dem Internet verbunden ist. So steuert das Edge-Device die Kommunikation zwischen Maschinen und Internet.

bader_ruemmler_devops_1.tif_fmt1.jpgAbb. 1: Vernetzung von Maschinen ins Internet

Um nun Daten von unserer Maschine zu erhalten und ins Internet zu schicken, benötigen wir noch eine Schnittstelle, um die Daten von der Maschine auszulesen. Hier hat sich zum Glück OPC UA [7] weitgehend als Standard verbreitet. Um die Daten auszulesen, nutzen wir also den OPC-UA-Server auf unserer Siemens-Steuerung. Jetzt müssen wir nur noch einen OPC-UA-Client verwenden, der sich mit dem OPC-UA-Server verbindet und bei Datenänderungen diese geänderten Daten ins Internet weiterleitet. Hier kommt ebenfalls das Edge-Device ins Spiel. Wie bereits angesprochen, können Workloads als Container (sogenannte Module) in Azure IoT Edge auf dem Edge-Device ausgeführt werden. Für ein solches Szenario gibt es von Microsoft bereits ein offizielles Modul namens OPC Publisher. Es läuft auf dem Edge-Device, verbindet sich mit vorkonfigurierten OPC-UA-Servern und schickt die Daten an einen Azure IoT Hub weiter. Von dort können die Daten dann in der Cloud weiterverarbeitet werden.

Zusätzlich möchten wir natürlich auch noch Feedback von unseren Geräten bekommen. Denn proaktives Feedback ist wichtig, um frühzeitig auf Probleme aufmerksam zu werden. Auch hier kann uns das Edge-Device helfen, indem über eigene Module der Zustand a...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang