auctores
Menü Zur Startseite
Startseite

Monolithische vs. Microservices-Architektur

Modulare, stabile und nachhaltige Anwendungen durch Microservices

Die Microservice-Architektur hat deutliche Vorteile im Vergleich zur klassischen monolithischen Software-Architektur

Microservices ermöglichen es, auch komplexe Anwendungen modular aus voneinander unabhängigen Prozessen zusammenzustellen, die über einheitliche Schnittstellen (APIs) miteinander kommunizieren. Dabei implementieren sie ggf. auch Geschäftsprozesse analog der Orchestrierung der Service-oriented Architecture.

Jeder Microservice kann für sich eine andere Programmiersprache, Datenbank oder Plattform nutzen. Die Unabhängigkeit der Microservices voneinander unterstützt das Software-Deployment nach dem Continous-Delivery-Paradigma. Microservices bleiben durch ihren geringen Umfang übersichtlich und lassen sich so leicht warten und weiterentwickeln.

Ein weiterer Vorteil ist die immanente Stabilität dieser Architektur: Da die Verbindung der einzelnen Microservices untereinander nur über die Schnittstellen erfolgt, können keine ungewollten Abhängigkeiten entstehen. Ein veralteter Microservice lässt sich einfach durch eine Neuimplementierung ersetzen, zudem lassen sich Systeme gegen den Ausfall von Microservices absichern und sind damit im Betrieb robust. Dies ermöglicht eine nachhaltige Weiterentwicklung von Systemen und bei Bedarf selbst die Erweiterung von Legacy-Systemen.

Je nach Bedarf können Microservices unabhängig voneinander skaliert werden. Eine klassische Anwendung beansprucht im Ganzen Prozessorleistung und Arbeitsspeicher und stößt daher etwa bei einem herkömmlichen virtualisierten System schnell an die ihm zugeteilten Obergrenzen. Microservices erhalten dagegen durch die kleinteiligere Struktur jeweils die aktuell optimalen Ressourcen, ohne benachbarten Prozesse im gleichen System auszubremsen.

Da Microservices in sich gekapselt eine vollständige Betriebsystem-Umgebung mitbringen und quasi autark laufen, lassen sich mit ihnen auch plattformunabhängige Single Page Applications umsetzen.