Definition Microservice Was sind Microservices?

Von Dipl.-Ing. (FH) Stefan Luber Lesedauer: 3 min

Anbieter zum Thema

Microservices sind kleine, voneinander unabhängige Dienste, die für eine Anwendung jeweils eine bestimmte Funktionalität zur Verfügung stellen. Sie bilden in ihrer Gesamtheit die Anwendung samt ihrer Anwendungslogik. Eine Microservice-basierte Anwendung ist ein Gegenentwurf zu einer monolithischen Anwendung. Microservices sind ein unverzichtbares Element Cloud-nativer Applikationen. Sie werden häufig zusammen mit der Container-Technologie eingesetzt und über ein Service-Mesh vernetzt.

Microservices sind kleine, unabhängige Dienste für bestimmte Aufgaben einer Anwendung und bilden einen Gegenentwurf zu monolithischen Anwendungen.
Microservices sind kleine, unabhängige Dienste für bestimmte Aufgaben einer Anwendung und bilden einen Gegenentwurf zu monolithischen Anwendungen.
(Bild: gemeinfrei / Pixabay)

Bei Microservices handelt es sich um kleine, voneinander entkoppelte Dienste. Sie stellen einzelne Funktionalitäten zur Verfügung oder erfüllen für eine Anwendung eine bestimmte Aufgabe. In ihrer Gesamtheit bilden die über Schnittstellen anzusprechenden Microservices die Anwendung mit ihrer Anwendungslogik. Mithilfe einer Microservice-basierten Architektur lassen sich komplexe Applikationen realisieren. Die einzelnen Microservices sorgen für eine Art Modularisierung der Anwendung. Sie können unabhängig voneinander von unterschiedlichen Teams entwickelt und auf verschiedenen Plattformen oder Umgebungen bereitgestellt werden. Der Umfang einer von einem Microservice ausgeführten Aufgabe ist begrenzt und überschaubar. Anpassungen eines Microservices sind schnell und unabhängig von anderen Microservices durchführbar.

Microservices kommunizieren untereinander oder mit anderen Funktionskomponenten über definierte Schnittstellen wie REST-Schnittstellen. Die Schnittstellen verbergen die internen Details der Implementierung eines Microservices und ermöglicht einen standardisierten Informationsaustausch. Nach außen ist nur bedingt ersichtlich, welche Technologie, Architektur oder Programmiersprache vom jeweiligen Microservice für die Erfüllung der spezifischen Aufgabe eingesetzt wird. Die Microservices können mit unterschiedlichen Frameworks, Tools oder Programmiersprachen erstellt worden sein und unterschiedliche Datenbanken nutzen, auch wenn sie zu einer einzigen übergeordneten Applikation gehören. Sie lassen sich unabhängig voneinander in produktive Umgebungen einbringen, verwalten und betreiben. Microservices sind ein unverzichtbares Element Cloud-nativer Applikationen. Sie werden häufig zusammen mit der Container-Virtualisierungstechnologie eingesetzt und über ein sogenanntes Service-Mesh vernetzt.

Abgrenzung zwischen der monolithischen Anwendung und der Microservice-basierten Anwendungsarchitektur

Die Microservice-basierte Anwendungsarchitektur ist ein Gegenentwurf zu monolithischen Anwendungen. Eine monolithische Anwendung besteht aus einem einzigen Programmcode, in dem alle benötigten Funktionen, Services und Prozesse abgebildet und eng miteinander verknüpft sind. Soll nur eine Teilfunktion der Anwendung angepasst werden, ist eine neue Version des Programmcodes bereitzustellen. Das macht die Weiterentwicklung, Optimierung, Überarbeitung und Skalierung der Anwendung komplex und aufwendig. Auch die Fehlersuche und das Testen der Software ist schwieriger als bei einer Microservice-basierten Anwendungsarchitektur, da die komplette Codebasis zu untersuchen ist und die Fehler eingegrenzt werden müssen. Eine einzige fehlerhafte Komponente kann die komplette Anwendung abstürzen lassen oder unbrauchbar machen.

Vor- und Nachteile von Microservices

Vorteile durch den Einsatz von Microservices sind:

  • Microservices sind unabhängig voneinander einsetzbar
  • Microservices sind klein und überschaubar
  • Fehler sind einfach und schnell zu finden und zu beheben
  • Anwendungen lassen sich leicht skalieren und schnell anpassen
  • kleine, agile Teams betreuen und entwickeln die Microservices
  • Entwicklungsprozesse lassen sich parallelisieren
  • Entwicklungszyklen werden verkürzt
  • die Kommunikation mit den Microservices findet über definierte Schnittstellen statt
  • der Ausfall eines Service beeinflusst andere Services nicht
  • es lassen sich Anwendungen mit hoher Performance, Robustheit und Verfügbarkeit realisieren
  • Microservices unterstützen öffentliche, private und hybride Cloud-Umgebungen sowie On-Premises-Infrastrukturen
  • Microservice-basierte Architekturen sind flexibel und agil
  • Microservices unterstützen DevOps-Konzepte sowie die kontinuierliche Integration und kontinuierliche Auslieferung (CI/CD)
  • Microservices bieten eine hohe technologische Flexibilität (freie Auswahl an Tools, Programmiersprachen, Datenbanktechniken und Frameworks)
  • Microservices lassen sich für verschiedene Projekte und Anwendungen wiederverwenden

Als Nachteil der Microservices lässt sich aufführen, dass eine verteilte Microservice-Architektur zu einer höheren Komplexität führen kann. Die vielfältigen Kommunikationsströme können schnell unübersichtlich werden und zu Latenz- oder Lastverteilungsproblemen führen. Zudem bieten die vielen Microservices mit ihren Netzwerkschnittstellen eine größere Angriffsfläche für Sicherheitsbedrohungen und erschweren das Monitoring des Gesamtsystems. In einer Microservice-basierten Anwendung gibt es ständig Anpassungen und Veränderungen. Eine endgültige Fertigstellung und Versionierung der Gesamtsoftware wie bei einer monolithischen Anwendung ist kaum realisierbar. Microservices erfordern einen Kulturwechsel und ein Umdenken im Softwareentwicklungsprozess. Die Arbeitsweise der Entwicklerteams muss sich den veränderten Gegebenheiten anpassen.

(ID:49053001)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung