© Excellent backgrounds/Shutterstock.com
Kolumne: EnterpriseTales

Reduce to the Max: Microservices


Es gibt wohl kaum ein Thema in der Softwareentwicklung, das derzeit so heiß diskutiert wird wie die Wunderwelt der Microservices. Von „einfach genial“ bis hin zu „alter Wein in neuen Schläuchen“ trifft man auf die unterschiedlichsten Meinungen. Nicht selten begründen sich dabei die verschiedenen Einstellungen der Diskutanten schon in der Auffassung, was sich denn genau hinter dem Begriff „Microservices“ verbirgt. Grund genug für EnterpriseTales, einen Blick hinter die Kulissen zu wagen.

Um es gleich vorwegzunehmen: Wer in diesem Artikel eine eindeutige Definition des Begriffs Microservices sowie klare Architekturvorgaben in Form von Patterns und Tipps für ein entsprechend definiertes, universell einsetzbares Toolset/Framework erwartet, der sollte gar nicht erst weiterlesen. Zu unterschiedlich sind derzeit die Auffassungen und Erfahrungen der Experten aus ihren eigenen, stark individuellen Projekten, die sie bereitwillig in Blogs, Artikeln oder auf Konferenzen teilen. Angefangen bei kleinsten Einheiten, die je Request einen eigenen Prozess starten (und diesen dann auch sofort wieder beenden) bis hin zu SOA-ähnlichen Dimensionen eines Service sind für die Definition des Begriffs Microservices nahezu alle Facetten vertreten.

Weniger ist mehr

Einig sind sich allerdings nahezu alle Verfechter Microservices-basierter Architekturen darin, dass ein derartiger Ansatz nur dann sinnvoll ist, wenn die einzelnen Services so autark wie möglich sind und so eine lose Kopplung des Gesamtsystems erreicht werden kann. Dies gilt nicht nur für die Entwicklung der Services selbst, sondern vor allem auch für Datenhaltung, Deployment und Monitoring – DevOps lässt grüßen. Denn was nutzt es, losgelöste Services zu implementieren, die am Ende doch alle auf dieselbe Datenbank zugreifen und somit bei kleinsten Änderungen an der Struktur dank der damit verbundenen Abhängigkeiten alle gleichzeitig neu deployt werden müssen? Und wie flexibel ist ein System mit autarken Entwicklungsteams, deren Softwarefragmente am Ende doch wieder in einem einheitlichen Deployment-Rhythmus künstlich synchronisiert werden?

Im Rahmen der vor Kurzem in Berlin stattgefundenen Konferenz microxchg 2015 (http://microxchg.io) haben sich einige Vordenker des Microservices-Ansatzes an einer Definition versucht: Adrian Cockcroft, ehemaliger Cloud Architect bei Netflix und somit einer der Microservices-Pioniere, definierte den Microservices-Ansatz als „Loosely coupled service oriented architecture with bounded con...

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