Microservices auf der JAX 2016

Microservices versus Application Server: Sind die klassischen Architekturen am Ende?

Sebastian Meyen

Microservices und damit verbundene Themen spielen auf der kommenden JAX 2016 eine herausragende Rolle. Lassen Sie mich einen Blick darauf werfen, warum wir dem Themenbereich einen so großen Raum auf der Konferenz eingeräumt haben.

Ein Service – Ein Server?

Das klassische Konzept „Ein Service – Ein Server“ scheint an seine Grenzen gelangt zu sein. Vertraute man bislang in den meisten Fällen eine gesamte Applikation, und sei sie auch noch so komplex, einem Applikationsserver an, der zum Zwecke der Skalierung ggf. noch in einen Cluster-Verbund gestellt wurde, gehen viele Architekten heute andere Wege.

Das Ziel, Dienste mit maximaler Verfügbarkeit an 365 Tagen im Jahr und 24 Stunden am Tag zur Verfügung zu stellen, hat sich im Prinzip nicht verändert. Doch hat die Erfahrung viele Akteure gelehrt, dieses Ziel heute mit anderen Mitteln anzustreben.

Ein Beispiel: Treten bei herkömmlichen Applikationsservern Probleme auf, besteht die typische Reaktion in einem Mehr an Qualitätssicherung, einer Steigerung der Kontrolle und etwaigen anderen Maßnahmen, die helfen, das System irgendwie „härter“ zu machen. Freunde der Microservices neigen dagegen eher dazu, auf Probleme im Sinne der Resilienz zu reagieren, oder vielmehr, ihre Systeme von vornherein resilient zu konzipieren.

Fehler tolerieren statt vermeiden

Was ist damit gemeint? Fehler passieren immer, und man sollte lieber über deren Behebung als über deren grundsätzliche Vermeidung nachdenken. Denn: vermeiden lassen sich Fehler bei hochskalierbaren, hochverfügbaren System ohnehin nicht. Dann machen wir doch wenigstens im Falle ihres Auftretens eine gute Figur!

Fehlertolarante Systeme lassen sich am besten mit einer Microservice-Archtektur realisieren. Aber Resilience ist nicht die einzige Motivation für Microservices. Vielmehr ist es eine Vielzahl an Faktoren, die das Konzept nach heutigem Stand der Kunst attraktiv erscheinen lassen — womit wir auch beim Punkt wären, weshalb wir auf der JAX so viele Tracks zum Thema Microservices und verwandten Themen vorbereitet haben.

  • Microservices sind geeignet für Agile Teams mit überschaubarer Anzahl an Mitarbeitern, denn es geben sich „natürliche“ Grenzen der Zuständigkeit.
  • Daraus folgt, dass solche Agilen Teams nicht nur für die Projektphase, sondern für den gesamten Lebenszyklus „ihres Service“ zuständig sein können — also auch für Betrieb und kontinuierliche Weiterentwicklung und Deployments (womit wir bei Continuous Delivery und DevOps wären).
  • Continuous-Delivery-Praktiken werden darüber hinaus begünstigt, weil bei Updates nicht eventuelle Abhängigkeiten „quer durchs Gesamtsystem“ berücksichtigt werden müssen, sondern stets nur Service-interne. Es muss nur gewährleistet sein, dass die Schnittstellen zu den übrigen Systemen unverändert bestehen bleiben.
  • Microservices-basierende Systeme können bei Bedarf polyglott entwickelt werden — grundsätzlich besteht keine Pflicht zu einheitlichen Technologien über alle Teams hinweg. Der eine Service könnte also klassisch mit Java geschrieben werden, ein andere mit alternativen JVM-Sprachen wie etwa Scala oder Groovy, oder auch mit ganz anderen Technologien wie etwa C# und .NET.
  • Moderne Cloud-Technologien, die weit mehr sind als nur modernes Hosting klassischer Betriebssysteme und darauf installierter Applikationsserver, flexibilisieren das Deployment und vereinfachen den Umgang mit kleineren Einheiten.
  • Container-Technologien à la Docker unterstützen die Entwicklung von Microservices erheblich, weil sie es erlauben, ganze Applikationsteile (Services) so zu verpacken, dass sie sich mit geringen Anpassungen in recht unterschiedlichen Umgebungen installieren lassen. Auch schirmen Docker & Co. das Innenleben einer Software viel konsequenter von der Außenwelt ab, was eine Fokussierung auf deren APIs begünstigt.
  • Microservices ermöglichen Wandel. Da es heute schon zur Genüge Projekte gibt, die mit Legacy-Code in Form von J2EE-Monolithen zu kämpfen haben, und da wir heute natürlich nicht wissen, welche Anforderungen und Technologien in weiteren zehn Jahren vorherrschend sein werden, ist es eine gute Idee, sich auf permanenten Wandel einzustellen. Die oben erwähnten Punkte erläutern schon plastisch, auf welche Weise Microservices dabei helfen können. Nun könnte man aber einwenden, dass Microservices ihrerseits in ein paar Jahren überholt sein könnten und dass man dann in der selben Legacy-Falle stecken würde wie zuvor mit den Java-Enterprise-Monolithen. Darauf lässt sich nur antworten, dass sich Microservices besonders in Organisationen bewähren, wo der ständige Wandel eine herausragende Rolle spielt. Die Reduktion der softwareinternen Komplexität, die Flexibilität bei der Wahl der Technologien innerhalb eines Gesamtsystems legen den Schluss nahe, dass Microservices ein gutes Konzept sind, um auf Veränderung vorbereitet zu sein.

Microservices bieten allerdings nicht nur Vorteile, und schon gar nicht für jeden Anwendungsfall. Dies zeigen die beiden Microservices Days der diesjährigen JAX-Konferenz. Die verschiedenen Ansätze architektureller und technologischer Art, sowie eine Reihe dazu gehöriger Themenkomplexe, werden in eigenen Tracks behandelt. So gibt es einen ganzen Special Day zu Continuous Delivery, einen zu DevOps-Themen und einen ganzen Tag zum Thema Docker.

Silver Bullet Microservices?

Wer Ihnen heute Microservices als Silver Bullet zur Lösung sämtlicher Probleme verkauft, dem sollten Sie misstrauen. Eine differenzierte Auseinandersetzung mit der Fülle an hochinteressanten Ideen, die in dem Konzept stecken, bringt die gesamte Technologie-Community voran. Mit der Vielzahl an Tracks und Themen zu diesem erweiterten Kontext will die JAX 2016 zu dieser Debatte und einer fundierten Meinungsbildung beitragen.

Wir freuen uns daher auf die tollen Vorträge, die vorbereitet wurden, und natürlich auf Ihr Feedback.

Geschrieben von
Sebastian Meyen
Sebastian Meyen
Sebastian Meyen ist Chefredakteur des Java Magazins sowie des Eclipse Magazins. Außerdem trägt er die Verantwortung für Programm und Konzept sämtlicher JAX-Konferenzen weltweit. Er begleitet so die Java-Community journalistisch schon fast seit ihren Anfängen. Bevor er zur Software & Support Media GmbH kam, studierte er Philosophie in Frankfurt.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: