Cadence hat auch komplexe Prozesse im Griff Workflow-Orchestrierung auf Open-Source-Basis

Ein Gastbeitrag von Ralph Völter *

Anbieter zum Thema

Die Workflow Engine „Cadence“ vereinfacht die Entwicklung und den Betrieb komplexer, langlaufender und verteilter Geschäftsprozesse. Um in Microservice-basierten Architekturen den erfolgreichen Einsatz sicherzustellen, sollten Unternehmen jedoch die konkreten Möglichkeiten kennen.

Cadence erlaubt es Entwicklern und Entwicklerinnen, Workflows eder in Java, Go, Python oder Ruby zu schreiben.
Cadence erlaubt es Entwicklern und Entwicklerinnen, Workflows eder in Java, Go, Python oder Ruby zu schreiben.
(Bild: Cadence )

In den letzten zehn Jahren hat die Nutzung massiv skalierbarer Open-Source-Technologien wie Apache Cassandra für die Speicherung, Apache Kafka für das Streaming und OpenSearch für die Suche und Analyse deutlich zugenommen. Gleiches gilt nun für Cadence im Hinblick auf die Workflow-Orchestrierung.

Unter Workflow-Orchestrierung versteht man den Prozess der Definition und Ausführung einer Reihe von Aufgaben und der Reihenfolge, in der sie ausgeführt werden sollen. Möglicherweise sollen einige Aufgaben nacheinander und andere gleichzeitig erledigt werden können. Entwickler sehen sich vor allem mit einer hohen Komplexität konfrontiert, wenn sie langlaufende Prozesse erstellen und betreiben, die mehrere Service-Aufrufe beinhalten und eine kontinuierliche Koordination erfordern.

Eine Reduzierung dieser Komplexität verspricht Cadence. Die ursprünglich von Uber konzipierte Open-Source-Technologie vereinfacht den Prozess der Entwicklung und des Betriebs von mehrstufigen und langlaufenden Prozessen drastisch. Entwickler können ihren Code mit Cadence einfacher schreiben und dabei zugleich eine hohe Zuverlässigkeit und Fehlertoleranz, Skalierbarkeit sowie Ausfallsicherheit erreichen.

Das vielleicht entscheidende Merkmal von Cadence im Vergleich zu anderen Workflow-Engine-Ansätzen ist, dass es Entwicklern ermöglicht, Workflows entweder in Java, Go, Python oder Ruby zu schreiben. Daher sind weder eine Visualisierungsnotation noch ein Tool zur Spezifikation von Workflows enthalten. Die Semantik ist einfach nur Code. Allerdings bietet Cadence mit dem Cadence Web Client auch die Möglichkeit, Workflows während ihrer Ausführung zu visualisieren.

Für welche Applikationsarchitektur eignet sich Cadence?

Prinzipiell vereinfacht Cadence die Entwicklung in Bereichen, die eine Verfolgung eines komplexen Zustands, eine Reaktion auf asynchrone Events oder eine Kommunikation mit externen Abhängigkeiten erfordern. Cadence unterstützt dies durch die Bereitstellung eines fehlervermeidenden Stateful-Programmiermodells. Das heißt, durch die Wiederherstellung des Anwendungsstatus nach einem Hardware- oder Software-Ausfall ermöglicht Cadence die Erstellung von fehlertoleranten Anwendungen.

Insgesamt betrachtet ist Cadence vor allem für Anwendungsfälle geeignet, die ein hohes Maß an Skalierbarkeit und Zuverlässigkeit erfordern. Cadence lässt sich horizontal skalieren, um Millionen von Workflows gleichzeitig und Zehntausende von Events pro Sekunde zu unterstützen. Zudem bietet die Workflow Engine eine hohe Zuverlässigkeit durch asynchrone Historie und Event-Replikation.

Nach der Spezifizierung der Anwendungsfälle, für die Cadence geeignet ist, sollten Unternehmen eine detaillierte Projektplanung starten. Dabei sind einige Schlüsselfaktoren zu berücksichtigen:

  • Unternehmen müssen sich vor allem auf ein neues Programmiermodell einstellen. So erfordert die Verwendung von Cadence eine spezifische Strukturierung der Anwendungslogik und die Einhaltung bestimmter Regeln, etwa im Hinblick auf die Aufspaltung einer Logik in eine Aktivität. Darüber hinaus sollten Unternehmen, die Cadence einführen wollen, zunächst nur ein einziges Projekt durchführen und dieses Projekt dann als Grundlage für die Schulung anderer Teams nutzen, die Cadence ebenfalls einsetzen möchten.
  • Cadence ist ein echtes Open-Source-Projekt, das von der Community getrieben wird. Jedes Unternehmen, das entweder seinen ersten Workflow implementiert oder eine Herausforderung bei der Skalierung bewältigen muss, findet Unterstützung in der Cadence-Community. Unternehmen sollten sich also nicht scheuen, Fragen zu stellen oder auch Beiträge für die Community zu leisten.
  • Nicht zuletzt darf auch der Bereich Operations nicht vergessen werden, wenn man Cadence erfolgreich in der Produktion nutzen will. Dabei sind Cadence-spezifische Aspekte wie Sharding und Global Domains ebenso zu berücksichtigen wie Standardthemen, die zum Beispiel die Deployment-Topologie und -Konfiguration, das Sizing, das Monitoring oder Backup und Restore betreffen.

Insgesamt ist Cadence für Unternehmen mit Microservices-basierten Architekturen eine ideale Lösung, um Geschäftsabläufe zu orchestrieren. Die fehlertolerante und zustandsbehaftete Code-Plattform übernimmt die schwierige Verwaltung verteilter Systeme und erlaubt es Anwendungsentwicklern, komplexe Geschäftslogik als einfachen Code auszudrücken.

Ralph Völter
Ralph Völter
(Bild: Instaclustr )

Allerdings ist auch die Cadence-Nutzung mit Herausforderungen verbunden, denen Unternehmen mit der Nutzung eines Managed-Angebots begegnen können. So kann einfach und schnell ein stabiler Produktionsbetrieb auf Basis der Cadence-Technologie etabliert werden. Instaclustr etwa bietet eine vollständig verwaltete Cadence-Lösung an. Nutzer können die Workflow Engine dabei auf Amazon Web Services, Google Cloud Platform und Microsoft Azure betreiben – oder auch auf einer eigenen Cloud- beziehungsweise On-Premise-Infrastruktur.

* Ralph Völter ist VP Sales EMEA bei Instaclustr.

(ID:48458543)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung