Cloud und Microservice Architektur

Cloudtechnologien und Microservice-Architekturen sind eng verknüpft mit der Umsetzung von IoT-Plattformen im Predictive-Maintenance-Bereich. Insbesondere Cloud Computing hat als Grundlage in der vorausschauenden Instandhaltung und Fernwartung eine enorme Bedeutung. Die Basis für unsere IoT-Plattformen bilden daher etablierte Docker- und Kubernetes-Technologien. Ziel dieses skalierbaren Cloud-Computing-Ansatzes ist es, IT-Infrastrukturen, -Plattformen und Software über das Internet bereitzustellen, ohne dass lokale Installationen notwendig sind. Sowohl die Bereitstellung an sich als auch die Nutzung dieser Leistungen wird einzig und allein durch Protokolle und Schnittstellen, meist über Webbrowser, realisiert. Das erlaubt es, den Remote Service effektiv sowie effizient in eine neue Generation zu führen und somit die Fernwartung und Instandhaltung zu optimieren.

Die Kommunikation mit der Cloud findet in direkter Verbindung mit intelligenten IoT Gateways statt, welche die Vorverarbeitung der Daten übernehmen. Das hat den Vorteil, dass diese auch offline möglich ist, die Kapazität der Cloud dadurch geringer sein kann und so eine kostengünstige Umsetzung realisiert wird. Zwischen den IoT Gateways und der Cloudtechnologie ist eine sogenannte Fog-Computing-Architektur zu finden. Fog Computing erlaubt, bestimmte Funktionen aus der Cloud zurück in Netzwerknähe zu bringen. Ziel ist es, die Datenlast (über die Cloud) zu reduzieren und die von Unternehmen verwendete Bandbreite zu entlasten. Dieser Ansatz ist im Zuge der Industrie 4.0 und des Internets der Dinge wichtig, da vor allem in der vorausschauenden Wartung und Instandhaltung viele vernetzte Maschinen gleichzeitig Daten übermitteln und diese auch verarbeitet werden. Mittels der Verbindung zwischen IoT Gateway, Fog und Cloud Computing wird nun eine Teilauswertung der Daten vorgenommen und für die Übertragung in die Cloud vorbereitet. Auch im Sinne des Datenschutzes ist dieser Ansatz vorteilhaft, da sensible Daten nicht in die Cloud überführt werden müssen, sondern vor Ort verbleiben.

Ein weiterer Aspekt der IoT-Plattform ist die dahinterliegende Microservice-Architektur. Statt einen großen Service bereitzustellen, erfolgt eine Zerlegung der Architektur in gesonderte, kleine Services, was eine schnelle Implementierung von Funktionalitäten erlaubt. Kurz: Die IT-Architektur ist modularisiert. Diese alleinstehenden Services sind meist für eine einzelne Aufgabe konzipiert, aber auf ebenjene spezialisiert. Zusammengenommen ergeben die einzelnen Services jedoch ein optimal aufeinander abgestimmtes Leistungspaket, wie zum Beispiel unser Kooperationsmodul weInspect. weInspect besitzt mehrere, voneinander unabhängige Funktionen (welche einzeln entwickelt, getestet, aktualisiert, entfernt und hinzugefügt werden können), die zusammen eine Applikation für die Zusammenarbeit zwischen Vor-Ort-Technikern und Remoteexperten bilden. So ist jedes Element des Moduls ein einzelner Microservice. Im Remote Service ermöglicht uns diese Flexibilität somit, noch stärker auf Kundenanforderungen einzugehen und individuelle Anpassungen umzusetzen.

Anforderungen an cloudbasierte IoT-Plattformen und Microservices

Cloud Computing und Microservices sind eng verbunden mit unseren Produkten wie beispielsweise weMonitor. Der Zusammenhang zwischen den Technologien ergibt sich hierbei aus den Anforderungen an das Produkt. Um diese zu identifizieren, müssen verschiedene Aspekte der Kundenbedürfnisse bei der optimalen Konfiguration beachtet werden:

(1) Verarbeitungsleistung: Im Zuge der vorausschauenden Instandhaltung ist die Überwachung vieler Maschinen gleichzeitig ein elementarer Bestandteil. Um den Anforderungen hinsichtlich der Datenmengen gerecht zu werden, muss die IoT-Plattform Millionen von Sensordaten pro Sekunde erfassen und zeitlich korrelieren. Es handelt sich hier um keinen klassischen Big-Data-Ansatz, sondern um die Echtzeit-Datenstream-Verarbeitung im IoT-Zeitalter (Fast Data). weMonitor unterstützt deshalb die Verarbeitung von bis zu 20 verschiedenen Sensorsignalen pro Maschine mit einer Abtastrate von bis zu 5 ms. Diese Sensorsignale werden zu Datenstreams umgewandelt. Hierbei schafft es weMonitor, die Datenstreams beliebig vieler Maschinen weltweit zu verwerten, über die Webapp darzustellen und zu visualisieren.

(2) Modularität, langfristige Nutzbarkeit, Flexibilität und Erweiterbarkeit: weMonitor ist als IoT-Plattform darauf ausgelegt, langfristig betreib- und nutzbar zu sein. Damit sich unsere Applikation den verändernden Rahmenbedingungen, Voraussetzungen und Kundenanforderungen anpassen kann, ist es notwendig, auf eine modulare und erweiterbare und IT-Umgebung zu setzen. Daher ist auch die zusätzliche und künftige Integration weiterer Services, wie zum Beispiel ein umfangreicheres Alerting, Machine Learning oder erweiterter Analytic Module umsetzbar. Auch hier wird der Microservice-Gedanke aufgegriffen, da zusätzliche Module nur lose mit dem Basissystem gekoppelt sind und so weiterhin Flexibilität beibehalten wird.

(3) Skalierbarkeit, Ausfallsicherheit und Verfügbarkeit: weMonitor als IoT-Plattform ist an viele Maschinen weltweit angebunden. Daher sind Faktoren wie die Skalierbarkeit, Ausfallsicherheit und Verfügbarkeit bedeutsam für einen stabilen Betrieb unserer Applikation. Weil die Lastsituation von Maschinen und Anlagen stark variiert, ist eine dynamische und lastunabhängige Skalierung implementiert. Diese muss in einem sehr hohen Maße möglich sein, da hunderte Rechnerknoten bzw. zehntausende Microservice-Instanzen im Hintergrund agieren. Um weiterhin Ausfallsicherheit und eine stetige Verfügbarkeit zu gewährleisten, nutzen wir Mechanismen zur Selbstheilung der Plattform sowie die Implementierung von Rolling Updates.

Vorteile unserer IoT-Plattformen auf einen Blick

- Bereitstellung und Nutzung ohne zusätzliche Installationen

- Fog Computing zur Reduzierung der Datenlast

- Sensible Daten bleiben an Ort und Stelle

- Hohe Portabilität

- Rolling Updates zur stetigen Verbesserung

- Kostensparend durch niedrigen Ressourcenverbrauch

- Hohe Produktivität in der Entwicklung

- Breiter Community Support

- Schnelle Implementierung von neuen Funktionalitäten

- Selbstheilung auf Ebene der Microservices

- Microservice-basierte, flexible Skalierung

- Bessere Wartbarkeit durch kleinere, übersichtliche Microservices

- Voneinander unabhängige Entwicklung und Skalierung der Microservices