Die IT steckt im permanenten Umbruch

Microservices

von - 19.11.2018
Microservices sind ein Mittel zur Modularisierung von Applikationen. Dabei wird eine Anwendung in mehrere kleinere Einheiten zerlegt. Man spricht auch von Service-Set und meint eine Gruppe zusammengehörender Dienste. Ein Service kann unabhängig entwickelt, getestet und genutzt werden. Ferner müssen die einzelnen Dienste nicht auf der gleichen Technologie und Infrastruktur beruhen. Durch die Zerlegung eines größeren Dienstes in mehrere unabhängige kleinere Module wird die gesamte Anwendung flexibler. Dies steht im Gegensatz zu monolithischen Applikationen, in denen alle Module im selben Kontext und auf derselben Basisinfrastruktur laufen.
Microservices machen Anwendungen zweifelsfrei flexi­bler. Doch ganz neu ist die Modularisierung von Anwendungen nicht. Im Gegenteil: Der Trend, Anwendungen immer feiner aufzuteilen, ist eigentlich uralt. Waren es bei Mainframe-Applikationen relativ monolithische Anwendungen, so wurden diese bereits in der Client-Server-Welt in einen Server- und einen Client-Anteil zerlegt. Im Anschluss an die Client-Server-Anwendungen etablierten sich in den 90er-Jahren Multi-Tier-Anwendungen. Dabei wurde eine Applikation weiter in mehrere Schichten zerlegt. Dies gilt im Prinzip bis heute, wenngleich der Begriff etwas in den Hintergrund gerückt ist. Aber eine moderne Anwendung, die via Internet zugänglich ist, ist immer eine Multi-Tier-Anwendung. Die Frontends bilden bekanntlich die Smartphone-Apps oder Browser-Anwendungen. Sie laufen meist auf den zugehörigen Endgeräten, dem Smartphone oder Browser. Dahinter befindet sich der Applikationscode, der oftmals bereits mehrere Ebenen umfasst. Und dann ist da noch die Schicht zur Datenbank. Meist wird auch ein Transaktionssystem benötigt.
Auch die Betriebssysteme bestehen seit jeher aus mehreren Schichten. Sie haben einen Kern (Kernel) und eine Reihe umgebender Module wie das Prozess-Handling, ein Benutzerinterface (Shell oder grafisch) oder Ein-/Ausgabesystem, ferner das Dateisystem oder Transaktionssystem. Entwicklungssysteme liefern immer Basisbibliotheken, die wie Microservices grundlegende Dienste offerieren.
Dennoch: Microservices führen diese Aufteilung von Anwendungen in kleinere Einheiten nun konsequent fort. Eines der grundlegenden Prinzipien dabei ist, dass die einzelnen Dienste eben auf unterschiedlichen Umgebungen eingesetzt werden können. Damit wird das gesamte Software-System flexibler. Dies vereinfacht auch die Skalierung eines Dienstes.
Das war etwa bei monolithischen Systemen nicht so einfach. Microservices haben durch ihre feinere Granularität eine Reihe Vorteile gegenüber den umfangreicheren, komplexeren monolithischen Anwendungspaketen. Die einzelnen Module lassen sich nach Bedarf einfacher entwickeln und können auf unterschiedlichen Plattformen zum Einsatz kommen.
Die Migration hin zu Microservices kann schrittweise erfolgen. Wenn etwa ein Dienst bisher durch eine eigene Anwendung im Unternehmen erbracht wurde, lässt sich dieser mit überschaubarem Aufwand zu einem Cloud-Dienst auslagern. Ein Beispiel dafür wäre eine einfache Berechnung. Wird aufgrund einer Gesetzesänderung ein neuer Berechnungslauf notwendig, kann diese Neucodierung ausgelagert werden. Damit müssen natürlich die Verweise auf den neuen Dienst, der nun im Web ist, angepasst werden.
Verwandte Themen