Verteilte Systeme: Microservices ersetzen den Monolithen

Microservices sind enorm beliebt und haben sich über die Jahre weit verbreitet. Mittlerweile gelten sie häufig als Standardarchitekturansatz.

Artikel verschenken
vorlesen Druckansicht
Verteilte Systeme / I Microservices ersetzen den Monolithen
Lesezeit: 18 Min.
Von
  • Stefan Tilkov
  • Eberhard Wolff
Inhaltsverzeichnis

Microservices sind ein Ansatz für die Modularisierung von Softwaresystemen. Statt die Module nur im Sourcecode zu trennen, ist jedes Modul zur Entwicklungszeit ein eigenes Deployment-Artefakt und zur Laufzeit ein eigener Prozess. Zur besseren Isolation der einzelnen Module haben sich mittlerweile Docker-Container durchgesetzt. Sie versehen die Prozesse mit eigenen Dateisystemen. Das ermöglicht zum Beispiel, auf einem Red-Hat-Linux-System einen Docker-Container laufen zu lassen, der eine Ubuntu-Linux-Distribution enthält. Außerdem lassen sich Konfiguration und Bibliotheken der Microservices konsequent voneinander trennen. Daneben hat jeder Docker-Container eine eigene IP-Adresse, sodass er von anderen auch in Bezug auf das Netzwerk getrennt ist.

Aus dieser anderen Umsetzung von Modulen ergeben sich zahlreiche Vorteile. Die Independent-Systems-Architecture-Prinzipien (ISA) zeigen, wie einige Best Practices den maximalen Nutzen aus Microservices ziehen. Als Motiv für Microservices sieht ISA die stärkere Entkopplung der Systemkomponenten. Der Entwickler kann viele technische Entscheidungen für jedes Modul einzeln treffen. Es ist beispielsweise denkbar, für jeden Microservice die am besten passende Programmiersprache zu verwenden. Die Makroarchitektur enthält alle Entscheidungen, die alle Module betreffen und umfasst Entscheidungen, die sich in jedem Microservice anders treffen lassen. Wesentliche Bestandteile der Makroarchitektur sind etwa die Mechanismen zur Integration und Kommunikation, wie REST, über die Module erst ein Gesamtsystem bilden.

Unabhängige Continuous-Delivery-Pipelines sind ein wichtiges Konzept, um tatsächlich jeden Microservice unabhängig von den anderen in Produktion bringen zu können. Ein Feature lässt sich in einem Microservice implementieren und anschließend ohne große Koordination produktiv nutzen.

Das war die Leseprobe unseres heise-Plus-Artikels "Verteilte Systeme: Microservices ersetzen den Monolithen". Mit einem heise-Plus-Abo können Sie den ganzen Artikel lesen.