Mit Spring Cloud viele kleine Dienste zähmen

Ein Framework für Microservices

Eberhard Wolff
© iStockphoto.com/RomanOkopny

Microservices stellen Entwickler vor neue Herausforderungen: Viele kleine Dienste müssen koordiniert werden. Die Kommunikation zwischen diesen Diensten erfolgt über das Netzwerk und kann daher ausfallen, sodass man sich mit neuartigen Fehlerszenarien beschäftigen muss. Genau dieser Herausforderungen nimmt sich das neue Projekt Spring Cloud an.

Ursprünglich trat Spring Cloud an, um Spring-Anwendungen in verschiedenen Cloud-Umgebungen installieren und betreiben zu können. Umgebungen wie Cloud Foundry oder Heroku stellen Dienste wie Datenbanken bereit, auf die Anwendungen zugreifen müssen. Spring Cloud bietet Möglichkeiten, Anwendungen trotz der Unterschiede zwischen den verschiedenen Clouds auf allen diesen Umgebungen ohne Codeänderungen laufen zu lassen. Die Anwendung definiert dann nur noch, welche Art von Ressourcen sie benötigt – sei es eine relationale Datenbank oder eine NoSQL-Datenbank wie Redis. Spring Cloud injiziert dann die richtige Ressource sowohl auf der Cloud-Foundry-Plattform als auch auf Heroku. Ebenso ist es möglich, lokale Dienste zu nutzen. So können Anwendung auch ohne Cloud-Plattform betrieben werden. Das ist vor allem nützlich, um die Anwendungen zu testen und zu entwickeln, ohne dabei auf eine Cloud-Umgebung angewiesen zu sein. Das Deployment in eine solche Cloud ist schließlich aufwändig, da die Software über das Internet übertragen werden muss, und die Umgebungen kosten auch Geld.

Spring Cloud ist mittlerweile viel breiter aufgestellt: Es ist ein umfangreiche Lösung verschiedener Herausforderungen geworden. Die Unterstützung für die verschiedenen Cloud-Umgebungen ist nun im Projekt Spring Cloud Connectors untergekommen. Also ist das Projekt nun nicht mehr nur eine einzige Technologie, sondern eine Sammlung verschiedener Ansätze (Abb. 1). Und es geht auch nicht mehr nur um Cloud: Das Projekt hilft, die Herausforderungen von verteilten Systemen, wie sie bei der Entwicklung von Microservices entstehen, besser zu meistern. Microservices teilen Systeme in eine Vielzahl von Services auf, die typischerweise über REST kommunizieren. Dadurch werden Anwendungen zu verteilten Systemen, die wesentlich schwieriger zu handhaben sind. Schließlich muss eine Vielzahl von Prozessen auf verschiedenen Servern konfiguriert und überwacht werden. Die Kommunikation zwischen den Bestandteilen der Anwendung erfolgt nun über das Netzwerk und kann daher ausfallen.

(Lesen Sie den kompletten Artikel im Java Magazin 3.15)

Geschrieben von
Eberhard Wolff
Eberhard Wolff
Eberhard Wolff ist Fellow bei innoQ und arbeitet seit mehr als fünfzehn Jahren als Architekt und Berater, oft an der Schnittstelle zwischen Business und Technologie. Er ist Autor zahlreicher Artikel und Bücher, u.a. zu Continuous Delivery und Microservices und trägt regelmäßig als Sprecher auf internationalen Konferenz vor. Sein technologischer Schwerpunkt sind moderne Architektur- und Entwicklungsansätze wie Cloud, Continuous Delivery, DevOps, Microservices und NoSQL.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: