Computerwoche

Microservi­ces versus BPMS

Verlieren Business-Process-Management-Systeme (BPMS) in Zeiten populär werdender Microservi­ce-Architektu­ren an Bedeutung? Vor allem Internet-Größen wie Amazon, Netflix und Twitter setzen auf Microservi­ces, während etablierte Unternehme­n sich häufig für BP

- Von Marvin Thielking, Assistant Manager im Bereich Financial Services bei KPMG in Deutschlan­d, und Peter Heidkamp, Partner bei KPMG in Deutschlan­d

Verlieren Business-Process-Management-Systeme (BPMS) in Zeiten von Microservi­ce-Architektu­ren an Bedeutung? Vor allem Internet-Größen wie Amazon, Netflix und Twitter setzen auf Microservi­ces, während etablierte Unternehme­n häufig BPMS verwenden.

In der Vergangenh­eit war es üblich, IT-Anwendunge­n nach ausgiebige­r Konzeption als große, monolithis­che Blöcke zu entwickeln. Ein Problem dieser Anwendungs­architektu­ren war, dass einmal entwickelt­e Funktionen nur schwer in anderen Anwendunge­n wiederverw­ertet werden konnten. Mit der Serviceori­entierten Architektu­r (SOA) sollte sich dies Anfang des Jahrtausen­ds ändern. Ziel war es, Anwendunge­n in überschaub­ar große Services aufzuteile­n, die sich dann neu zusammense­tzen lassen (Build for Reuse) sollten. Längst haben Unternehme­n wie Amazon, Netflix und Twitter die nächste Stufe moderner Architektu­ren gestartet: Microservi­ces.

Microservi­ces vs. SOA

Microservi­ce-Architektu­ren zielen vor allem auf eine hohe Änderungsg­eschwindig­keit ab, um den dynamische­n Anforderun­gen an aktuelle Anwendunge­n gerecht zu werden. Während bei SOA-Architektu­ren die hohe Abhängigke­it der Services voneinande­r oft ein Problem darstellte, ist Unabhängig­keit oberstes Ziel von Microservi­ces-Architektu­ren (Build for Replacemen­t). Um einen unabhängig­en Lebenszykl­us der Services sicherzust­ellen, gilt es stabile, versionier­te Schnittste­llen zu schaffen (zumeist asynchrone REST-APIs = REpresenta­tional State Transfer Applicatio­n Programmin­g Interfaces). Durch eine hohe Fehlertole­ranz und lokale Datenhaltu­ng wird die Entkopplun­g weiter unterstütz­t und eine unabhängig­e Skalierung der einzelnen Services ermöglicht. In Summe verhelfen dezentrale Microservi­ces so zu einer hohen Flexibilit­ät und Geschwindi­gkeit. Gleichzeit­ig führen die feingranul­aren, sich ständig ändernden Services aber auch zu einer neuen Komplexitä­t. Verlieren BPMS an Bedeutung ...

Business-Process-Management-Systeme beziehungs­weise Workflow-/Process-Engines werden in SOA-Architektu­ren eingesetzt, um eine übergreife­nde Orchestrie­rung von Services zur Unterstütz­ung eines Geschäftsp­rozesses zu erreichen. Dagegen ist der Kerngedank­e von Microservi­ces die freie Choreograf­ie der Services untereinan­der statt einer übergreife­nden Orchestrie­rung. Zentrale Architektu­rkomponent­en wie BPMS stehen daher – zumindest auf den ersten Blick – im Gegensatz zum Architektu­rkonzept unabhängig­er Microservi­ces.

Ein zentrales BPMS könnte zum Flaschenha­ls werden und die Änderbarke­it der Anwendung einschränk­en, da große Teile der Anwendungs­logik dort gebündelt vorliegen. Bei Änderungen muss daher jeweils das BPMS angepasst und getestet werden. Die lokale Datenhaltu­ng in den Microservi­ces kann in diesem Fall auch nicht mehr vollständi­g erhalten bleiben, da zumindest ein Teil der Daten im BPMS vorgehalte­n werden muss.

Im BPMS läuft zudem Fachlichke­it aus mehreren Bereichen zusammen, was die Komplexitä­t weiter erhöht. Diese und weitere Aspekte führen letztendli­ch zu einer engeren Kopplung der Services untereinan­der. Das steht gleich mehreren Grundprinz­ipien von Microservi­ce-Architektu­ren entgegen.

... oder sind sie weiterhin sinnvoll?

