Microservices

Microservices sind ein Architekturmuster der Informationstechnik, bei dem komplexe Anwendungssoftware aus unabhängigen Prozessen generiert wird, die untereinander mit sprachunabhängigen Programmierschnittstellen kommunizieren. Die Dienste sind weitgehend entkoppelt und erledigen eine kleine Aufgabe. So ermöglichen sie einen modularen Aufbau von Anwendungssoftware.

Philosophie und Details

Der Gedanke hinter Microservices entspricht weitgehend dem der Unix-Philosophie („Do One Thing and Do It Well“, frei übersetzt: „Erledige nur eine Aufgabe und erledige sie gut“). Die Dienste sollten üblicherweise die folgenden Eigenschaften haben:

Die Größe eines Microservices wird hierbei dadurch nach unten begrenzt, dass die Netzwerkkommunikation zwischen Microservices ressourcenintensiv ausfallen kann und für jeden Microservice ein eigenes Deployment vorgesehen werden muss.

Typische Bestandteile einer Microservice-Architektur

Microservices benötigen sehr viel Infrastruktur, welche durch jeweils eigenständige Services implementiert wird.

Für die Lastverteilung externer HTTP-Anfragen von Clienten kommen Load-Balancer zum Einsatz. Statische Inhalte werden mittels eines Content Delivery Network ausgeliefert.

Die für die Geschäftsanforderungen zuständigen Services werden durch eine Reihe von Plattform- oder Infrastruktur-Services unterstützt. Diese übernehmen zentrale Aufgaben wie das Anwendungs- und Service-Monitoring, Logging-Webservices, Operations-Datenbanken, Konfigurationsmanagement, Verschlüsselung, Autorisierung und Authentifizierung, sowie Autoscaling, Softwareverteilung, A/B-Testing und Fault-Injection-Testing (FIT). Zudem gibt es zentrale Routingdienste, welche sich um die Zuordnung von URLs zu Instanzen mit den jeweiligen Diensten kümmern.

Hierzu kommen noch Dienste für die Datenpersistierung, insbesondere Caching, relationale Datenbanken und NoSQL-Datenbanken, sowie BLOB-Speicher für beliebige Dateien.

Abgrenzung zu SOA

Sowohl SOA (Serviceorientierte Architektur) als auch Microservices nutzen Dienste als Architektur-Elemente.

SOA nutzt Dienste, um verschiedene Anwendungen zu integrieren. Die Kombination der Dienste erfolgt durch Orchestrierung oder Choreografie, und Portale können eine gemeinsame Benutzerschnittstelle (UI) für alle Dienste bieten.

Microservices strukturieren eine Anwendung durch Dienste. Jeder Microservice kann eine Benutzerschnittstelle enthalten und Geschäftsprozesse implementieren, wie sie bei SOA in der Orchestrierung zu finden sind.

Vorteile

Nachteile

Microservices werden wegen einiger Merkmale kritisiert:

Beispiele

Von folgenden Internetdiensten ist bekannt, dass sie Microservices benutzen:

Siehe auch

Literatur

Einzelnachweise

  1. ↑ Eberhard Wolff: Microservices: Grundlagen flexibler Softwarearchitekturen. 2. Auflage. ISBN 978-3-86490-555-1 (microservices-buch.de).
  2. ↑ Sam Newman: Microservices: Konzeption und Design. ISBN 978-3-95845-081-3 (englisch).
  3. 1 2 3 Microservices. In: Martin Fowler: Microservices: a definition of this new architectural term
  4. ↑ Der fachliche Schnitt von Microservices. In: Informatik Aktuell
  5. 1 2 3 Eberhard Wolff: Microservices: Grundlagen flexibler Softwarearchitekturen. 2., aktualisierte Auflage. dpunkt.verlag, Heidelberg 2018, ISBN 978-3-96088-413-2, Kap. 5.1 Technische Vorteile.
  6. ↑ Jens Fromm und Mike Weber, Hg., 2016: ÖFIT-Trendschau: Öffentliche Informationstechnologie in der digitalisierten Gesellschaft Trendthema 35: Microservices. Berlin: Kompetenzzentrum Öffentliche IT. ISBN 978-3-9816025-2-4 (Memento des Originals vom 7. September 2024 im Internet Archive)
  7. ↑ Mick Hohmann, Dennis Wagner: Conway’s Law und Team Topologies. In: entwickler.de. Software & Support Media GmbH, 2025, abgerufen am 7. Dezember 2025.
  8. ↑ Noah Sussman: Falsehoods programmers believe about time. In: Infinite Undo! Abgerufen am 12. April 2017 (englisch).
  9. ↑ Noah Sussman: More falsehoods programmers believe about time; “wisdom of the crowd” edition. In: Infinite Undo! Abgerufen am 12. April 2017 (englisch).
  10. ↑ Max Schröter: Der Kleber macht’s – Microservices in einem Web-Projekt. In: heise.de. Heise Medien GmbH & Co. KG, 18. März 2025, abgerufen am 7. Dezember 2025.
  11. 1 2 3 4 Todd Hoff: Deep Lessons From Google And EBay On Building Ecosystems Of Microservices. In: High Scalability. 1. Dezember 2015, abgerufen am 11. März 2017.
  12. ↑ Microservices bei Amazon. (englisch).
  13. ↑ Microservices bei Netflix. (englisch).
  14. ↑ Microservices bei Guardian. (englisch).
  15. ↑ Microservices bei SoundCloud. (englisch).
  16. ↑ Schedule Thursday (3rd Dec.) - conference. In: gotocon.com. Abgerufen am 19. April 2016 (englisch).
  17. ↑ From Monolith to Microservices, Zalando’s Journey. In: infoq.com. Abgerufen am 5. Oktober 2016 (englisch).
  18. ↑ Guido Steinacker: Von Monolithen und Microservices. In: Informatik Aktuell. 2. Juni 2015, abgerufen am 28. April 2016.