Über unsMediaKontaktImpressum
Hans-Dieter Wehle 16. Januar 2018

Cloud-Computing im industriellen Umfeld

Die Cloud-Computing-Technologie ist die heutige Basis für das Internet of Things (IoT) bzw. für Industrie 4.0. Das Internet der Dinge basiert auf einer Reihe von grundlegenden Technologien, wobei Cloud-Computing eines der zentralen Elemente ist und als Plattform für die Anwendungsbereitstellung, Verbindung von Geräten und Sammlung bzw. Aggregation von Daten in Echtzeit ist. Cloud ist somit die Plattform, um industrielle Softwareanwendungen zu betreiben und die weltweite Vernetzung von Systemen und Anlagen zu ermöglichen.

Die Automatisierung von weltweiten Prozessen, wie im Vertrieb oder in der Fertigung sind Schlüsselthemen in der Digitalisierung. Immer mehr Unternehmen setzen deshalb auf Cloud-Computing-Technologie als Teil einer umfassenden Industrie 4.0-Initiative. Sie greifen dafür auf Lösungen unterschiedlicher Technologieanbieter wie zum Beispiel IBM und/oder auf Open Source-Standards zurück. Cloud-Computing-Lösungen sind sichere und skalierbare Umgebungen für jeglichen industriellen Einsatz. Natürlich gibt es auch Herausforderungen, die angegangen werden müssen, um industrielle Anwendungen in einer industriellen Internet-Umgebung zu betreiben. Es gibt Ähnlichkeiten zwischen cloudbasierten Lösungen und herkömmlich industriellen Lösungen, aber hinsichtlich der Skalierbarkeit, Flexibilität, Sicherheit und Konnektivität gibt es signifikante Unterschiede. Durch die dynamisierte Wertschöpfungskette ergibt sich die Notwendigkeit, vertikal und horizontal "endlos" zu skalieren.

Sicherheit ist ein Basisbaustein für den Aufbau zukünftiger industrieller Systeme, welche den Cybersicherheitsrisiken ausgesetzt sind. Um weltweit verteilte Systeme, Anlagen oder ganze Fabriken aufzubauen, erfordert es weltweite Netzwerkzugänge, die weltweit operierende Cloud-Anbieter ermöglichen. Lokale Infrastruktur-Provider können kaum diesen globalen Ansatz erfüllen.

Eine Cloud-Skepsis ist sicherlich in deutschen Unternehmen vorhanden und verbirgt sich schon allein hinter der Tatsache, dass die Top 20-Cloud-Anbieter zu 73 Prozent aus den USA, zu 17 Prozent aus Asien und zu 0 Prozent aus Europa kommen. Letztendlich muss es das Ziel sein, eine austauschbare und erweiterbare Lösung für mein Unternehmen zu entwickeln, die auf einer offenen Cloud-Service-Architektur und State of the Art-Sicherheitsstandard basiert.

Heutige Anforderungen an industrielle Cloud-Lösungen

Software ist der Motor der Digitalisierung. Software hat generell in den letzten Jahren eine gewaltige Steigerung in seiner Bedeutung erfahren. Die derzeitigen Anforderungen an eine Cloud-Software-Lösung sind mehr denn je die Integration, Austauschbarkeit der Komponenten und die Verringerung von Abhängigkeiten auf ein Minimum. Moderne Lösungen haben die Anforderung, bestehende Services und Komponenten auch von Drittanbietern flexibel zu integrieren und auszutauschen. Nur moderne Software-Lösungen können zusammen mit der Cloud-Infrastruktur "endlos" skalieren und die sich damit ergebenden Möglichkeiten voll ausschöpfen.

Dazu ist es erforderlich, dass eine offene Cloud-Service-Architektur entwickelt wird, die die Grundlage für den technischen Erfolg der kompletten Lösung darstellt. Die populärste Software-Architektur für cloudbasierte IoT-Plattformen ist die Microservice-Architektur. Ein agiler Softwareentwicklungsansatz wie Lean UX ist ein weiterer elementarer Grundpfeiler. Mittels Continuous Delivery können Entwicklungszyklen dramatisch verkürzt werden. Continuous Delivery nutzt Virtualisierungsmöglichkeiten, wie z. B. Docker, um Änderungen in Minuten online zu stellen, anstatt in Tagen, Wochen oder Monaten. Diese virtualisierte Anwendungsschicht wird als Container-as-a-Service (CaaS) bezeichnet, welche die darunterliegende Infrastruktur abstrahiert. Natürlich sind moderne UI-Konzepte und Designs Pflicht, um intuitives Arbeiten zu ermöglichen. Nicht zuletzt sind die klassischen Anforderungen wie Datenschutz, Datensicherheit, Verfügbarkeit und Wartbarkeit wichtig für industrielle Cloud-Anwendungen.

Die folgende Abbildung "Digitales Unternehmen" illustriert eine mögliche reale Umgebung, die virtuell durch Services abgebildet werden soll. Anhand dieser Grafik diskutiere ich einige Punkte, um solch eine virtuelle Welt im Unternehmen zu etablieren.

Die Unternehmen haben heute vielfältige Digitalisierungs-Anforderungen durch Marktveränderungen jeglicher Art getrieben, die nur in einem virtuellen Unternehmen abbildbar sind. Automatisierung und Digitalisierung der Produktionsprozesse und Integration von Lieferanten (Digitale Fabrik), um ein Beispiel zu nennen. Die Kunden fordern immer mehr Unterstützung für wertschöpfende Prozesse durch intelligente und individuell anpassbare Lösungen. Daten müssen mit State of the Art-Visualisierungsmöglichkeiten weltweit und sicher zur Verfügung gestellt werden. Für all diese Dynamik braucht es eine professionelle und moderne Architektur.

Architektur-Ansatz: Microservices

In den letzten Jahren hat die Microservice-Architektur – oder einfach Microservices – an Popularität gewonnen. Sie ist eine unverwechselbare Methode zur Entwicklung von Softwaresystemen. Der Microservice-Ansatz ist für viele Architekten und Entwickler, besonderes für die Entwicklung von Cloud-Anwendungen oder IoT-Plattformen der bevorzugte Weg, um derartige Lösungen zu erstellen. Aufgrund ihrer Flexibilität, Erweiterbarkeit und Skalierbarkeit ist diese Architektur besonders geeignet für die Integration unterschiedlicher Anwendungen und Geräte wie z. B. Web-Anwendungen, Mobile Lösungen, Sensoren oder industrielle Anwendungen. Im Wesentlichen ist die Microservice-Architektur eine Methode zur Entwicklung von Softwarekomponenten, die als eine Gruppe von schlanken, unabhängig einsetzbaren, kleinen und modularen Diensten angesehen werden kann.

microprofile.io hat im Jahr 2016 eine Community gegründet, die sich mit der Innovation rund um Microservices beschäftigt [1]. Sie wird von der Java EE-Community, darunter eine Reihe von Java-Benutzergruppen und Enterprise Java-Anbietern wie IBM, Red Hat, Tomitribe und Payara, unterstützt. Die MicroProfile Version 1.0 wurde von der Community definiert und im Oktober 2016 bei JavaOne angekündigt. 

Der IBM Liberty Application Server ist eine Umgebung für die Entwicklung und den Betrieb von MicroProfile-Anwendungen. Die IBM hat ihren Liberty Applikation Server der Open Source-Welt zur Verfügung gestellt. Als Entwickler können Sie Open Liberty herunterladen und vollständige Java EE- und MicroProfile-Anwendungen oder Microservices für Open Liberty entwickeln [2].

Microservices und Cloud-Computing sind bei der Business-Lösungsentwicklung auf dem Vormarsch. Aber was genau ist die Verbindung zwischen den beiden Technologien? Wenn Microservice-Komponenten in einer Container-Umgebung entwickelt und betrieben werden, können sich die Komponenten einfach miteinander verbinden und so schnell kommunizieren. Im Gegensatz zu monolithischen Anwendungen können microservice-basierte Anwendungen selektiv skalieren und sind somit ideal für eine Cloud-Umgebung. Die Container sind schnell zu erstellen und zu automatisieren, um das Skalierungsverhalten zu steuern. Dies bedeutet, dass eine ordnungsgemäß konfigurierte Cloud-Bereitstellung der Container automatisch den Lastenausgleich zur Aufteilung des Anwendungsdatenverkehrs bewältigen kann. Schließlich können Unternehmen durch den Wechsel zu einer Microservice-Umgebung in wiederverwendbare Komponenten ​​investieren, die dann beliebig zusammensetzbar sind. Jeder Microservice verhält sich dann wie ein Lego-Block, der in einen Applikationsstack eingesteckt werden kann. Der zuvor angesprochen IBM Liberty Application Server wäre technologisch die Plattform für diese Entwicklungen.

