Blog per Mail folgen

Damit Sie nie wieder Blog Posts von uns versäumen!

Cloud First Plattform vs. konventioneller Systeme

Cloud Plattform

acs hat mit ElderByte das Konzept „Cloud first“ entwickelt, mit dem die Vorteile einer Cloud-basierten Architektur im Enterprise Umfeld in der Praxis erfolgreich realisiert werden können. Im Folgenden wird die Cloud-Plattform im Detail erklärt. 

Eine konventionelle System-Landschaft besteht aus mehreren Anwendungen installiert auf VMs, wo das Gastbetriebsystem alle Abhängigkeiten installiert haben muss. Die Applikationen müssen miteinander Daten austauschen. Dies geschieht über Peer-to-Peer-Schnittstellen, oft mit unterschiedlichen Technologien, die einzeln gepflegt werden müssen. Neue Dienste erfordern weitere Schnittstellen, die den zusätzlichen Teilnehmern den Zugang zum Datenstrom ermöglichen. Eine große Gefahr besteht in Bezügen und Abhängigkeiten, die irgendwann nicht mehr überschaubar sind; eine “Spaghetti Architektur” entsteht.

Cloud Plattform

Konzipieren und orchestrieren

Völlig anders funktioniert dagegen die Realisierung in der Cloud mit Kafka als einheitlicher Ort für die Datenübertragung. Basis bilden IaaS-Angebote wie Microsoft Azure oder AWS. Die nächste Schicht bildet die Container-Plattform, beispielsweise Kubernetes. Innerhalb dieser laufen einzelne Services, die in sich gekapselt sind als (Docker) Container. So können diese geändert oder ausgetauscht werden, ohne andere Funktionalitäten zu beeinträchtigen.

Dies ist ein völlig anderes Software-Konzept als das herkömmliche Programmieren: Aufgaben werden in Teilfunktionen zerlegt, die in jeweils eigenen Containern laufen oder als Microservices verfügbar sind. Für Standardfunktionen gibt es bereits oft frei verfügbare Container, die nur noch eingebunden werden müssen. Komplexere Funktionalitäten entstehen aus dem geordneten Zusammenspiel verschiedener Funktionen und Services – hier ersetzt die Orchestrierung einen Teil der Programmieraufgaben.

Dies ist meist der entscheidende Schritt, an der Programmierer umdenken müssen. Bisher standen die Datenbank und das Datenformat im Fokus, und damit der effiziente Zugriff auf die Daten sowie deren Verarbeitung. Beim Cloud-Computing gilt es dagegen, die gewünschten Funktionalitäten genau zu analysieren und in separate Services aufzuteilen. Hilfreich ist an dieser Stelle der Blick auf die Business-Prozesse – sie geben die eigentlichen Anforderungen vor, die sich in den Funktionen wiederfinden müssen. Weiter können die Business Units ausschlaggebend sein wie die Services aufgeteilt werden können.

Externe Dienste nach Bedarf

Darüber hinaus gibt es zahlreiche Cloud-Services, auf die man zurückgreifen kann, beispielsweise um Anwendungen der Bereiche Big-Data-Analyse, Machine Learning oder Künstlicher Intelligenz zu nutzen. Anders als bei Legacy-Systemen werden diese nicht in Form von Programmpaketen lizenziert und installiert, sondern bei Bedarf als Service eingebunden und meist in Pay-per-Use-Modellen oder auf Basis einer monatlichen Nutzungsgebühr abgerechnet.

Der Datenaustausch läuft über eine zentrale Kommunikationsschicht, auf die alle Funktionen zugreifen. Eine solche globale Kommunikationsplattform stellt unter anderem Apache Kafka zur Verfügung. Hier können jederzeit beliebige weitere Teilnehmer hinzugefügt werden, so dass die Lösung bequem skalierbar ist.

Internes und externes Daten-Sharing

Ein Nebeneffekt der Cloud-Nutzung ist das Teilen von Informationen. So können beispielsweise Maschinendaten aus dem laufenden Betrieb dem OEM zur Verfügung gestellt werden, der wiederum mit Hilfe eigener Cloud-Anwendungen beispielsweise Prozess-Optimierungen vorschlagen oder Predictive-Maintenance-Konzepte umsetzen kann.

Bei Funktionen wie der Chargen-Verfolgung von Medikamenten und Lebensmitteln müssen schon heute Daten über lange Lieferketten und mehrere Prozessstufen verfügbar gemacht werden. Mit dem Wandel der linearen Wertschöpfungsketten hin zu Partner-Ökosystemen und einer Plattform-Ökonomie wird der Austausch von Daten über zentrale Plattformen weiter an Bedeutung zunehmen.

Erste Beispiele dafür zeigen sich bereits bei der Pilotinstallation. Hier geht die Zusammenarbeit sogar über das reine Daten-Sharing hinaus. Denn Zulieferer nutzen ihr spezifisches Know-how, um eigene Container zu programmieren und dem Hersteller zur Verfügung zu stellen. Durch diese Form der Zusammenarbeit entsteht eine deutlich engere Integration in der Lieferkette, sowohl auf Basis der IT-Systeme als auch in den Geschäftsbeziehungen.

Für Unternehmen mit unterschiedlichen Standorten ist darüber hinaus die Multi-Site-Fähigkeit einer Applikation entscheidend. So können die Daten aus mehreren Produktionen in einer einzigen Anwendung zentral gesammelt und ausgewertet werden.

Bequemes Erweitern der Funktionalität

Eine häufig gewünschte Eigenschaft moderner Planungs- und Steuerungsanwendungen ist der mobile Zugriff auf Daten und Auswertungen. Wird nicht einfach per Webbrowser zugegriffen, sondern eine eigene App benötigt, dann sind die technischen Anforderungen deutlich höher. Ist beispielsweise der zentrale Technologie-Stack der traditionellen Anwendung nicht mehr aktuell und unterstützt deshalb entscheidende Schnittstellen oder Technologien nicht, dann wird die Anpassung sehr aufwändig – falls sie überhaupt möglich oder wirtschaftlich sinnvoll ist.

Eine Cloud-Anwendung wie oben beschrieben ist hier einfacher zu erweitern. Ein zusätzlicher Container fügt die benötigten Schnittstellen hinzu, eventuell müssen auch Technologie-Stacks in einzelnen, leicht identifizierbaren Containern aktualisiert werden. Dies ist aber ein bedeutend geringerer Aufwand als eine gesamte Applikation in zentralen Teilen zu erneuern, bei denen Abhängigkeiten und Bezüge kaum noch nachvollziehbar sind.

Fazit First Cloud Platform

Eine konventionelle System-Landschaft besteht aus mehreren Anwendungen installiert auf VMs, wo das Gastbetriebssystem alle Abhängigkeiten installiert haben muss. Eine große Gefahr besteht in Bezügen und Abhängigkeiten, die irgendwann nicht mehr überschaubar sind.

Völlig anders funktioniert dagegen die Realisierung in der Cloud mit Kafka und einer Container-Plattform, beispielsweise Kubernetes , innerhalb dieser die einzelne Services in sich als (Docker) Container gekapselt sind. Dabei können auf zahlreiche externe und interne Services zurückgegriffen werden, internes und externes Daten-Sharing funktioniert einfacher wie auch die Erweiterungen der Funktionen. 

Mehr zu diesem Thema in diesem Whitepaper: 

Whitepaper Cloud First