Definition
Bei Microservices ist eine Anwendung in mehrere kleine, in sich abgeschlossene Dienste aufgeteilt, die jeweils eine klar abgegrenzte Aufgabe übernehmen und über definierte Schnittstellen miteinander sprechen. Jeder Dienst hat einen eigenen Code-Stand und lässt sich unabhängig von den anderen weiterentwickeln und ausliefern.
Abgrenzung zum Monolithen
Ein Monolith ist das Gegenstück: eine Anwendung, bei der alle Funktionen in einer einzigen Code-Basis zusammenlaufen und gemeinsam gebaut und ausgeliefert werden. Das ist am Anfang oft die einfachere Wahl, weil ein einzelnes System leichter zu überblicken ist als viele einzelne Dienste mit eigenen Schnittstellen. Microservices lohnen sich erst, wenn dieser eine Vorteil des Monolithen zum Nachteil wird, etwa weil eine kleine Änderung immer das gesamte System betrifft.
Wann sich Microservices lohnen
Microservices sind kein Ziel für sich. Sie lohnen sich, wenn mehrere Teams unabhängig voneinander an derselben Anwendung arbeiten müssen, wenn einzelne Teile völlig unterschiedlich stark belastet werden, oder wenn ein einzelner Fehler nicht das ganze System lahmlegen darf. Für ein kleines Team an einem überschaubaren System ist ein gut strukturierter Monolith meistens die bessere Wahl, nicht die schlechtere.