listing.back

Funktionsweise von Microservices

article.detail.published-on:

September 21, 2021

article.detail.reading-time:

article.detail.minutes

article.detail.tags:

Funktionsweise 

Die Idee hinter dem Microservice-Architekturmuster steht ganz im Einklang mit der Unix-Philosophie „Do one thing, do it good“. Microservices unterscheiden sich dadurch, dass sie leicht zu ersetzen sind. So kann ein solcher Service innerhalb kurzer Zeit durch ein neues verantwortliches Entwicklungsteam ersetzt oder erstellt werden. 
 
Jeder Microservice implementiert genau eine Funktion mit Fokus auf die User Experience. Microservices unterscheiden sich auch dadurch, dass sie nur in Gruppen entwickelt werden. Ein Team kann ebenso für die Entwicklung mehrerer Microservices verantwortlich sein, sofern diese technisch zusammenhängen. 
 
Microservices sind von anderen Diensten und Prozessen isoliert. Diese Eigenschaft macht es möglich, dass grundsätzlich jeder Microservice eine andere Programmiersprache oder Datenbank verwenden kann. Wie alle anderen Dienste müssen auch Microservices sicher sein; Prozesse wie Monitoring oder Logging ermöglichen die Überwachung, Authentifizierungs- und Autorisierungsmethoden schützen Daten vor unberechtigtem Zugriff. 
 
Software aus einzelnen Microservices erfordert eine große Infrastruktur. Um den Lastausgleich externer HTTP-Anfragen zu verwalten, werden sogenannte Load Balancer verwendet. Das Content Delivery Network steuert die Auslieferung statischer Inhalte. 
 

Elemente von Microservices

Man unterscheidet zwischen Elementen, die für Geschäftsanforderungen verantwortlich sind, sowie Plattform- und Infrastrukturservices. Infrastruktur- und Plattformdienste übernehmen zentrale Aufgaben wie Monitoring oder Logging. Dienste, die Geschäftsanforderungen erfüllen, werden von einer Reihe von Plattform- oder Infrastrukturdiensten unterstützt. Sie übernehmen zentrale Aufgaben wie Webservice-Logging, Anwendungs- und Service-Monitoring, Betriebsdatenbanken, Konfigurationsmanagement, Autorisierung, Verschlüsselung und Authentifizierung sowie Softwareverteilung, Autoskalierung, A/B-Testing und Testing with Error Injection (FIT).  
 
Darüber hinaus gibt es zentrale Routing-Dienste, die sich um die Zuweisung von URLs an Instanzen mit den entsprechenden Diensten kümmern. Ebenso gibt es Dienste zum Speichern von Daten, insbesondere Caching, relationale und NoSQL-Datenbanken, sowie BLOB-Speicher für beliebige Dateien.