© Liashko/Shutterstock.com
Entwickler Magazin
Hochdynamische Anwendungen mit Containern und Service Meshes

Java Microservices: ab in die Cloud

Microservices-basierte Anwendungen in Java zu realisieren, ist dank Spring Boot und Eclipse MicroProfile denkbar einfach. Das gilt sowohl für die Implementierung der Services selbst als auch für die grundlegende Unterstützung notwendiger Querschnittsdienste wie Logging, Tracing und Security. Was aber, wenn zusätzliche Flexibilität bezüglich Skalierung und Plattform gefragt ist? Bevor es mit der Anwendung in die Cloud geht, müssen zunächst noch ein paar Hausaufgaben erledigt werden.

Arne Limburg, Lars Röwekamp


Beim Umstieg von monolithischen Architekturen hin zu Microservices müssen Enterprise-Java-Entwickler mit vielfältigen Herausforderungen rechnen. Mit Hilfe von Spring Boot oder MicroProfile können diesen Herausforderungen technologisch begegnet werden. Doch welche zusätzlichen infrastrukturellen Hilfsmittel werden benötigt, um eine Microservices-basierte Anwendung – beispielsweise in der Cloud – sinnvoll betreiben zu können? Wie hoch ist die Zunahme der Komplexität? Oder ist der Aufwand am Ende gar nicht so groß wie gedacht? Schauen wir uns diese Fragen einmal genauer an.

Flexibilität und Agilität

Einen einzelnen Microservice zu implementieren und alleinstehend zum Laufen zu bekommen, ist heutzutage dank guter Framework-Unterstützung kein wirkliches Problem mehr. Die eigentliche Herausforderung besteht darin, eine fachlich komplexe Anwendung als Netz von Dutzenden von Microservices inklusive der dafür notwendigen Infrastruktur dynamisch aufzubauen und zu betreiben. Steigt die Last, sollen die Services automatisch skalieren. Fallen Service aus oder werden gerade unter geänderter Adresse neu gestartet, sollen potenzielle Consumer davon nichts mitbekommen, sondern automatisch an die neue Adresse geroutet oder mit alternativen Services verbunden werden.

Aber nicht nur die Technologie bringt neue Herausforderungen mit sich, sondern auch der damit einhergehende agile Entwicklungsprozess und die durch ihn ermöglichte Geschwindigkeit von der Anforderung bis hin zur Bereitstellung und Liveschaltung eines neuen fachlichen Features. Langwierig beim Operation-Team zu beantragende Plattformkomponenten sind ebenso tabu wie ressourcen- und zeitfressende, anwendungsweite Test- oder Integration-Stages.

Um dieser Anforderungen Herr zu werden, bedarf es einer leichtgewichtigen Virtualisierung der Anwendungskomponenten, die es den Entwicklern erlaubt, die von ihnen implementierte Software in kurzen Iterationen produktionsnah zu testen und bereitzustellen. Zusätzlich wird ein Mechanismus benötigt, der die virtualisierten Komponenten automatisiert orchestriert, überwacht und bei Bedarf korrigierend eingreift. Und letztendlich gilt es noch, die Inter-Service-Kommunikation in den Griff zu bekommen.

Für die erste Herausforderung – leichtgewichtige Virtualisierung – haben sich in den letzten Jahren Container hervorgetan. Die zweite Herausforderung wird entsprechend von Werkzeugen zur Containerorchestrierung und deren Management übernommen. Als dritte und letzte Infrastrukturkomponen...

Entwickler Magazin
Hochdynamische Anwendungen mit Containern und Service Meshes

Java Microservices: ab in die Cloud

Microservices-basierte Anwendungen in Java zu realisieren, ist dank Spring Boot und Eclipse MicroProfile denkbar einfach. Das gilt sowohl für die Implementierung der Services selbst als auch für die grundlegende Unterstützung notwendiger Querschnittsdienste wie Logging, Tracing und Security. Was aber, wenn zusätzliche Flexibilität bezüglich Skalierung und Plattform gefragt ist? Bevor es mit der Anwendung in die Cloud geht, müssen zunächst noch ein paar Hausaufgaben erledigt werden.

Arne Limburg, Lars Röwekamp


Beim Umstieg von monolithischen Architekturen hin zu Microservices müssen Enterprise-Java-Entwickler mit vielfältigen Herausforderungen rechnen. Mit Hilfe von Spring Boot oder MicroProfile können diesen Herausforderungen technologisch begegnet werden. Doch welche zusätzlichen infrastrukturellen Hilfsmittel werden benötigt, um eine Microservices-basierte Anwendung – beispielsweise in der Cloud – sinnvoll betreiben zu können? Wie hoch ist die Zunahme der Komplexität? Oder ist der Aufwand am Ende gar nicht so groß wie gedacht? Schauen wir uns diese Fragen einmal genauer an.

Flexibilität und Agilität

Einen einzelnen Microservice zu implementieren und alleinstehend zum Laufen zu bekommen, ist heutzutage dank guter Framework-Unterstützung kein wirkliches Problem mehr. Die eigentliche Herausforderung besteht darin, eine fachlich komplexe Anwendung als Netz von Dutzenden von Microservices inklusive der dafür notwendigen Infrastruktur dynamisch aufzubauen und zu betreiben. Steigt die Last, sollen die Services automatisch skalieren. Fallen Service aus oder werden gerade unter geänderter Adresse neu gestartet, sollen potenzielle Consumer davon nichts mitbekommen, sondern automatisch an die neue Adresse geroutet oder mit alternativen Services verbunden werden.

Aber nicht nur die Technologie bringt neue Herausforderungen mit sich, sondern auch der damit einhergehende agile Entwicklungsprozess und die durch ihn ermöglichte Geschwindigkeit von der Anforderung bis hin zur Bereitstellung und Liveschaltung eines neuen fachlichen Features. Langwierig beim Operation-Team zu beantragende Plattformkomponenten sind ebenso tabu wie ressourcen- und zeitfressende, anwendungsweite Test- oder Integration-Stages.

Um dieser Anforderungen Herr zu werden, bedarf es einer leichtgewichtigen Virtualisierung der Anwendungskomponenten, die es den Entwicklern erlaubt, die von ihnen implementierte Software in kurzen Iterationen produktionsnah zu testen und bereitzustellen. Zusätzlich wird ein Mechanismus benötigt, der die virtualisierten Komponenten automatisiert orchestriert, überwacht und bei Bedarf korrigierend eingreift. Und letztendlich gilt es noch, die Inter-Service-Kommunikation in den Griff zu bekommen.

Für die erste Herausforderung – leichtgewichtige Virtualisierung – haben sich in den letzten Jahren Container hervorgetan. Die zweite Herausforderung wird entsprechend von Werkzeugen zur Containerorchestrierung und deren Management übernommen. Als dritte und letzte Infrastrukturkomponen...

Neugierig geworden?


   
Loading...

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