© Photo.Lux/Shutterstock.com
Java Magazin
Neue Herausforderungen, nicht nur technologischer Natur

Vom Java-EE-Monolithen zu Microservices

Microservices-basierte Architekturen sind erste Wahl, wenn es um die Realisierung von Cloud-nativen Anwendungen geht. Sie verkürzen die Time to Market neuer Features, indem diese unabhängig voneinander entwickelt, getestet und produktiv gestellt werden können. Was aber bedeutet diese schöne neue Welt für einen gestandenen Java-Enterprise-Entwickler oder -Architekten? Kann das über Jahre aufgebaute Wissen über Methodik und Technologie weiter angewandt werden oder ist ein Neuanfang notwendig?

Lars Röwekamp


Die Umstellung vom Monolithen hin zu Microservices bringt – ein passendes Service-Design vorausgesetzt – eine Menge Vorteile mit sich. Allen voran eine Reduzierung der fachlichen Komplexität der einzelnen Services sowie eine Unabhängigkeit der einzelnen Service-Teams bezüglich der Entwicklung und Bereitstellung ihrer Services. Gleichzeitig geht mit diesen Vorteilen aber auch eine Reihe neuer Herausforderungen einher, die bei den involvierten Entwicklern ein Umdenken im Vorgehensmodell und bei der Umsetzung erforderlich machen.

Im Folgenden werden die wesentlichen Herausforderungen aufgezeigt und passende Lösungsansätze skizziert. Wie sich diese Lösungsansätze mit den beiden Java Microservices Frameworks Spring Boot und MicroProfile realisieren lassen, zeigt der Artikel „Java Microservices im Praxischeck“ in diesem Heft (S. 34).

Warum Microservices?

Die kaum zu beherrschenden Herausforderungen, die mit der Umsetzung und Wartung großer Systeme einhergehen, haben den klassischen Monolithen in den letzten Jahren mehr und mehr in Richtung Abstellgleis gedrängt. Heutige Architekturen müssen Agilität in der Entwicklung und der Bereitstellung garantieren. Um dies zu gewährleisten, wird die Anwendung in kleinere, auf fachliche Domänen fokussierte Services zerlegt, die von eigenständigen Teams entsprechend der Business Needs konzipiert und umgesetzt werden können.

Richtig durchgeführtes Microservices-Design, d. h. eines, das bewährte Patterns wie Single Responsibility, Separation of Concerns, Lightweight Async Communication oder Share Nothing berücksichtigt, erzeugt eine Gruppe lose gekoppelter Services. Diese können unabhängig voneinander entwickelt, erweitert, ersetzt, getestet und skaliert werden.

Die Zerlegung eines Monolithen in unabhängige Services als Ganzes oder auch nur in Teilen bringt dabei viele Vorteile mit sich. Jeder Service für sich deckt lediglich eine überschaubare und somit leichter zu verstehende und umzusetzende Fachlichkeit ab. Lokale Änderungen können ohne das Risiko negativer Seiteneffekte auf die restliche Anwendung durchgeführt werden. Fehler werden per Definition durch die Grenzen des Service eingedämmt. Die Time to Market für die Realisierung neuer fachlicher Anforderungen kann dank der Ermöglichung hoher Agilität drastisch reduziert werden.

Leider bringt eine Anwendung, die aus Dutzenden oder gar Hunderten von Microservices besteht, nicht nur Vorteile, sondern auch neue Herausforderungen mit sich. Denn all die Aspekte, die vormals bei ei...

Java Magazin
Neue Herausforderungen, nicht nur technologischer Natur

Vom Java-EE-Monolithen zu Microservices

Microservices-basierte Architekturen sind erste Wahl, wenn es um die Realisierung von Cloud-nativen Anwendungen geht. Sie verkürzen die Time to Market neuer Features, indem diese unabhängig voneinander entwickelt, getestet und produktiv gestellt werden können. Was aber bedeutet diese schöne neue Welt für einen gestandenen Java-Enterprise-Entwickler oder -Architekten? Kann das über Jahre aufgebaute Wissen über Methodik und Technologie weiter angewandt werden oder ist ein Neuanfang notwendig?

Lars Röwekamp


Die Umstellung vom Monolithen hin zu Microservices bringt – ein passendes Service-Design vorausgesetzt – eine Menge Vorteile mit sich. Allen voran eine Reduzierung der fachlichen Komplexität der einzelnen Services sowie eine Unabhängigkeit der einzelnen Service-Teams bezüglich der Entwicklung und Bereitstellung ihrer Services. Gleichzeitig geht mit diesen Vorteilen aber auch eine Reihe neuer Herausforderungen einher, die bei den involvierten Entwicklern ein Umdenken im Vorgehensmodell und bei der Umsetzung erforderlich machen.

Im Folgenden werden die wesentlichen Herausforderungen aufgezeigt und passende Lösungsansätze skizziert. Wie sich diese Lösungsansätze mit den beiden Java Microservices Frameworks Spring Boot und MicroProfile realisieren lassen, zeigt der Artikel „Java Microservices im Praxischeck“ in diesem Heft (S. 34).

Warum Microservices?

Die kaum zu beherrschenden Herausforderungen, die mit der Umsetzung und Wartung großer Systeme einhergehen, haben den klassischen Monolithen in den letzten Jahren mehr und mehr in Richtung Abstellgleis gedrängt. Heutige Architekturen müssen Agilität in der Entwicklung und der Bereitstellung garantieren. Um dies zu gewährleisten, wird die Anwendung in kleinere, auf fachliche Domänen fokussierte Services zerlegt, die von eigenständigen Teams entsprechend der Business Needs konzipiert und umgesetzt werden können.

Richtig durchgeführtes Microservices-Design, d. h. eines, das bewährte Patterns wie Single Responsibility, Separation of Concerns, Lightweight Async Communication oder Share Nothing berücksichtigt, erzeugt eine Gruppe lose gekoppelter Services. Diese können unabhängig voneinander entwickelt, erweitert, ersetzt, getestet und skaliert werden.

Die Zerlegung eines Monolithen in unabhängige Services als Ganzes oder auch nur in Teilen bringt dabei viele Vorteile mit sich. Jeder Service für sich deckt lediglich eine überschaubare und somit leichter zu verstehende und umzusetzende Fachlichkeit ab. Lokale Änderungen können ohne das Risiko negativer Seiteneffekte auf die restliche Anwendung durchgeführt werden. Fehler werden per Definition durch die Grenzen des Service eingedämmt. Die Time to Market für die Realisierung neuer fachlicher Anforderungen kann dank der Ermöglichung hoher Agilität drastisch reduziert werden.

Leider bringt eine Anwendung, die aus Dutzenden oder gar Hunderten von Microservices besteht, nicht nur Vorteile, sondern auch neue Herausforderungen mit sich. Denn all die Aspekte, die vormals bei ei...

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