Microservices-Architektur heißt: Eine Software wird stark modularisiert, es handelt sich je um kleine Dienste, die als eigene Prozesse laufen (mit eigener Datenbank und eigenem Storage) und die miteinander über APIs miteinander kommunizieren. Da diese Microservices unabhängig voneinander sind, können Sie in verteilten Umgebungen laufen, zudem kann jeder Microservice in einer eigenen Programmiersprache geschrieben sein. Microservices können in einer Container-Infrastruktur in einer (Public) Cloud einfach skaliert werden. Wenn etwas ausfällt, betrifft das in der Regel nur das Modul, nicht das Gesamtsystem.

Vorteile im Überblick

  • Modularisierung
  • Teamgröße/-verantwortung für einen Service
  • Spezifizierung auf einen Funktionsbaustein (geringere Komplexität)
  • Agile Entwicklung von einzelnen Bausteinen (unabhängige Entwicklung)
  • Autarke Services ermöglichen spezifische Skalierung
  • Technologie-Unabhängigkeit

Es gibt auch – wie immer im Leben – ein paar Nachteile

  • Dezentrale Datenhaltung und Synchronisation
  • CAP-Theorem/-Problematik der verteilten Architektur
  • Zusätzliche Monitoring- und Logging-Infrastruktur
  • Höhere Komplexität für Betrieb (wegen verteilter Architektur)
  • Fokus verstärkt auf Fachlichkeit und nicht auf Wiederverwendung
Author

Der Autor ist Manager in der Softwareindustrie mit internationaler Expertise: Prokurist bei einem der großen Beratungshäuser - Verantwortung für den Aufbau eines IT Entwicklungszentrums am Offshore-Standort Bangalore - Director M&A bei einem Softwarehaus in Berlin.