Asset-Herausgeber

Microservices

  Bibliographische Angaben

Microservices

Autorinnen / Autoren:
Jan Gottschick
Zuletzt bearbeitet:
Feb 2019
Titel:
Microservices
Trendthema Nummer:
36
Herausgeber:
Kompetenzzentrum Öffentliche IT
Titel der Gesamtausgabe
ÖFIT-Trendschau: Öffentliche Informationstechnologie in der digitalisierten Gesellschaft
Erscheinungsort:
Berlin
Autorinnen und Autoren der Gesamtausgabe:
Mike Weber, Stephan Gauch, Faruch Amini, Tristan Kaiser, Jens Tiemann, Carsten Schmoll, Lutz Henckel, Gabriele Goldacker, Petra Hoepner, Nadja Menz, Maximilian Schmidt, Michael Stemmer, Florian Weigand, Christian Welzel, Jonas Pattberg, Nicole Opiela, Florian Friederici, Jan Gottschick, Jan Dennis Gumz, Fabian Manzke, Rudolf Roth, Dorian Grosch, Maximilian Gahntz, Hannes Wünsche, Simon Sebastian Hunt, Fabian Kirstein, Dunja Nofal, Basanta Thapa, Hüseyin Ugur Sagkal, Dorian Wachsmann, Michael Rothe, Oliver Schmidt, Jens Fromm
URL:
https://www.oeffentliche-it.de/-/microservices
ISBN:
978-3-9816025-2-4
Lizenz:
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung 3.0 Deutschland Lizenz (CC BY 3.0 DE) http://creativecommons.org/licenses/by/3.0 de/legalcode. Bedingung für die Nutzung des Werkes ist die Angabe der Namen der Autoren und Herausgeber.

Veränderungs- und Innovationszyklen in der IT verlaufen immer schneller. Die Anpassung monolithischer Systeme an diese Dynamik ist mit einem hohen Aufwand und einem erheblichen Entwicklungsrisiko verbunden. Eine mögliche Lösung bieten flexible, skalierbare Microservices mit ihren komplementären Technologien Self-Contained-Systems und Serverless Functions. Diese realisieren einzelne, in sich abgeschlossene Geschäftsaktivitäten, die zu einem Gesamtsystem kombiniert werden. Liegt darin die Lösung für aktuelle und zukünftige Herausforderungen an die IT – oder wird die Komplexität nur auf eine andere Ebene verlagert?

Erleichterte Umsetzung innovativer Lösungen

Microservices (µServices) sind funktional stark fokussierte, Software-Bausteine, die von kleinen Teams entwickelt werden können und zu einem Gesamtsystem flexibel kombiniert werden. µServices dienen der effizienten, digitalen Unterstützung von Geschäftsprozessen. Sie sollen dabei helfen, Änderungen von Geschäftsmodellen und -prozessen sowie die Änderungen von gesetzlichen Normen und gesellschaftlichen Erwartungen zeitnah umzusetzen - etwa auch im E-Government (siehe Verwaltung x.0). Einzelne µServices werden stark auf einen inhaltlichen Kontext fokussiert, wie beispielsweise auf einen digitalen Bezahlvorgang, und technisch streng voneinander abgegrenzt und gekapselt. Über offene Kommunikationsschnittstellen (APIs) sowie Nachrichten (Events) werden sie nur lose miteinander gekoppelt. Auf diese Weise können µServices unabhängig voneinander mit unterschiedlichen Technologien entwickelt, installiert, bereitgestellt und gewartet werden. Dies erleichtert die Umsetzung innovativer Ansätze und Lösungen. Sie können zudem unabhängig voneinander skaliert werden, um Anforderungen an Performanz und Verfügbarkeit differenziert gerecht zu werden. Der Schwerpunkt der Herangehensweise liegt weniger auf der einfachen Wiederverwendung von Komponenten, als vielmehr auf Praktiken mit dem Ziel, Änderungen an den IT-Lösungen flexibel und insbesondere schnell umsetzen zu können.

Die Idee der µServices wird einerseits durch das Konzept der Self-Contained Systems ergänzt, bei denen die Benutzeroberfläche, Geschäftslogik und Datenhaltung für einen stark abgegrenzten Teilprozess als wiederverwendbare Teilanwendung gebündelt wird, analog wie man Spielklötze zu größeren Modellen zusammenstecken kann. Andererseits gibt es die Serverless Functions. Dies sind zustandslose Funktionen, die einzeln bereitgestellt werden können. Der Entwickler definiert zum Starten der Funktion lediglich die auslösenden Ereignisse, und beschreibt so deklarativ wie die Funktionen zu Prozessen verknüpft werden, ähnlich der Idee von Petrinetzen. Insbesondere braucht der Entwickler sich aber auch nicht mehr um die Infrastruktur selbst zu kümmern, da die Kontrolle der Ausführung von Serverless Functions durch die Plattform selbst erfolgt. Die Grundidee, ein IT-System in kleine, wiederverwendbare Komponenten zu zerlegen und diese zu vernetzen, gibt es bereits seit Jahren unter dem IT-Paradigma der Modularisierung etwa durch Service-Oriented Architecture (SOA), und wird mit den µServices weiter verfeinert. Technisch werden µServices durch die Prinzipien der „The Twelve-Factor App" charakterisiert.

Begriffliche Verortung

Netzwerkartige Verortung des Themenfeldes
Gesellschaftliche und wissenschaftliche Verortung

Microservices wecken hohe Erwartungen

Die gewonnene Flexibilität, die geringeren Entwicklungsrisiken der einzelnen Services, Funktionen und Self-Contained Systems sowie die klare Abgrenzung dieser einzelnen Teile, bei der jedes quasi ein unabhängiges Produkt darstellt, haben wesentlich zu ihrem Einsatz bei großen Unternehmen der Digitalbranche geführt. In einem rasanten Tempo werden derzeit auch die Technologien für Enterprise-Lösungen optimiert und bestehende Plattformen transformiert, um µServices unterstützen zu können. Das Thema geht mit hohen kurz- und mittelfristigen Erwartungen von Branchenkennern einher.

µServices können nur dann die an sie gerichteten Erwartungen erfüllen, wenn sie in eine übergreifende Cloud-Infrastruktur eingebettet sind, bspw. auf Basis von Kubernetes, sozusagen das Betriebssystem für Container. Die Anforderungen an die Orchestrierung dutzender oder hunderter µServices sind beträchtlich. So ist eine höhere Automatisierung des IT-Betriebs notwendig. Der Aufbau der erforderlichen IT-Infrastruktur stellt eine beträchtliche Hürde dar, deren Überwindung massive Investitionen erfordert. Die konkrete Umsetzung geht mit neuen, in vielerlei Hinsicht höheren Anforderungen einher: die verteilten Systeme sollen hoch skalieren und müssen in Fehlersituationen ausreichend widerstandsfähig sein. Dafür bedarf es auch neuer Systemfunktionen, bspw. einem Service Mesh, der die einzelnen Dienste miteinander effizient und sicher vernetzt.

Gesamtstrategie erforderlich

Um zu technisch nachhaltigen Lösungen zu kommen, sollten gerade angesichts der gewünschten Flexibilität im Rahmen einer gemeinsamen IT Governance einheitliche Grundsätze und Vorgehensweisen vereinbart sowie Best-Practices berücksichtigt werden. Damit viele kleine µServices am Ende zu einer sinnvollen Gesamtlösung aggregiert werden können, ist eine gut durchdachte Makroarchitektur notwendig, die den technischen Rahmen vorgibt. Dies betrifft insbesondere die Schnittstellen, die definiert, gepflegt und veröffentlicht werden müssen. Um µServices zu identifizieren und deren Umfang sowie die abgrenzenden Kontexte zu bestimmen, stehen Methoden wie Domain-Driven Design (DDD), Domain Story Telling und Event Storming zur Verfügung. Die Umstellung auf eine µService-Architektur erfordert daher eine längerfristige Migration, bei der auf Basis einer Gesamtstrategie Schnittstellen geschaffen werden. µServices können dann zunächst neue Funktionen realisieren und später schrittweise vorhandene Funktionalitäten übernehmen.

Was bedeutet dies für den öffentlichen Sektor? Eine entscheidende Voraussetzung für die Umsetzung von µServices sind effektive, effiziente und direkte Kommunikationsstrukturen bei IT-Anbietern und Verwaltungen, um notwendige technische, geschäftliche und administrative Abstimmungen zwischen den für die einzelnen Services verantwortlichen Teams zu gewährleisten. Wird zudem externer IT-Sachverstand benötigt, lässt sich dieser dementsprechend nur schwierig mit gegenwärtigen Vorgangsmodellen und klassischen Vergabeverfahren hinzuziehen. Erst wenn diese rechtlichen und organisationskulturellen Fragen geklärt sind, könnten sich µServices als durchaus vorteilhaft für die Behörden-IT erweisen. Die funktionale Differenzierung öffentlicher Verwaltungen mit klar definierten Zuständigkeiten für einzelne Verwaltungsleistungen fügt sich nahtlos in das neue Entwicklungsparadigma.

Themenkonjunkturen

Suchanfragen und Zugriffe auf Wikipedia-Artikel
Wissenschaftliche Publikationen und Patentanmeldungen

Folgenabschätzung

Möglichkeiten

  • Entwicklung neuer Services mit überschaubarem Risiko
  • Differenzierte Skalierbarkeit und Elastizität der Systeme
  • Flexibilität und Innovationsoffenheit der Systeme
  • Kontinuierliche Aktualisierungen
  • Geringere Fertigungstiefe
  • Ausschöpfung aller Cloud-Vorteile (siehe Cloud Computing)

Wagnisse

  • Anpassung der Innovations- und Kommunikationskultur der Organisation
  • Schaffen der technischen und organisatorischen Voraussetzungen für eine automatisierte Cloud-Infrastruktur
  • Aufwand der Migration
  • Überwindung der technologischen und organisatorischen Pfadabhängigkeiten (Legacy-, Heritage- bzw. Vintage-Systeme)
  • Akzeptanz und Annahme des neuen Entwicklungsparadigmas
  • Gewährleistung der Qualität einzelner µServices
  • Komplexität der Systeme mit Hunderten oder Tausenden µServices
  • Gewährleistung des angemessenen Antwortverhaltens des Systems

Handlungsräume

Strategie und Vision

Um die Voraussetzungen für die Nutzung der Vorzüge von µServices, Self-Contained Systems und Serverless Functions zu schaffen, bedarf es gleichermaßen einer Vision und einer Umsetzungsstrategie. Sie helfen bei der Vermeidung von Fehlinvestitionen durch das alleinige Festhalten an monolithischen Lösungen.

Pragmatische Umsetzung

Die Umstellungsrisiken sind beträchtlich. Um diese zu managen ist Pragmatismus gefragt, etwa die Öffnung bestehender Systeme für neue µServices, deren Entwicklung mit innovationsorientierten Vergabeverfahren ausgeschrieben wird.

 

Kommunikationskultur

Mit wachsender technischer Komplexität nimmt die Bedeutung der Kommunikationskultur zu, um mehr eigenständige Verantwortungsbereiche und deren Koordinierung zu ermöglichen und zu fördern.