Wir definieren:

Microservices Definition

Was sind Microservices?

Bei Microservices handelt es sich um ein Architekturmuster in der Softwareentwicklung, das vor allem für Anwendungen verwendet wird, die über längere Zeit „historisch gewachsen“ sind (Legacy-Anwendungen). Komplexe Anwendungen werden in kleinere, flexiblere Codestücke aufgeteilt. Diese so genannten Microservices sind unabhängig bereitstellbare Komponenten, die jeweils nur über einen begrenzten Umfang verfügen. Sie können aber unabhängig voneinander implementiert und in eine Anwendung integriert werden.

Das Gegenteil der Microservice-Architektur ist der sogenannte Monolith, der als einzelne, selbstständige Einheit entwickelt wird. Da Änderungen an einem kleinen Teil der Applikation oft dafür sorgen, dass die gesamte Anwendung neu „deployt“, also neu bereitgestellt, werden muss, finden viele Entwickler den ursprünglichen Einsatz nicht mehr zeitgemäß. Stattdessen setzen Sie vermehrt auf den Einsatz von Microservices.

Vorteile von Microservices

Zu den Microservice-Vorteilen gehört zum einen die bessere Skalierbarkeit der Anwendung, da jeder Microservice einzeln skaliert und mit Third-Party-Diensten integriert werden kann. Außerdem bietet dieses Architekturmuster eine größere technische Unabhängigkeit innerhalb des IT-Teams. Kleine Entwicklungsteams arbeiten oft leistungsstärker, wenn sie eigenverantwortlich für eine kleine Teilmenge an Diensten und Schnittstellen („APIs“) zuständig sind. Außerdem ist es möglich, dass jedes Team einen eigenen Technologie-Stack nutzt und Anwendungen unterschiedlich „deployt“ und überwacht. Dementsprechend können Änderungen auch schneller eingespielt werden. Ebenso wichtig ist, dass Microservices sehr robust sind und eine hohe Fehlertoleranz mitbringen. Schlägt ein Microservice fehl, funktionieren die anderen Komponenten in der Regel weiter und fangen den Ausfall des fehlerhaften Microservices ab.

Im Allgemeinen gilt: Wer bereits agile Methoden oder DevOps nutzt, kann auch mit Microservices die Verteilung von Anwendungen deutlich beschleunigen. Hier gibt es zahlreiche Überschneidungen, sodass die Integration einer Microservice-Architektur nicht allzu schwierig sein sollte.

Microservices Nachteile

Allerdings gibt es auch einige Microservices Nachteile. Da sich bei einer Microservice-Architektur unzählige Komponenten hinzufügen lassen, kann auch dieses Architekturmuster sehr komplex werden. Das kann dazu führen, dass sowohl die Integration als auch das Management von Produkten und Anwendungen umständlich wird. Da es sich bei Microservices um ein Verteiltes System („distributed system“) handelt, ist zudem sowohl der Aufwand für das Testen als auch für die Softwareverteilung höher.

Ebenso haben viele mit Microservices erstellte Anwendungen einen höheren Speicherbedarf und sind auch hinsichtlich Lastverteilung, Fehlertoleranz oder Netzwerk-Latenzen deutlich komplexer. Außerdem müssen die einzelnen Entwicklungsteams eng miteinander in Kontakt stehen, um einerseits Informationsbarrieren zu vermeiden und andererseits die Komplexität so gering wie möglich zu halten.

Grundsätzlich gilt bei der Entscheidung für oder gegen den Einsatz von Microservices, dass man abwägen muss, ob sich die Umstellung auf Microservices für das fragliche Projekt lohnt. Im Allgemeinen gilt aber: Wer bereits agile Methoden oder DevOps nutzt, kann auch mit Microservices die Verteilung von Anwendungen deutlich beschleunigen. Hier gibt es bereits zahlreiche Überschneidungen, sodass die Integration einer Microservice-Architektur nicht allzu schwierig sein sollte.

IT-Dienstleister finden