Wie die Services nun miteinander kommunizieren, hängt von den Anforderungen Ihrer Anwendung ab. Viele Entwickler verwenden HTTP/ REST mit JSON. DevOps-Experten können natürlich jedes Kommunikationsprotokoll wählen, das sie für geeignet halten. In den meisten Fällen ist REST (Representational State Transfer) aufgrund seiner vergleichsweise geringeren Komplexität und der sehr guten Umsetzung in viele Programmiersprachen gegenüber anderen Protokollen eine sehr gute Option. 

Warum nun Cloud?

Cloud-Computing werden Kostensenkung, größere Flexibilität, einfache Integration, weltweite Verfügbarkeit und optimale Sicherheitsservices zugeschrieben. Integration von heterogenen Prozessen gehört ebenfalls zu den Gründen, die für eine Cloud-Umgebung sprechen. Sie zeichnen sich dadurch aus, dass Programme und Daten nicht mehr zentral auf dem eigenen IT-Environment gespeichert werden. Die systematische Auswertung großer Datenmengen (Big Data) ermöglicht neue Erkenntnisse und bessere Entscheidungen, wofür ebenfalls Cloud-Environments von großem Vorteil sind. Die Cloud ist ein Mittel zur Handhabung von Big Data-Anfragen, wie zum Beispiel Data Mining, Datenmodellierung und vorausschauende Analyse.

Mit der wachsenden Anzahl von webfähigen Geräten, die in den heutigen Geschäftsumgebungen (z. B. Smartphones, Tablets) genutzt werden, ist der Zugriff auf Daten und Applikationen in der Cloud noch einfacher. Zum Beispiel müssen für das Auftreten von vorhergesehenen und unvorhergesehenen Lastspitzen auch keine eigenen Ressourcen, wie in der klassischen IT, reserviert werden. Es gibt somit viele Gründe für die Verlagerung von Unternehmens-Prozessen in die Cloud.

Die neuen Wege, wie vernetzte Geräte mit der Computerwelt interagieren können, implizieren eine Erweiterung des herkömmlichen Computing-Modells. Konnektivität, Integration und Skalierbarkeit sind die zentralen Bausteine der Digitalisierung. Cloud-Anwendungen werden nicht unter Berücksichtigung der cloudbasierten Infrastruktur (IaaS) entwickelt. Die Anwendungsentwicklung ist auf Cloud-Services (z. B. Datenbank, Usermanagement, PaaS) angewiesen und deshalb bieten Cloud-Microservices wesentliche Vorteile.

Microservices und Cloud-Anwendungen ermöglichen unter Last eine deutlich bessere Skalierbarkeit. Richtig entworfene Microservices können horizontal und vertikal skalieren, was bedeutet, dass zusätzliche Instanzen der Services jederzeit erstellt und verworfen werden können, um auf die Arbeitslast zu reagieren. Damit dies ermöglicht wird, ist ein Mechanismus zum Lastausgleich (Load Balancer) zwischen den Instanzen erforderlich. Es ist einfacher, wenn Sie Ihre Microservices so konfiguriert haben, dass sie zustandslos sind. Dadurch kann die Leistung von Microservices und Cloud-Anwendungen gesteigert werden. Der Einfluss von Microservices auf die Leistung ist oft schwer einzuschätzen und nur durch sorgfältige Tests kann die bestmögliche Performance erreicht werden.


Wann sollte die Microservice-Architektur verwendet werden?

Eine Herausforderung bei der Verwendung dieses Ansatzes besteht darin, zu entscheiden, wann es sinnvoll ist, ihn zu verwenden. Wenn Sie die erste Version einer Lösung entwickeln, dann kann der Einsatz einer ausgeklügelten, verteilten Architektur möglicherweise die Entwicklung verlangsamen.

Wenn die Anforderungen an die Lösung Skalierung, schnelles Deployment, Austauschbarkeit der Komponenten und die Integration in heterogene Landschaften sind, dann ist eine Cloud-Umgebung und Microservices sicher der optimale Ansatz.

Es gibt eine Reihe von Strategien, die bei der Aufteilung der Lösung helfen können:

  1. Zerlegen und definieren nach Geschäfts-Domains bzw. Subdomains,
  2. Dekomposition nach Anwendungsfall und Definition von Diensten, die für bestimmte Aktionen verantwortlich sind, z. B. ein Versand-Service, Accounting-Service usw. und
  3. Zerlegen nach Ressourcen, z. B. LDAP, Datenbanken usw.

Fazit und Ausblick

Microservices und Cloud-Umgebungen im industriellen Einsatz können erhebliche Vereinfachungen und Vorteile mit sich bringen und gerade bei großen Projekten sind sie oft eine sehr sinnvolle Alternative. Der nichttechnische Vorteil dieses Lösungsansatzes ist das unabhängige Arbeiten der Teams. Das nachfolgende Bild zeigt die mögliche technische High-Level-Implementierung des beschriebenen virtuellen Unternehmens. Für die Applikations-Virtualisierung bieten sich Docker-Containers für die Entwicklung von Microservices-Anwendungen an. Sie beschleunigen die Entwicklung, den Einsatz und das Rollback von nicht benötigten Containern, die als eine Cloud-Lösung zusammengestellt wurden. Die Microservices können dann mit den unterschiedlichen Services von Cloud-Services Provider ergänzt bzw. kombiniert werden, wie z. B. Datenbank-Services (PaaS), Web-Services (PaaS) oder komplette Business-Services (SaaS).

Ob Uber, Ebay, Netflix, Amazon oder Salesforce – alle streben nach dem ultimativen Kundenerlebnis, dem noch besseren, perfekten Produkt bzw. Service und alle haben dafür eine cloudbasierte Microservices-Architektur bzw. -Lösung implementiert.

Bei der Entwicklung von Cloud-IoT-Lösungen sind folgende Prinzipien zu beachten:

  • Funktionierende Software hat Vorrang vor umfassender Dokumentation,
  • frühzeitige Fertigstellung funktionsfähiger Software hilft bei der Überprüfung von Markt- und Praxistauglichkeit,
  • kundenorientierte Zusammenarbeit hat Vorrang vor vertraglichen Absprachen,
  • flexible Anpassungen haben Vorrang vor der Einhaltung eines Plans,
  • Nutzung von IT- und Entwicklungsstandards: nicht in Silos denken! und
  • etablieren Sie in Ihrem Team den richtigen Software Development Skill 

Durch diesen Ansatz werden die Entwicklungszyklen stark verkürzt und ein schnelleres Go-to-Market ermöglicht.

Die nächsten Cloud-Evolutionsstufen sind Cloudfoundry und Apache OpenWhisk (IBM Cloud Functions, Amazon Lambda, ...) [3]. OpenWhisk ist die nächste Ebene der Granularität bei der Serviceentwicklung und dem Betrieb von Cloud-Anwendungen. OpenWhisk ist eine ereignisgesteuerte Rechenplattform, die zuvor definierten Code ausführt. Dies wird als Serverless Computing oder auch als Function-as-a-Service (FaaS) bezeichnet. OpenWhisk verbirgt die infrastrukturelle Komplexität, sodass Entwickler sich auf die Geschäftslogik konzentrieren können. DevOps und Kapazitätsplanung sind große Herausforderungen für die Unternehmens-IT. Serverless Computing bietet aber eine Lösung, die beides vereinfacht. 

Autor

Hans-Dieter Wehle

Hans-Dieter Wehle ist Experte für Internet of Things & Cloud-Computing, Business Digitalization, Daten-Integration, -Analytik und Cloud-Computing-Lösungen. Aktuell arbeitet er für die IBM Deutschland Research & Development GmbH.
>> Weiterlesen
botMessage_toctoc_comments_9210