Prozess-Orchestrierung mit Camunda 8

Verfasst von Frank Oehlschläger   //  

Wenn es darum geht, Geschäftsprozesse durchgehend von Anfang bis Ende zu modellieren und zu verwalten, müssen große Unternehmen komplexe Abläufe, viele Mitarbeiter und zahlreiche Systeme orchestrieren. Komplexe Geschäftsprozesse sollten dabei so aufbereitet werden, dass alle Beteiligten sie jederzeit nachvollziehen können.

Der offene Modelliersprachen-Standard BPMN unterstützt viele Unternehmen, vielfältige Prozessabhängigkeiten zu visualisieren und als Flussdiagramm darzustellen. Diese BPMN-Prozesse lassen sich anschließend mit einer Workflow-Engine wie der Camunda Platform ausführen. Der visuelle Chart wird so Teil des Programmcodes.

Ein Schwerpunkt der End-to-End-Automatisierung ist aktuell die sogenannte 'endpoint diversity challenge'. Daniel Meyer, CTO von Camunda sagte dazu auf der #CamundaCon22 in Berlin: „Die meisten Prozesse erfordern die Integration mehrerer, externer Systeme, was teuer in der Entwicklung und Wartung ist, insbesondere bei selbst entwickelten und veralteten Systemen“.

camundacon22 stageAuf der Bühne der #camundacon22: Bernd Rücker und Daniel Meyer (v.l.)

Camunda 8 – Der Konzeptwechsel

In Camunda 8 wurde ein Austausch der Engine vorgenommen, der den Funktionsumfang erstmal beschränkt, jedoch die Performance drastisch verbessert. Der nicht ganz so neue Aufbau folgt der Logik des bereits bekannten Systems namens Zeebe, welches als Cloud-Native-Anwendung entwickelt wurde. Daher ist es wenig überraschend, dass Camunda 8 auch zuerst als Cloud Service bereitgestellt und als OnPremise Version nachgereicht wurde.

Die bisherige Engine arbeitete top down, sie verteilte einzelne Aufgaben von oben herab an verschiedene Arbeitsinstanzen (Worker-Threads). Eine Skalierung der Prozesse bedeutete in diesem Zusammenhang die Skalierung des gesamten Systems.

Mit den External Tasks wurde dieses Konzept nun umgedreht. Die Engine verteilt nur noch Aufgaben und externe Anwendungen fragen bottom up nach Aufgaben, um diese zu verarbeiten. Ein großer Vorteil davon ist, dass nun gezielt einzelne Tasks skaliert werden können, indem man die Anzahl der External Worker erhöht. Das übrige System bleibt davon unberührt.

Die anfänglich peripheren Ansätze der External Tasks gab es schon in Camunda 7. In der neuen Version übernehmen sie nun Kernaufgaben, während sich die Plattform darauf fokussiert, die einzelnen Prozessschritte zu orchestrieren. Der individuelle und fachliche Rechenaufwand ist aus der Engine herausgenommen worden.

Sicherlich ließe sich damit ein Teil des Performancegewinns erklären. Weitaus bedeutender ist allerdings die technische Lösung unter der Haube, bei der die relationalen Datenbanken abgelöst wurden, die immer den kompletten Zustand gespeichert haben.

Es kommt nunmehr eine Art Event-System zum Einsatz, welches vollständig rekonstruierbar nur noch die Änderungen an den Daten erfasst. Dies erspart viel Aufwand bei den Datenzugriffen zur Laufzeit, benötigt allerdings etwas mehr Zeit beim Start des Systems.

Camunda 8 wird in der Cloud als Software as a Service (SaaS) angeboten. Zur Version gehören u.a. ein browserbasierter Modeler und ein angepasster Nachfolger des Cockpits namens Camunda Operate. Mit der on-premise Version kann die Camunda-Cloud auch im eigenen Unternehmen aufgebaut werden.

Ebenfalls neu ist der Camunda Desktop Modeler Version 5 als lokal installierte Version des Modelers. Neben dem vollständigen Support von Camunda 7 und 8 ist der Modeler stark überarbeitet worden und enthält jetzt auch Funktionalitäten, die früher als Plugins nachinstalliert werden mussten. So existiert jetzt z.B. die Validierung über den Linter out of the box.

Bis dahin beindruckte der Konzeptwechsel der Engine zwar mit Performance, bot darüber hinaus aber wenig Argumente für ein Upgrade auf Camunda 8.

Vorhang auf für die Konnektoren

Auf der #CamundaCon22 wurden im September erstmal die Konnektoren öffentlich vorgestellt. Sowohl Camunda als auch die Community entwickeln diese Bausteine seit einiger Zeit als automatisierte Erweiterungen für die Engine. Sie werden als Template bereitgestellt und können bestimmte vordefinierte Aufgaben übernehmen.

Über einen Konnektor kann z.B. ein Element im Prozessmodell hinzugefügt werden, was nicht nur ein eigenes Symbol haben kann, sondern auch vorgefertigte Aufgaben übernimmt. Hierbei müssen lediglich einige variable Parameter angegeben werden.

Der automatisierte Code gibt vor, welche Informationen es haben möchte. Dies wird bereits bei der Modellierung in der Properties-Maske des Konnektors übergeben und muss nicht durch Programmierung des Tasks eigenhändig durchgeführt werden. Dadurch reduziert sich der Aufwand für einzelne Prozesse, da diese Konnektoren für verschiedene Prozesse direkt übernommen werden können.

Es entsteht aktuell eine große Bibliothek an Konnektoren, man kann aber auch individuelle Konnektoren für eigene Zwecke entwickeln. Anwendungsfälle für Konnektoren können z.B. die Anbindung von Datenbanken, E-Mail oder Applikationen wie z.B. Office 365 sein.

Camunda möchte mit diesem Entwicklungsschritt (nun doch) in Richtung low-code-Umgebung gehen, in der die Templates einmalig aufgesetzt und dann ohne größere Programmierarbeiten verwaltet und verwendet werden können.

So werden technische und fachliche Aufgaben dahingehend voneinander gelöst, als dass das Template bereits alle notwendigen technischen Einstellungen beinhaltet und die Ausgestaltung der Services rein inhaltlich-fachliche Gesichtspunkte berücksichtigt.

Der auf der #CamundaCon22 vorgestellte Twitter-Konnektor enthält insofern bereits alle technischen Einstellungen, die für eine Datenübergabe notwendig sind, so dass nach der initialen Konfiguration "nur noch" die Inhalte der Nachricht zu bestimmen sind. Inwiefern dieser Konnektor auf Grund der aktuellen Unternehmensentwicklungen bei Twitter noch an Relevanz behält, wird sich zeigen.

Für große Businesskunden bieten die Konnektoren zu Twitter oder dem Chattool Slack keine großen Vorteile. Sie werden auch von der Community eher als Demos im Sinne von "Hallo Welt" verstanden und sollen anschaulich den Funktionsumfang aufzeigen sowie Vorlagen zur Implementierung anbieten. Camunda zeigt mit den Konnektoren erneut, wie wichtig eine große und lebendige Community ist. Es muss nicht alles direkt vom Hersteller kommen.

Fazit

Letztlich kommt das Auflösen der 'endpoint diversity challenge' vor allem durch Prozessoptimierung zustande. Camunda 8 kann hierbei die Workflows auf drei Ebenen beeinflussen:

  1. Die Fachabteilungen können schneller hochperformante Prozesse modellieren und anschließend automatisiert ablaufen lassen.
  2. Die Entwickler bekommen Freiraum für neue Implementierungen, weil sich der Zeitaufwand zur Koordination mit dem Fachbereich reduziert.
  3. Die hohe Performance der Engine zur Laufzeit beschleunigt zusätzlich die maschinelle Verarbeitungszeit der Prozesse.

Für 2023 sind weitere Konnektoren vom Hersteller und der Community in Arbeit. Erste Einblicke geben wir beim nächsten Camunda-Meetup am 17. April 2023 in der Nord/LB in Hannover, zu dem alle Interessierten herzlich eingeladen sind.

Wir dürfen darüber hinaus gespannt sein auf die weiteren Neuerungen in diesem Jahr und abwarten, ob die Konnektoren die Nachfrage nach Camunda 8 erhöhen. Die hauseigene Zielrichtung ist klar vorgegeben – die #CamundaCon23 präsentiert sich in New York einem weltweiten Publikum – wieder mit Logo in Streetart?

camundacon22 streetart