Expertenbeitrag

B.Sc. Informatik Benjamin Ullrich

B.Sc. Informatik Benjamin Ullrich

Vorstand

Potential von Microservices Microservices als Wunderwaffe im Industrial Internet of Things

Um agil und unabhängig von Plattformen, einer Programmiersprache und anderen Unternehmen im Bereich Industrial Internet of Things (IIoT) zu bleiben, bietet sich der Einsatz von Microservices an.

Anbieter zum Thema

Abstrakte Visualisierung der Microservice-Struktur einer Ölraffinerie
Abstrakte Visualisierung der Microservice-Struktur einer Ölraffinerie
(articom / 123rf)

Microservices können das Leben spürbar erleichtern. Dabei handelt es sich um von der Oberfläche oder Technologie losgelöste kleine Dienste, die einzelne Aufgaben innerhalb eines Systems übernehmen – beispielsweise das Sammeln der Daten einer Maschine. Außerdem kann die Software modulartig aufgebaut und flexibel angepasst werden. Für die Implementierung in die bestehende Technologie müssen nur wenige Voraussetzungen erfüllt sein. Mit Microservices gelingt so ein schneller und agiler Start ins IIoT.

Eine Software-Architektur, die auf vielen kleinen abgeschlossenen Services basiert, wird als Microservice-Architektur bezeichnet. Ein Microservice stellt so eine Teilfunktion eines größeren Systems dar. Die Architektur teilt dabei ein Softwaresystem in eine Vielzahl einzelner, kleiner und unabhängiger Services auf - losgelöst von der Oberfläche oder der Technologie. Dabei bieten Microservices auch in ihrer Anwendung Unabhängigkeit: Im Gegensatz dazu würde eine monolithische Software, also eine Software, die alle Funktionen zentralisiert in sich vereint, Abhängigkeit von einer speziellen Plattform, Programmiersprache, Protokollen oder auch von einem Unternehmen erzeugen. Die Entwicklung basiert hierbei auf einer Plattform oder Technologie.

Ein Microservice ist immer in sich abgeschlossen und kann auf Basis einer beliebigen Technologie erstellt werden. Hierbei übernimmt jeder einzelne Service kleinere Aufgaben.

Benutzeroberfläche IoT-Microservices

Kleine Services, große Leistungen

Um die einzelnen Herausforderungen im Bereich IIoT meistern zu können, benötigen Unternehmen verschiedene Services: Das User- und Rechte-Management innerhalb aller Services eines Systems wird beispielsweise mithilfe eines Authentifizierungs- und Autorisierungs-Service verwaltet. Der Gateway-Service übernimmt das Sammeln aller Daten innerhalb einer Maschine, bündelt sie und gibt diese anschließend an den Data Lake weiter. Um die hier gesammelten Daten zur Verfügung zu stellen, wird ein Datenaufbereitungs-Service eingesetzt. Er verdichtet die Daten aus dem Data Lake beispielsweise über ein Data Warehouse und stellt diese aggregiert zur Verfügung. Um Ausfälle vorhersagen zu können, wird wiederum ein Predictive-Maintenance-Service eingesetzt. Dieser analysiert die Daten einer Maschine, teilweise in Echtzeit, und weist so frühzeitig auf Störungen hin. Die gesammelten Werte werden mithilfe des GUI-Service für den Nutzer anschließend dargestellt, etwa auf der Nutzeroberfläche eines Smartphones. Microservices erfüllen generell nicht mehrere Funktionen gleichzeitig, sondern spezialisieren sich auf eine Aufgabe.

Flexibler Einsatz von Microservices

Grundsätzlich können Microservices in allen Branchen und Bereichen eingesetzt werden, da es sich um eine losgelöste Software-Architektur handelt. Sie ist im Gegensatz zur monolithischen Software eine Bereicherung für das Unternehmen.

Hier ein Beispiel: Eine Getränkeabfüllanlage wird mit einer Condition Monitoring Software betrieben, die monolithisch in Java, beispielsweise von der Monolith AG, implementiert worden ist. Dabei treten allerdings Probleme auf: Wenn für diese Anlage eine Tablet-App entwickelt werden soll, kann ohne Authentifizierungs-Service kein Zugriff auf die User-Vergabe erfolgen. Damit dies möglich wird, muss man den Monolithen erst anpassen. Soll dann noch zusätzlich ein Algorithmus geschrieben werden, der die Abfüllgeschwindigkeit analysiert, muss dieser ebenfalls direkt an die Maschine angebunden sein. Dazu wird eine Schnittstelle zum Monolithen benötigt, die normalerweise nicht vorhanden ist, da es meistens keinen einzelnen Service für die Datenhaltung gibt. Um diese Herausforderungen zu lösen, muss das Unternehmen nun entweder die Monolith AG beauftragen (Lock-In Effekt) oder die Verantwortlichen wenden sich an eine Agentur, die in Java entwickeln kann. Doch die Programmierer der Agentur müssen sich zunächst in das monolithische System einarbeiten, was natürlich einen größeren Zeitaufwand und somit hohe Kosten bedeutet.

Sind aber für die Abfüllanlage definierte Microservices verwendet worden, kann jede beliebige Firma beauftragt werden, unter der Voraussetzung, dass die Schnittstelle bekannt ist. Das Unternehmen bleibt so weitgehend unabhängig und flexibel. Denn der modulare Aufbau ermöglicht eine flexible Anpassung der Software an die aktuellen Bedürfnisse. Aus diesem Grund ist der Einsatz von Microservices für ein Unternehmen kosteneffizient und zeitsparend.

Minimale Voraussetzungen für den Einsatz von Microservices

Die einzige Voraussetzung zur Implementierung eines Microservice ist, dass die Schnittstelle zur Kommunikation mit anderen Systemen zuvor definiert wurde. Da ein Microservice immer in sich abgeschlossen ist, kann dieser auf Basis einer beliebigen Technologie erstellt werden. Weitere Unabhängigkeit von anderen Systemen gewährleisten Microservices durch die eigene Datenhaltung.

Roboterarme in einem Automobilwerk

Da sie nur einen möglichst überschaubaren Bereich abdecken, können sie zudem einfach ersetzt oder neu gebaut werden: Beispielsweise kann ein SCRUM-Team einen Service innerhalb von einem Monat ohne Probleme entwickeln. Weiterhin ist es wichtig, dass Microservices horizontal skalierbar sind; sie können also einfach durch zusätzliche Rechenkapazität unendlich skaliert werden, ohne dass eine Software-Anpassung notwendig ist. Ebenfalls sollten Logging, Monitoring und Sicherheits-Methoden implementiert sein, um den Status insgesamt beobachtbar und sicher zu machen.

Grundsätzlich steht der Nutzen für die Anwender bei einem Microservice im Fokus. Deshalb ist bei der Implementierung darauf zu achten, so früh wie möglich eine benutzbare Version zu liefern, die iterativ verbessert werden kann. Nach der Implementierung können Microservices unabhängig vom gesamten System nachträglich angepasst, erweitert oder auch ersetzt werden.

Die Umsetzung dazu sollte in einem kleinen Team erfolgen. Nach SCRUM ist das üblicherweise eine maximale Personenanzahl von sieben Mitgliedern. Auch die Dauer der Umsetzung sollte überschaubar sein und nicht mehr als ein bis zwei Monate in Anspruch nehmen.

Unabhängigkeit im IIoT

Microservices garantieren Unabhängigkeit von einzelnen Technologien oder Plattformen. Gerade im Bereich Industrial Internet of Things (IIoT) ist diese wichtig, da bisher wenige Standards oder Plattformen etabliert sind und Unternehmen somit flexibel und unabhängig auf Entwicklungen reagieren müssen.

Besonders Microservices bieten dabei die Möglichkeit für modulare und individuell skalierbare Applikationen. So bleiben die Grundprinzipien einer guten Plattform wie Skalierbarkeit, Connectivity, Datenstandardisierung & Datenmanagement, Datenvisualisierung, Device und Service Management, externe Schnittstellen, Entwicklungsunterstützung sowie Sicherheitsfeatures intakt, sodass die Agilität des Unternehmens erhalten bleibt.