Wo ergibt das Zusammenspiel von Blockchain und Microservices Sinn?

Wie lässt sich eine Architektur auf Basis von Microservices und Blockchain konstruieren und umsetzen? Und welche Entscheidungen können die Entwicklung einer solchen Architektur vereinfachen?

Architektur/Methoden  –  44 Kommentare

Blockchain und Microservices sind zwei der am häufigsten diskutierten Themen der jüngeren Vergangenheit. Nichtsdestoweniger scheint der Blockchain-Hype nun vorbei zu sein. Was bleibt, ist an vielen Stellen Ernüchterung darüber, dass die Blockchain-Technologie nicht der erhoffte Heilsbringer sein wird. Seit Aufkommen der Blockchain hat man erkannt, dass sich zwar viele Probleme mit den Konzepten der Blockchain lösen lassen, häufig jedoch nur unter großen Anstrengungen und verbunden mit hohen Kosten.

Alternativen sind kostengünstige und gut erprobte Konzepte und Techniken. Für diese Umsetzungen gibt es eine große Anzahl an Experten und Kataloge voller Best-Practices und prall gefüllte Werkzeugkästen. Problemstellungen, die man durch den Einsatz von Blockchains elegant lösen kann, scheinen stark limitiert zu sein und manchmal auch etwas konstruiert. War die Blockchain also nur ein Hype?

Bietet sich vielleicht eine Chance, die Blockchain-Techniken mit den Konzepten und Ideen der Microservices zu kombinieren? Kann die Blockhain helfen, die vielfältigen Herausforderungen zu lösen oder wenigstens zu mindern, die in verteilten Architekturen wie Microservices vielen Entwicklern und Architekten Kopfschmerzen bereiten?

Im Folgenden betrachten die Autoren nicht die dezentralisierte offene Welt der Blockchain, sondern sie bewegen sich im Umfeld von Hyperledger und teilprivaten Netzwerken, denn ihrer Meinung nach treffen diese am besten für die Anforderungen in wirtschaftlichen Kontexten zu, in denen sich auch Microservices sinnvoll umsetzen lassen. Nichtsdestoweniger wird es Randfälle geben, diese bestätigen dann die Regel.

Ein weiterer Punkt vorweg: Es ist den Autoren trotz intensiver Recherche nicht gelungen, den Use-Case so abzugrenzen, dass man ihn nicht auch mit anderen Techniken lösen könnte. Das scheint zum einen ein Symptom des abgeflachten Hypes und der stark verbreiteten Skepsis als auch an den besonderen Umständen zu liegen, bei denen sich Blockchain-Techniken einsetzen lassen.

Komplexe Objekte verwalten – aber bitte ohne Zustand

Wo lässt sich die Blockchain also sinnvoll im Rahmen von Microservices einsetzen? Die Antwort scheint zunächst einfach zu sein. Eine Blockchain ist nichts anderes als ein verteilter Zustandsautomat. Insbesondere durch die Digitalisierung und Industrie 4.0 und der damit aufkommenden Verwaltung von Entitäten im Internet of Things sind in hochskalierbaren verteilten Architekturen – Microservice-Anwendungen – häufig die Zustände komplexer Objekte zu verwalten. Dies reicht vom einfachen Management des Zustands eines Schließmechanismus bis hin zur komplexen Zustands- und Fehlerverwaltung von Turbinen in der Energiebranche oder Ladesäulen in der Elektromobilität.

Hier kann das Stateless-Pattern von Microservice-Anwendungen an seine Grenzen geraten, und man beginnt damit, die Zustände in herkömmlichen relationalen Datenbanken zu persistieren, um anschließend für die Zustandsübergänge komplexe Zustandsautomaten bei jeder Anfrage von vorne Aufzubauen. Im Kontext mit verteilten Anwendungen bedeutet dies plakativ einfach ausgedrückt: Man muss sich keine Gedanken mehr um das konsistente (verteilte) Verfügbarhalten von relationalen (oder anders gearteten) Datenbanken machen und könnte die Blockchain-Technologie einsetzen, um eben diese Zustände zu verwalten.