Microservices einfach und schnell mit Cadence orchestrieren

Massiv skalierbare Open-Source-Technologien wie Apache Cassandra, PostgreSQL oder Apache Kafka gewinnen zunehmend an Bedeutung. Im Bereich Workfloworchestrierung betrifft das die fehlertolerante, zustandsbehaftete Workflow-Engine Cadence. Die ursprünglich von Uber konzipierte Open-Source-Technologie vereinfacht den Prozess der Entwicklung und des Betriebs von komplexen, mehrstufigen und langlaufenden Prozessen erheblich. Cadence bietet eine hohe Zuverlässigkeit, Fehlertoleranz, Skalierbarkeit und Ausfallsicherheit. Es richtet sich primär an Entwickler und unterstützt sie entscheidend beim Schreiben von Code. Sie können Workflows in Code abbilden und die Businesslogik abstrahiert von der Workflowlogik in Code schreiben. Im Unterschied zu anderen Workflow-Engine-Ansätzen sind dabei wahlweise Java, Go, Python oder Ruby nutzbar. Cadence enthält weder eine Visualisierungsnotation noch ein Tool zur Spezifikation von Workflows, das heißt, die Semantik ist einfach nur Code. Allerdings bietet es mit dem Cadence-Webclient auch die Möglichkeit, Workflows während ihrer Ausführung zu visualisieren. Durch seine Leistungsmerkmale und vielfältigen Vorteile ist es eine ideale Lösung für den Einsatz in Architekturen, die auf Microservices basieren. Microservices-Architekturen sind oft sehr komplex. Sie bestehen aus vielen verschiedenen Services, die auf unterschiedliche Weise miteinander kommunizieren. In solchen verteilten Systemen können Kommunikationsprotokolle und -muster, die Transaktionssicherheit oder die Fehlerbehandlung oft nur sehr schwer implementiert werden. Es gibt zwar mehrere Möglichkeiten für die Microservices-Kommunikation wie Request-Reponse-Pattern, Event-driven-Architekturen oder die Nutzung eines Microservice als zentralem Orchestrator. Bei einer hohen Anzahl Microservices kommen solche Ansätze – gerade auch in verteilten Umgebungen – aber schnell an ihre Grenzen, etwa hinsichtlich einfachem Fehler-Handling oder problemloser Skalierung. Cadence kann dabei helfen, diese Herausforderungen zu bewältigen, indem es die Orchestrierung von Microservices vereinfacht und den Entwicklungsprozess beschleunigt – gewissermaßen fungiert es dabei als Prozessautomatisierungslösung. LUST AUF NOCH MEHR ARCHITEKTUR-TRENDS? Entdecke Workshops vom 4. – 6. Dezember Mehr erfahren .track-box-in-blog3373457.blog-track-display{ background-image: url("https://mad-summit.de/wp-content/uploads/2023/05/MADS_MUC23_NL_Blog_GT_1153_v1a.jpg"); } .track-box-in-blog3373457.blog-track-display{ color:white; padding: 20px 25px; background-size: cover; } Cadence adressiert die Prozessebene Vereinfacht ausgedrückt kann man sagen: Was Kubernetes oder Service Meshes auf infrastruktureller Ebene leisten, bietet Cadence auf prozessualer Ebene. Ein Service Mesh unterstützt zwar die Kommunikation und bietet Nachvollziehbarkeit hinsichtlich des Traffics, liefert aber keine Informationen zum Status. Das führt etwa dazu, dass eine Service-Instanz, die ein externes API aufruft, beim Warten auf die Antwort beendet wird. Wie kann man nun die Persistenz der Ergebnisse einer Transaktion zwischen Microservices erreichen, beispielweise bei einer Bestellung, bei der die Daten verteilt sind, und jeder Service eine andere Aufgabe übernimmt? Eine Auftragstransaktion besteht zum Beispiel aus Kundendaten, Produktdaten oder Preisdaten. Für die Abwicklung einer verteilten Transaktion sind unterschiedliche Architektur- und Systembestandteile von Relevanz, zum Beispiel verschiedene interne und externe Requests, Datenbanken, Caches oder Queues. All das mag auf Kubernetes als Lösung hindeuten, aber das Orchestrierungswerkzeug betrifft nur die Infrastrukturebene. Cadence hingegen adressiert die Prozessebene. Prinzipiell vereinfacht es die Verfolgung eines komplexen Zustands, die Reaktion auf asynchrone Events oder die Kommunikation mit externen Abhängigkeiten. Cadence unterstützt das durch die Bereitstellung eines fehlervermeidenden Stateful-Programmiermodells, das aus Workflows und Activities besteht. Workflows sind fehlertolerant und stateful. Aufgrund des Event-Sourcing-Mechanismus sind sie immun gegen Prozess- und Service-Ausfälle. Im Detail ist ein Workflow eine State Machine mit Entscheidungsaufgaben, die den Workflow von einem Zustand in einen anderen bringt. Solange die Workflowausführung nicht beendet ist, steht zumindest noch eine Entscheidungsaufgabe an. Es ist damit nicht möglich, eine Aufgabe zu starten, während eine andere bereits gestartet, aber noch nicht beendet ist. Nicht zuletzt orchestrieren die Workflows die Activities – sequenziell oder parallel. Workflows können ihren Zustand durch Event Sourcing also wiederherstellen. Das ist allerdings nur möglich, wenn der Code deterministisch ist und jedes Mal, wenn er ausgeführt wird, das gleiche Ergebnis liefert. Da das externe API Aufrufe im Workflowcode verbietet, umfasst das Cadence-Programmiermodell auch Activities. Schließlich werden in einer verteilten Microservices-Architektur auch remote APIs aufgerufen, um Aufgaben auszuführen. Solche Aufrufe können jedoch fehlerhaft sein und nicht fehlertolerant gestaltet werden, da sie außerhalb des Cadence-Workflows liegen. Hier setzen die Activities als wesentliches Element des Cadence-Programmiermodells an. Bestandteile und Funktionen sind zum Beispiel die Businesslogik, der asynchrone Aufruf über Tasklisten, die mögliche Überwachung mit dem Versenden von Heartbeats oder automatische Retries gemäß der Retry Policy. Workflows und Activities sind somit die zentralen Komponenten des Cadence-Programmiermodells. Doch wie sieht das Ganze nun im Code aus? Der Heartbeat-Mechanismus, der für eine schnelle Reaktion auf Abstürze zur Verfügung steht, liefert dafür ein Beispiel (Abb. 1). Abb. 1: Der Heartbeat-Mechanismus steht für eine schnelle Reaktion auf Abstürze zur Verfügung [1] Weitreichendes Anwendungsspektrum Wann sollte ein Unternehmen nun die Verwendung von Cadence in Betracht ziehen? Konkrete Anwendungsfälle sind aufgrund des Funktionsumfangs zum Beispiel: mehrstufige Geschäftsprozesse, die Microservices-Aufrufe verwenden Systeme, bei denen Polling-Methoden genutzt werden ereignisgesteuerte Anwendungen Kommunikationen mit externen Abhängigkeiten Migrationen Pipelines wie Daten-Pipelines oder ML-Pipelines Die Vorteile einer fehlertoleranten Orchestrierungs- und Workflowmanagementlösung wie Cadence sind weitreichend: Vor allem vereinfacht sie die Entwicklung und den Betrieb komplexer, langlaufender, automatisierter Geschäftsprozesse, die mehrere Serviceaufrufe beinhalten und eine kontinuierliche Koordination erfordern. Dadurch ist Cadence ideal geeignet für den Einsatz in Microservices-basierten Architekturen. Es ist hochverfügbar und extrem skalierbar bis hin zu mehreren zehntausend Aktualisierungen pro Sekunde und Millionen von Workflows. Nicht zuletzt ist die Workflow-Engine ein echtes Open-Source-Projekt, das von der Community getrieben wird und dessen langfristige Unterstützung durch das Cadence-Team bei Uber gesichert ist. Die Marktrelevanz von Cadence wird nach allgemeiner Einschätzung künftig deutlich zunehmen. Dazu beitragen könnte auch der aktuell zu beobachtende Trend zur Nutzung von Process-Mining-Anwendungen. Schließlich kann Cadence als Orchestrator auch als eine zentrale Datenquelle für die Prozessanalyse und damit auch für die Prozessoptimierung fungieren; zwei Themen, die derzeit ganz oben auf der IT-Agenda vieler Unternehmen stehen. Prinzipiell können Unternehmen Cadence in einer On-Premises- oder eigenen Cloud-Infrastruktur einsetzen. Ebenfalls verfügbar sind aber auch vollständig verwaltete Cadence-Lösungen, sodass Unternehmen die Workflow-Engine auch auf Amazon Web Services, Google Cloud Platform oder Microsoft Azure betreiben können. Die Nutzung solcher Managed-Platform-Angebote ist insbesondere für Unternehmen interessant, die intern nicht über ausreichend Ressourcen verfügen, aber trotzdem von den Vorteilen eines innovativen Orches-trierungsansatzes profitieren möchten. p.gdlr-speaker-position{color:#fff;} .classicstyle { color: #FFFFFF !important; background-color: #337AB7 !important; } .classicstyle:hover { color: #FFFFFF !important; background-color: #24547E !important; } .session-type { color: #ffffff; } a.tagcontaineritem.ijsstyle.classicstyle { color: #FFFFFF !important; } a.tagcontaineritem.ijsstyle.classicstyle:hover { color: #FFFFFF !important; } Links & Literatur [1] https://cadenceworkflow.io/docs/java-client/implementing-activities/#activity-heart-beating The post Microservices einfach und schnell mit Cadence orchestrieren appeared first on MAD Summit.

zum Artikel gehen

Neue Materialien von Kai Parthy

Vom Filament Genie Kai Parthy kommen vier neue Support Materialien LAY-CLOUD: geeignet für flexible Drucke ohne Rückstände Drucktemperatur  ~240+-5C HIGHT-T-LAY Drucktemperatur ~240C+, für Druckkammern mit 100C löst sich schnell in Wasser auf keine HIP

zum Artikel gehen

Software Architektur im Wandel Interview mit den Program Chairs

Was macht eine moderne Software-Architektur aus? Ina Einemann: Eine moderne Software-Architektur ist in der Regel modular und flexibel aufgebaut, um den sich ändernden Anforderungen und Bedürfnissen von Anwendern und Stakeholdern gerecht zu werden. Sie i

zum Artikel gehen

Fotowettbewerb gewinnen Sie einen Weber-Grill

Nehmen Sie schnell & einfach an unserem großen Fotowettbewerb 2022 teil! Was Sie dafür tun müssen?Ganz einfach: fotografieren Sie Ihren Wintergarten oder Ihre Überdachung (Außen- und Innenbereich) und senden uns die Bilder per Email an fotowettbewe

zum Artikel gehen

Wohlfühl-Pfingstangebot Schnell sein lohnt sich!

Urlaub in den Pfingstferien und zu Hause?Mit schöner,gesunder Haut in den Sommer Die Senso-Vita-Liege ganz ohne UVA-Strahlen bildet Collagen und Vitamin D in der Haut und bereitet sie optimal auf die Sonne vor. Unser Angebot vom 6.6.-9.6 und 12.6-14.6.201

zum Artikel gehen

Das perfekte eSports Vorbereitungszentrum finden war noch nie so einfach!

Mit der Professionalisierung des Esports werden auch die Anforderungen an die einzelnen Teams in den (Profi-) Ligen immer h her. Gemeinsames Training sowie der pers nliche Kontakt zu den Teammitgliedern, der sonst lediglich ber das Internet stattfindet,

zum Artikel gehen