© DrHitch/Shutterstock.com
Cloud Computing

2 Cloud-native Anwendungen bauen mit Spring Cloud und Netflix OSS


Cloud-native Anwendungen skalieren fast beliebig, reagieren elastisch auf Last und sind bis an die Schmerzgrenze fehlertolerant. So etwas sicherzustellen ist komplex. Es braucht neue Frameworks und Infrastruktur, die den Anwendungsentwickler vor dieser Komplexität schützen. Genau das leistet Spring Cloud: Es bietet ein Framework zur Entwicklung von Cloud-nativen Anwendungen als Microservices und integriert die quelloffene Cloud-Infrastruktur von Netflix und Co.

Die Entwicklung und der Betrieb von Cloud-nativen Anwendungen sollte so einfach sein wie bei traditionellen Java-EE-Anwendungen. Dennoch bringt der hohe Verteilungsgrad viel Komplexität mit sich. Das Spring-Cloud-Projekt [1] verspricht hier Abhilfe: Es setzt auf Spring Boot als Container für Microservices, integriert vielerlei Cloud-Infrastruktur und vereinfacht in gewohnter Spring-Manier die Programmierung.

Spring Cloud ist ein Schirmprojekt über derzeit fünfzehn Bausteinprojekte. Es ist Ende 2014 gestartet und unserer Meinung nach die tragfähigste Basis, um Cloud-native Anwendungen mit Java zu entwickeln. Spring Cloud bietet alle Bausteine eines Microservice-Frameworks, wie sie im vorherigen Kapitel beschrieben wurden. Abbildung 2.1 zeigt, wie sich Spring-Cloud-Bausteine auf die typischen Bausteine eines Microservice-Frameworks abbilden.

image

Abbildung 2.1: Spring-Cloud-Bausteine auf typische Bausteine eines Microservice-Frameworks abbilden

Die momentan grundlegendsten Bausteine von Spring Cloud sind Netflix Eureka, Spring Cloud Config, Netflix Hystrix, Netflix Ribbon, Netflix Feign, Netflix Zuul, Hystrix Dashboard und Netflix Turbine.

Netflix Eureka zur Service Discovery, die Registratur für Serviceendpunkte: Microservices können ihre Endpunkte bei Eureka registrieren und nach vorhandenen Endpunkten suchen. Ferner überwacht Eureka kontinuierlich die Verfügbarkeit der Endpunkte. Es besteht aus einer hochskalierbaren und ausfallsicheren Serverkomponente sowie aus clientseitigen Komponenten.

Spring Cloud Config zur Service Configuration übernimmt die zentrale Verwaltung von Konfigurationsparametern der Anwendungen über alle Umgebungen und Stages hinweg. Es stellt dabei die Konsistenz der Konfigurationsstände sicher und ermöglicht es, Konfigurationsparameter zur Laufzeit zu aktualisieren. Netflix Hystrix als Circuit Breaker im Serviceclient sorgt für die nötige Resilienz von Serviceclients [2], [3] und sammelt Statistiken zu Fehlerquoten und Antwortzeiten. Bei Ribbon handelt es sich um einen clientseit...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang