#JAVAPRO #Cloud #IoT ||

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 dient.

Cloud ist die Plattform, um industrielle Software-Anwendungen zu betreiben und die weltweite Vernetzung von System und Anlagen zu ermöglichen. 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 z.B. IBM sowie 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 Internetumgebung zu betreiben. Es gibt Ähnlichkeiten zwischen cloud-basierten 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 Cyber-Sicherheitsrisiken 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% aus den USA, 17% aus Asien und zu 0% aus Europa kommen. Letztendlich muss es das Ziel sein, eine austauschbare und erweiterbare Lösung für das eigene Unternehmen zu entwickeln, die auf einer offenen Cloud-Service-Architektur und einem 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 heute integrierbar, austauschbar und die gegenseitigen Abhängigkeiten auf ein Minimum zu reduzieren. Moderne Lösungen haben die Anforderung, bestehende Services und Komponenten auch von Drittanbietern zu integrieren. Dazu ist es erforderlich, dass eine offene Cloud-Service-Architektur entwickelt wird, welche die Grundlage für den technischen Erfolg der kompletten Lösung darstellt. Die populärste Software-Architektur für Cloud-basierte IoT-Plattformen ist die Microservice-Architektur. Ein agiler Software-Entwicklungsansatz wie Lean-UX ist ein weiterer elementarer Grundpfeiler. Dazu braucht es noch Techniken wie Continuous-Delivery. Continuous-Delivery nutzt virtuelle Umgebungen wie z.B. Docker, um Änderungen in Minuten online stellen zu können, anstelle von Tagen, Wochen oder Monaten. Diese virtualisierte Anwendungsschicht wird als Container-as-a-Service (CaaS) bezeichnet. 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.

 

Digitales Unternehmen. (Abb. 1)

Digitales Unternehmen. (Abb. 1)

(Abb. 1) illustriert eine mögliche reale Umgebung, die virtuell durch Services abgebildet werden soll. Anhand dieser Grafik werden einige Punkte diskutiert, um solch eine virtuelle Welt im Unternehmen zu etablieren.

Was ist eine Microservices-Architektur?

In den letzten Jahren hat die Microservice-Architektur, oder einfach Microservices, an Popularität gewonnen. Sie ist eine unverwechselbare Methode zur Entwicklung von Software-Systemen. Der Microservice-Architektur-Ansatz ist für viele Entwickler der bevorzugte Weg, um insbesondere Lösungen wie Cloud-Anwendungen oder IoT-Plattformen zu erstellen. Aufgrund ihrer Flexibilität und Erweiterbarkeit 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
Software-Komponenten, die als eine Gruppe von schlanken, unabhängig einsetzbaren, kleinen modularen Diensten angesehen werden kann.

MicroProfile.io hat bereits im Jahr 2016 eine Community gegründet, die sich mit der Innovation rund um Microservices beschäftigt. Sie wird von der Java-EE-Community, darunter eine Reihe von Java-Benutzergruppen und Enterprise-Java-Anbietern wie IBM, RedHat, Tomitribe und Payara unterstützt. Der IBM-Liberty-Application-Server ist eine besonders gute Umgebung für die Entwicklung und den Betrieb von MicroProfile-Anwendungen. Die IBM hat ihren Liberty-Application-Server der Open-Source-Welt zur Verfügung gestellt. Entwickler können Liberty herunterladen und vollständige Java-EE- und MicroProfile-Anwendungen oder Microservices für Open-Liberty entwickeln.

Microservices und Cloud-Computing sind bei der Business-Lösungsentwicklung auf dem Vormarsch. Aber was genau ist die Verbindung zwischen den beiden Technologien? Wenn Microservices-Komponenten in einem Container-Environment 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 Legoblock, der in einen Applications-Stack eingesteckt werden kann. Wie die Services nun miteinander kommunizieren hängt von den Anforderungen der Anwendung ab. Viele Entwickler verwenden HTTP bzw. REST mit JSON. DevOps-Experten können natürlich jedes Kommunikationsprotokoll wählen, das sie für geeignet halten, aber in den meisten Fällen ist REST (Representational-State-Transfer) aufgrund seiner vergleichsweise geringeren
Komplexität gegenüber anderen Protokollen eine sehr gute Integrationsmethode.

