Wissen von A bis Z

Microservices

Wenn Ihre App wie ein Schweizer Taschenmesser ist, sind Microservices die einzelnen Werkzeuge, die Sie unabhängig voneinander schärfen können.

Microservices ist ein Architekturstil, bei dem eine Anwendung als Sammlung kleiner, lose gekoppelter, eigenständig deploybarer Dienste implementiert wird. Jeder Dienst besitzt eine fachlich klar abgegrenzte Verantwortung, eine eigene Datenhaltung und kommuniziert mit anderen Diensten ausschließlich über wohldefinierte Schnittstellen — meist HTTP/REST, gRPC oder asynchrone Messaging-Kanäle. Die Dienste werden unabhängig voneinander entwickelt, getestet, ausgeliefert und skaliert; jeder Service kann eine eigene technologische Wahl treffen (Sprache, Framework, Datenbank), solange er den Vertrag an seinen Schnittstellen einhält.

Eingesetzt wird der Microservice-Stil in großen, schnell wachsenden Anwendungen mit unabhängig agierenden Teams (Conway's Law), in SaaS-Plattformen mit unterschiedlichen Skalierungsanforderungen pro Domäne, in Migrationsszenarien aus Monolithen (Strangler Fig Pattern) sowie in Domänen, in denen unterschiedliche fachliche Bereiche unterschiedliche Persistenz- oder Verarbeitungsmodelle erfordern. Typische Komplementärtechnologien sind Container, Container-Orchestrierung (Kubernetes), API-Gateways, Service Meshes (Istio, Linkerd), Distributed-Tracing-Stacks (OpenTelemetry, Jaeger) und Plattform-Bausteine wie Feature Flags und Circuit Breaker.

Lange Build- und Deployment-Zeiten, enge Kopplung zwischen fachlich unabhängigen Domänen, schwierige Wartbarkeit, kollidierende Release-Zyklen verschiedener Teams. Microservices entkoppeln diese Aspekte und erlauben unabhängige Release-Frequenzen, gezielte horizontale Skalierung einzelner Domänen und technologische Vielfalt. Gleichzeitig erzeugen sie neue Probleme: verteilte Transaktionen, eventual Consistency, Netzwerk-Latenz, Deployment-Komplexität und höhere Anforderungen an Observability.

Historisch hat der Begriff "Microservices" seinen Ursprung in einem Workshop in Venedig 2011, bei dem Architekten — darunter Martin Fowler und James Lewis — einen damals beobachteten Architekturstil benannten. 2014 erschien Lewis' und Fowlers viel zitierter Artikel "Microservices" auf martinfowler.com, der den Stil populär machte. Voraus gegangen waren Konzepte wie Service-Oriented Architecture (SOA), Hexagonale Architektur und das von Eric Evans 2003 etablierte Domain-Driven Design, dessen Bounded Contexts die fachliche Grundlage für sinnvolle Microservice-Schnitte liefern.

Prägende Stimmen sind unter anderem Adrian Cockcroft (Netflix), Sam Newman (Buchautor "Building Microservices"), Chris Richardson (microservices.io) sowie Martin Fowler und James Lewis. Netflix gilt als das Aushängeschild der Microservice-Bewegung — der Übergang von einem zentralen Monolithen zu hunderten Microservices Anfang der 2010er Jahre prägte die Branche so stark, dass viele Werkzeuge des Ökosystems (Eureka, Hystrix, Zuul, Chaos Monkey) zunächst Netflix-Open-Source waren. Sam Newman hat in späteren Vorträgen mehrfach betont, dass Microservices kein Selbstzweck sind: "If you can't build a monolith well, what makes you think you can build microservices well?" ist eines der bekanntesten Zitate dieser Phase.

Zurück