Eine Microservices-Architektur verbindet einzelne Services zu einer flexiblen Softwaresuite.

Die Zeiten komplexer und monolithisch gestalteter Softwareanwendungen sind vorbei. Microservices sind heutzutage zum Wahrzeichen einer modernen Anwendungsarchitektur geworden. Die Funktionalität wird auf überschaubare Teilsysteme verteilt. Man spricht von so genannten Services bzw. Diensten, die über das Internet, oft über RESTful APIs zur Verfügung gestellt werden. Diese kommunizieren miteinander über sprachunabhängigen Programmierschnittstellen. So erreicht man Flexibilität und Vielfalt, denn neben unterschiedlichsten Gerätetypen kommen auch die verschiedensten Betriebssysteme und Technologien zum Einsatz. Für die Nutzung eines Service spielt dessen technische Umsetzung keine Rolle. Verschiedene Betriebssysteme und die Bereitstellung auf unterschiedlichen Technologien sind möglich. Nutzt eine App beispielsweise den Service, so muss diese nur die Aufrufkonventionen des API kennen. Die technische Umsetzung des Dienstes ist nicht von Interesse. Sofern sich die Schnittstelle nicht ändert, haben Anpassungen am Dienst keine Auswirkungen auf die nutzende Software.

Das Prinzip einer Microservice Architektur
Bild 1: Das Prinzip einer Microservice Architektur

Ein bedeutendes Merkmal ist es, dass bei Microservices die Module unabhängig voneinander in Produktion gebracht werden können. Die Services können dabei flexibel durch unterschiedlichste Anwendungssysteme benutzt werden. Die eigene Anwendung wird damit zum Service, welcher sich wiederum aus der Nutzung anderer Dienste zusammensetzt.
Als vorteilhaft können bei Microservices folgende Eigenschaften angesehen werden. Die einzelnen Dienste sind voneinander unabhängig und können beliebig kombiniert werden. Auch das Deployment einzelner Dienste verläuft unabhängig. Die technische Koordination wird auf ein Mindestmaß reduziert. Die Änderungen und Anpassungen können somit schnell eingearbeitet werden bzw. die Neuimplementierung durchgeführt werden. Durch die Microservice-Architektur wird die Wiederverwendbarkeit von Komponenten bzw. Geschäftslogik gefördert. Das Arbeiten an einzelnen Diensten erfolgt in kleineren Teams und somit trägt das Microservice-Ansatz zur Unterstützung einer agilen Vorgehensweise bei.
Neben den Vorteilen bringt der Einsatz von Microservices auch einige Nachteile mit sich. Es können zum Beispiel höheren Latenzzeiten auftreten. Das liegt daran, dass die Kommunikation zwischen einzelnen Diensten über das Netzwerk erfolgt. Die Umsetzung der technischen Kommunikation zwischen den Services erfordert auch einen zusätzlichen Aufwand. Microservices werden als unabhängige Teile angesehen, für dessen Bereitstellung auch eigenen Bereitstellungsprozess mit Infrastruktur notwendig sind.

Fazit

Die Architektur von Anwendungssystemen wird durch den Ansatz von Microservices flexibler. Die einzelnen Services werden voneinander entkoppelt werden. Damit gelingt es, die steigende Komplexität und die Größe der Softwaresysteme in den Griff zu bekommen.

Links & Quellen:

https://docs.microsoft.com/de-de/azure/architecture/guide/architecture-styles/microservices