Vorteile der Verlagerung von Unternehmensprozessen in die Cloud. (Abb. 2)

Vorteile der Verlagerung von Unternehmensprozessen in die Cloud. (Abb. 2)

Warum Cloud?

Dem Cloud-Computing werden Kostensenkung, größere Flexibilität, einfachere 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 spricht. Sie zeichnen sich dadurch aus, dass Programme und Daten nicht mehr zentral auf dem eigenen IT-Environment gespeichert werden. Ebenfalls von großem Vorteil sind Cloud-Environments bei der systematischen Auswertung großer Datenmengen (Big-Data). Diese ermöglichen neue Erkenntnisse und bessere Entscheidungen. 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 genutzt werden, z. B. Smartphones und Tablets, ist der Zugriff auf Daten und Applikationen in der Cloud noch einfacher. Es gibt somit viele Gründe für die Verlagerung von Unternehmensprozessen 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 einer bestimmten cloud-basierten Infrastruktur (IaaS) entwickelt. Deshalb bieten Cloud-Microservices wesentliche Vorteile, da die Anwendungsentwicklung flexible Cloud-Services (z.B. Datenbank, User-Management, PaaS) nutzt. Microservices und Cloud-Anwendungen ermöglichen dadurch unter Last eine deutlich bessere Skalierbarkeit. Richtig entworfene Microservices können horizontal und vertikal skalieren, was bedeutet, dass zusätzliche Instanzen der Services erstellt 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 die Microservices so konfiguriert sind, 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 die erste Version einer Lösung entwickelt wird, 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 sind Cloud und Microservices sicher der optimale Ansatz. Es gibt eine Reihe von Strategien, die bei der Aufteilung der Lösung helfen können:

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

Fazit und Ausblick

High-Level-Implementierung eines virtuellen Unternehmens. (Abb. 3)

High-Level-Implementierung eines virtuellen Unternehmens. (Abb. 3)

In (Abb. 3) wird eine mögliche High-Level-Implementierung des beschrieben virtuellen Unternehmens dargestellt. Für die Applikations-Virtualisierung bieten sich Docker-Container ideal für die Entwicklung von Microservices-Anwendungen an. Sie beschleunigen die Entwicklung, den Einsatz und das Rollback von Containern, die als eine Cloud-Lösung zusammengestellt wurden.

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 cloud-basierte 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.
  • Den richtigen Software-Development-Skill im eigenen Team etablieren.

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

Apache-OpenWhisk ist die nächste Stufe der Granularität bei der Service-Entwicklung und dem Betrieb von Cloud-Anwendungen. OpenWhisk ist eine ereignisgesteuerte Rechenplattform, die auch als Serverless-Computing oder als Function-as-a-Service (FaaS) bezeichnet wird. 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, aber Serverless-Computing bietet eine Lösung, die beides vereinfacht.

 

Werner Keil

Hans-Dieter Wehle, IBM Executive & Distinguished ITSpezialist (OG), studierte Wirtschaftsinformatik. Seit 2006 fokussiert sich H-D Wehle auf Business Digitalization und hier speziell auf Daten Integration, Analytik und Cloud-Computing Lösungen. Er leitete in diesen Bereichen verschiedene nationale/internationale IBM Forschungsprojekte. In seiner Laufbahn besetzte er verschiedene leitende Funktionen in unterschiedlichen nationalen und internationalen Unternehmungen. Aufgrund seiner Historie liegt sein
hauptsächlicher Lösungsschwerpunkt in der wertschöpfenden Industrie. Darüber hinaus arbeitet er als Dozent für Produktionstechnik/-Planung an verschiedenen nationalen und internationalen Hochschulen. H-D Wehle hat mehrere wissenschaftliche Publikationen auf den verschiedensten öffentlichen Plattformen veröffentlicht. Im Jahr 2016 gründete er an der DHBW Horb ein Steinbeis Transfer Zentrum für industrielle Digitalisierung, um die regionale Industrie zu unterstützen.

 

Carolyn Molski


Leave a Reply