Daten und Microservices

Spring Cloud Data Flow 1.0 ist GA und macht Daten Cloud-native

Melanie Feldmann

© Shutterstock / Pavelk

Spring Cloud Data Flow erblickt nach einem Jahr Entwicklungszeit das Licht der Welt. Wie sein Vorgänger Spring XD hat es das Ziel, die Entwicklung von Streaming- und Batch-Anwendungen zu vereinfachen. Aus einem Monolithen mit vielen Dependecies ist eine Microservice-Anwendung geworden.

Spring Cloud Data Flow (SCDF) ist ein Orchestrierungsservice für Daten-Microservices. Es ermöglicht, Daten-Pipelines zu beschreiben egal ob sie aus langlebigen Streaming-Anwendungen oder aus kurzlebigen Task-Anwendungen bestehen. Diese lassen sich dann auf Laufzeitumgebungen wie Cloud Foundry, Apache Yarn oder Kubernetes deployen. Die Unterstützung für Apache Mesos befindet sich zurzeit noch in der Entwicklung. Anwendungen können als Spring-Boot-uber-jar oder als Docker Image verpackt sein.

DSL definiert Streams

Streams können Entwickler mit einer von der Unix-Pipeline-Syntax inspirierten DSL definieren. Jedes Elemnt der DSL mapt auf eine Spring-Boot-Microservice-Anwendung, die auf die Datenverarbeitung fokussiert ist, die das Spring-Cloud-Stream-Programming-Modell nutzt. Das Programmiermodell sorgt dafür, dass sich Entwickler auf das Handhaben der Ein- und Ausgaben ihrer Anwendungen konzentrieren können. SCDF konfiguriert dabei wie diese Ein- und Ausgaben auf Messaging Middleware abgebildet werden. So kommunizieren die Anwendungen miteinander. Mehrere Message Broker werden druch einen Binder-Abstraktion in Spring Cloud Stream unterstützt. Momentan lassen sich RabbitMQ und Kafka in Produktion nutzen.

Die DSL unterstützt Benannte Ziele (Named Destinations). Dies ermöglicht es, Events von jeder Pipeline in der Stream-Definition zu nutzen. Dies wird „tapping a stream“ genannt. Auch der Output mehrere Streams lässt sich kombinieren. Stream-Definitionen lassen sich auch über das graphische Interface Flo anlegen.

Mit einem Deployment-Manifest können Entwickler die Ressourcennutzung von einzelnen Anwendungen definieren (CPU, Speicher, Memory). Auch die Anzahl der Anwendungsinstanzen und wie Daten partitioniert werden lässt sich so festlegen. Beliebige Anwendungseigenschaften können beim Deployen weitergegeben werden. Mit einem HTML5-Dashboard haben Entwickler den Überblick über ihre deployten Streams, können neue erstellen und bestehenden überwachen. Dies ist auch über eine Shell-Anwendung möglich.

Zusammenarbeit im Spring-Ökosystem

Für langlebige Stream-Anwendungen, die eine grenzenlose Menge an Daten verarbeiten arbeitet SCDF für das Deployment von Daten-Microservices mit Spring Cloud Stream zusammen, für Anwendungen, die nur endliche Menge an Daten verarbeiten und dann sterben, kommt Spring Cloud Task zum Einsatz. Auch wenn die drei Tools unabhängig voneinander releaset werden, kann SCDF direkt mit neuen Features von der anderen zwei arbeiten. Für die Zukunft ist geplant, auch andere Spring-Cloud-Projekte wie Spring Cloud Sleuth zu integrieren.

Eine komplette Liste der Features, Verbesserungen und Bug-fixes liegen auf GitHub. Beim Start der neuen Version hilft der Getting Started GuideDen genauen Weg vom Monolithen zum Microservice beschreibt Sabby Anandan detailliert auch in einem Blogpost.

Aufmacherbild: single dandelion von Shutterstock / Urheberrecht: Pavelk

Verwandte Themen:

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: