Microservices: Skalierbare und austauschbare Architektur für moderne Systeme

03.11.2023

In diesem Teil unserer Blog-Serie über Softwarearchitekturstile schauen wir uns die Microservice Architektur genauer an. Eine prägnante Zusammenfassung dieses Stils finden Sie am Ende als Bild.

Was die Microservice Architektur kann

In der Welt der Softwarearchitektur gibt es verschiedene Ansätze, um komplexe Systeme effizient zu entwickeln und zu betreiben. Einer dieser Ansätze ist die Verwendung von Microservices. Diese verteilte Architektur basiert auf dem Konzept des „Bounded Context“ aus dem Domain Driven Design und hat zum Ziel, abgekapselte und eigenständige Services zu schaffen, die jeweils eine spezifische Geschäftsanforderung bearbeiten. In diesem Blogpost werden wir uns näher mit Microservices befassen, ihre Einsatzgebiete sowie Vor- und Nachteile betrachten.

Microservices sind eigenständige Services, die als separate Prozesse betrieben werden und idealerweise auf unterschiedlichen (virtuellen) Maschinen gehostet werden. Jeder Service ist verantwortlich für die Bearbeitung einer abgekapselten Geschäftsanforderung und kommuniziert so wenig wie möglich mit anderen Services. Dadurch wird eine hohe Skalierbarkeit und Austauschbarkeit erreicht. Das Konzept basiert auf dem Bounded Context aus dem Domain Driven Design, bei dem die Geschäftsanforderungen in klar abgegrenzte Bereiche aufgeteilt werden.

Microservices eignen sich besonders gut für mittelgroße bis große Systeme, in denen lose gekoppelte Anwendungsfälle existieren. Durch die Aufteilung der Funktionalitäten in eigenständige Services können komplexe Systeme überschaubarer gemacht und die Entwicklung und Wartung erleichtert werden. Zudem bieten Microservices eine gute Lösung für Anwendungsfälle, bei denen Skalierbarkeit und Ausfallsicherheit wichtig sind.

Embedded Systems, also eingebettete Systeme mit begrenzten Ressourcen, sind ungeeignete Einsatzgebiete für Microservices. Aufgrund der verteilten Natur der Architektur und der damit verbundenen Netzwerkkommunikation sind Microservices in solchen Umgebungen nicht effizient und führen zu unverhältnismäßigem Overhead.

Microservices bieten eine Reihe von Vorteilen, die sie zu einer attraktiven Option für moderne Systeme machen. Eine hohe Ausfallsicherheit des Gesamtsystems wird erreicht, wenn die Microservices gut geschnitten sind und eine klare Trennung der Geschäftsanforderungen aufweisen. Durch die Skalierbarkeit der einzelnen Services kann das System flexibel an steigende Anforderungen angepasst werden. Zudem ermöglichen Microservices eine gute Austauschbarkeit, da einzelne Services unabhängig voneinander entwickelt und ausgetauscht werden können.

Die Aufteilung der Geschäftsanforderungen in abgekapselte Services kann eine komplexe und fehleranfällige Aufgabe sein. Ein schlechter Schnitt der Services kann zu hoher Kopplung führen und die Vorteile der Skalierbarkeit und Austauschbarkeit einschränken. Zudem kann die Performance des Systems durch den zusätzlichen Netzwerkverkehr zwischen den Services beeinträchtigt werden. Eine sorgfältige Planung und Gestaltung der Microservices ist daher von großer Bedeutung, um diese Herausforderungen zu bewältigen.

 

Fazit

Microservices bieten eine skalierbare und austauschbare Architektur für moderne Systeme. Durch die Aufteilung der Geschäftsanforderungen in eigenständige Services können komplexe Systeme besser beherrschbar gemacht werden. Die Vorteile von Microservices liegen in ihrer Ausfallsicherheit, Skalierbarkeit und Austauschbarkeit. Dennoch erfordert die Gestaltung von Microservices eine sorgfältige Planung, um die Komplexität zu beherrschen und potenzielle Herausforderungen wie hohe Kopplung oder Performanceeinbußen zu vermeiden. Mit einer gut durchdachten Architektur können Microservices jedoch dazu beitragen, moderne Systeme effizient zu entwickeln und zu betreiben.

 

Zusammenfassung

Die wichtigsten Merkmale dieses Stils haben wir für Sie kurz und knapp als Bild zusammengefasst.

Disclaimer: Der Architektur-Spicker basiert zu großen Teilen auf dem Buch Handbuch moderner Software-Architektur von O’Reilly. Für tiefergehende Informationen empfehlen wir dieses Buch zu kaufen.

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*