Microservice

Was ist Microservice? & Wann spricht man von Microservice?

Microservices sind ein Architekturkonzept der Anwendungsentwicklung. Was sie von herkömmlichen, monolithischen (aus einem Stück bestehend, zusammenhängend) Ansätzen unterscheidet, ist die Art und Weise, wie Apps in ihre Kernfunktionen aufgeschlüsselt werden. Jede Funktion bzw. jeder Service kann unabhängig entwickelt und implementiert werden. Das heißt, individuelle Services können ohne jegliche Beeinflussung anderer Services funktionieren (oder auch nicht).

microservice_vs_monolithic

Man denke an den letzten online Shop den man besucht hat, und die dortige Produktsuche, diese Produktsuche ist ein Service. Vielleicht wurden einem auch Empfehlungen, oder verwandte Produkte angezeigt die aus einer Datenbank von Käuferpräferenzen stammen. Oder man hat was in den Warenkorb gelegt. Dies sind ebenfalls Services.

Ein Microservice ist also eine Kernfunktion einer Anwendung und er wird unabhängig von anderen Services ausgeführt. Die Microservice-Architektur ist aber mehr als nur die Verknüpfungen solcher Kernfunktionen. Sie ist eine Umstrukturierung der Entwicklerteams und deren Kommunikation, welche auf unvermeidbare Fehler vorbereitet, zukünftige Skalierbarkeit plant und die Integration neuer Features vereinfacht.

Wie das funktioniert? Durch Anpassung der Grundlagen einer SOA (Service-Oriented Architecture) zur Bereitstellung von Microservices.

Mehr zu SOA & Microservices findest du hier.

Vorteile von Microservices:

Schnellere Markteinführung
Die Entwicklungszyklen in einer Microservice-Architektur sind viel kürzer, deshalb können Implementierungen und Updates schneller & agiler durchgeführt werden.
Hochgradig skalierbar
Besteht Bedarf an einem Service? Dann können diese über mehrere Server und Infrastrukturen hinweg flexibel implementiert werden.
Robustheit
Sind die einzelnen Services gut entwickelt, beeinflussen sie sich nicht. Das heißt, wenn eine Komponente ausfällt, streikt im Gegensatz zum monolithischen Ansatz nicht gleich die gesamte App.
Einfache Implementierung
Da microservice-basierte Apps modular und kleiner als herkömmliche monolithische Apps aufgebaut sind, gibt es weniger Probleme bei der Implementierung als bei monolithischen Anwendungen. Zwar erfordert dies eine intensivere Koordination, bietet aber sonst sehr viel Vorteile.
Besserer Zugriff
Da eine die App in kleinere Bestandteile aufgegliedert wird, können Entwickler die einzelnen Komponenten leichter verstehen, aktualisieren und verbessern. Dies führt zu kürzeren Entwicklungszyklen.
Mehr Offenheit
Dank sprachunabhängiger APIs können Entwickler ihre bevorzugte Sprache bzw. Technologie für die notwendige Funktion frei wählen.
Zurück