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).
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.