Digitale Dienstleistungen erleichtert erstellen

Abbild Web-UI von Cloudistry

Bild: Das Web-UI von Cloudistry zur grafischen Orchestrierung von Services (Quelle: Institut für Steuerungstechnik der Werkzeugmaschinen und Fertigungseinrichtungen (ISW))

Abbild Aufbau der Graph-Pipeline

Bild: Der Aufbau der Graph-Pipeline (Quelle: Institut für Steuerungstechnik der Werkzeugmaschinen und Fertigungseinrichtungen (ISW))

Damit die Anbieter von Dienstleistungen ihre Applikationen Cloud-agnostisch anbieten und vertreiben können, wird im Forschungsvorhaben ein Servicebaukasten und Servicecenter entwickelt. Der Servicebaukasten dient zur erleichterten und qualitativ hochwertigen Erstellung von digitalen Dienstleistungen. Die Funktionalität und Konformität des Services wird durch ein Service Assessment überprüft. Die überprüften Services stehen dann dem Kunden im Servicecenter zur Verfügung. Das Servicecenter stellt somit die Schnittstelle zwischen dem Dienstleister und dem Kunden dar. Benötigt ein Kunde einen oder mehrere Services, sollen diese durch den Kunden selbst oder durch den Dienstleister im Servicecenter zusammengestellt werden können und dann auf der ausgewählten Cloud instanziiert werden. Wird ein Service nicht mehr benötigt, wird dieser ebenfalls über das Servicecenter beendet. Auch die Abrechnung ist über das Servicecenter möglich. Die Technologieentwicklung zur Instanziierung, zum Betrieb sowie zum Beenden und Abrechnen von Services entwickeln die Projektteilnehmer für unterschiedliche Cloud-Plattformen. Die beschriebenen Lösungsideen (Cloud-Konnektoren, Abstraktionsschicht, Servicecenter und Servicebaukasten) wurden im Forschungsvorhaben in der Multicloud-basierten Dienstleistungsplattform Cloudistry entwickelt, umgesetzt und anschließend an verschiedenen Demonstratoren validiert.

Mithilfe der Multicloud-Plattform Cloudistry, welche am ISW entwickelt wird, lassen sich Services über ein Web-UI auswählen, verknüpfen und konfigurieren. Die Ausgewählten Services kann man unter Verwendung der Containertechnologien Docker verpacken und anschließend auf eine oder mehrere hinterlegten Cloud-Instanzen deployen. Hierbei wird das Provisionieren der Cloud-Instanzen, sowie das Management der einzelnen Container mithilfe von Rancher realisiert. Rancher ist ein „OpenSource“-Container-Managementsystem, welches dem Benutzer neben der genannten Provisionierung von Cloud-Instanzen auch beim Deployment, Monitoring und Orchestrierung von Containern unterstützt. Ein nachrichteorientiertes System auf Basis von Apache Kafka sorgt dafür, dass die deployten Services über ­Instanzgrenzen hinweg kommunizieren können. Apache Kafka ist ein verteiltes Publisher-Subscriber-Messaging-System zur Erreichung von hohem Datendurchsatz, niedrigen Latenzen sowie eine lose Kopplung zwischen den Services. Letzteres ist wichtig, damit die verwendeten Services jederzeit ausgetauscht werden können, ohne die Schnittstellen der anderen Services anpassen zu müssen. Durch die Kombination aus den genannten Technologien ist es möglich, die Vielfalt an Services hinsichtlich deren Anforderung an Datenmengen und Verfügbarkeit zu realisieren.

Werkzeuge für die Entwicklung und Integration

Um den Entwicklungs- und Integrationsaufwand von neuen Services so gering und den Betrieb bzw. die Nutzung der Ser­vices so kostengünstig wie möglich zu halten, werden verschiedene Werkzeuge bereitgestellt. Eines dieser Werkzeuge ist die im Projekt entwickelte „Graph-Pipeline“. Diese generiert aus der vom Benutzer erstellten Servicekomposition ein Deployment-Plan. Hierbei wird zunächst die Verknüpfung zwischen den Services validiert und anschließend die Kommunikation über Kafka initialisiert. Dabei legt der Anwender sogenannte Topics fest, an diese die Services ihre Nachrichten übermitteln und empfangen können. Damit ein Service die gesendete Nachricht auch verarbeiten kann, sind die Daten mit dem jeweiligen Schema des Services zu verknüpfen. Dieser Schritt ermöglicht den Austausch und Wiederverwendbarkeit des Services in der Plattform. Nachdem die Konfiguration des Nachrichtenaustauschs erfolgt ist, werden die Services in einer Docker-Compose-Datei beschrieben. Mit Docker Compose lassen sich innerhalb einer einzigen Datei mehrere Container einstellen und ihre Beziehungen untereinander definieren. Abschließend wird die generierte Datei dazu verwendet, um mithilfe von Rancher die Services auf die ausgewählten Cloud-Plattformen zu instanziieren.

www.bmbf-multicloud.de
www.isw.uni-stuttgart.de
www.docker.com
www.rancher.com
kafka.apache.org/

Timur Tasci, M. Sc. (Wissenschaftlicher Mitarbeiter, Institut für Steuerungstechnik der Werkzeug¬maschinen und Fertigungs¬einrichtungen (ISW) der Uni Stuttgart)
2 / 2

Ähnliche Beiträge