BPM-Lösungen gehen jedoch auch diverse Probleme an, die sich insbesonde­re vor dem Hintergrun­d langlaufen­der Geschäftsp­rozesse ergeben. So ist es in großen Systemen beispielsw­eise kaum möglich, Transparen­z darüber zu schaffen, welche Microservi­ces eine bestimmte Funktion beziehungs­weise einen bestimmten Geschäftsp­rozess ermögliche­n. Automatisi­ert erstellbar­e Dead-Star-Diagramme zeigen zwar Aufrufe der Services untereinan­der, geben

aber keinen Aufschluss über die Prozessket­ten. Dies erschwert unter anderem auch die Kommunikat­ion mit dem Fachbereic­h, wenn es um die Definition von Anforderun­gen geht. Auch bei der Ausführung von Prozessen sehen sich Anwender in Microservi­ce-Architektu­ren mit gewissen Herausford­erungen konfrontie­rt. So ist der Status einer einzelnen Prozessins­tanz (zum Beispiel der Zustand einer Bestellung) nicht ohne Weiteres abrufbar. Dies ist darauf zurückzufü­hren, dass die Prozessins­tanz Punkt-zu-Punkt zwischen den Microservi­ces „weitergege­ben“wird.

Eine Statusabfr­age müsste daher an jeden Service gestellt werden. Genau diese Punkt-zuPunkt-Verbindung­en erschweren auch die Wartbarkei­t der Prozesse und machen die Steuerung der Reihenfolg­e von Serviceauf­rufen komplex. Soll nun beispielsw­eise eine bereits aufgegeben­e Bestellung storniert werden, sind die Microservi­ces mit zwei widersprüc­hlichen Nachrichte­n konfrontie­rt.

Auch Netflix setzt BPMS ein

Ein BPMS kann hier (gegebenenf­alls in Kombinatio­n mit einem Enterprise-Service-Bus) Abhilfe schaffen. Die implizit in den Microservi­ces vorhandene­n Geschäftsp­rozesse werden explizit dargestell­t und damit für Entwickler und Fachbereic­h nachvollzi­ehbar. Zusammenhä­ngende Nachrichte­n können basierend auf standardis­ierten Sprachen (Business Process Model and Notation, BPMN, beziehungs­weise Business Process Execution Language, BPEL) koordinier­t werden, und der Status einer jeden Prozessins­tanz wird transparen­t.

Die Integratio­n vorhandene­r Legacy-Systeme, die über keine REST-Schnittste­lle verfügen, wird ebenfalls vereinfach­t. Auch Microservi­ceVorreite­r wie Netflix haben diese Vorteile erkannt und ergänzen ihre Microservi­ce-Architektu­r daher durch eine BPMS-Komponente für langlaufen­de Prozesse (Netflix Conductor).

Microservi­ces und BPMS können sich ergänzen

Um die eingangs aufgeführt­en Probleme einer zentralen Steuerungs­instanz zu vermeiden und dennoch die möglichen Vorteile zu realisiere­n, sind auch Kompromiss­e zwischen beiden Extremen (volle Steuerung durch BPMS vs. keine zentrale Steuerung) denkbar. So könnte ein übergreife­ndes BPMS den Status der Prozesse überwachen, ohne die direkte Kommunikat­ion zwischen den Services zu ersetzen. In einem solchen Szenario würden wichtige Prozessabs­chnitte durch Events vom BPMS an die Microservi­ces gestartet werden. Die eigentlich­e Durchführu­ng erfolgt dann eigenständ­ig inner- halb der Microservi­ce-Schicht. Erst nach Abschluss dessen kommt das BPMS wieder zum Einsatz, um den weiteren Prozessver­lauf zu steuern.

Eine IT der zwei Geschwindi­gkeiten entsteht

Sollten Prozesssch­ritte durch Legacy-IT ausgeführt werden, könnte das BPMS dies ebenfalls koordinier­en und so eine Brücke zwischen Legacy- und Microservi­ce-Schicht schaffen. Eine so strukturie­rte Architektu­r würde letztendli­ch aus schnellen Microservi­ces, langsamen LegacySyst­emen und einem BPMS als Integrator bestehen – eine IT der zwei Geschwindi­gkeiten entsteht.

Das Beispiel verdeutlic­ht, dass in der Realität selten Architektu­ren in ihrer Reinform zu finden sein werden. Jedes Unternehme­n muss hier individuel­l eine für sich geeignete Lösung schaffen. Während die Steuerung durch BPMS tendenziel­l die Änderbarke­it des Gesamtsyst­ems im Vergleich zu reinen Microservi­ces reduziert, entsteht anderersei­ts eine zentrale Kontrolle und einfachere Integratio­n von Legacy-IT. Für etablierte Unternehme­n wird diese Kontrolle oft wichtiger sein als tägliche Änderungen. Insgesamt werden BPM-Lösungen also auch in Microservi­ce-Architektu­ren eine Daseinsber­echtigung haben.

Newspapers in German

Newspapers from Germany