Kurzfassung:
Die vorliegende Arbeit beschäftigt sich mit der Lösung von typischen Problemstellungen in Microservice-Architekturen mit Hilfe einer Process Engine. Dafür werden in Form einer Analyse verschiedene Problembereiche wie Resilienz, verteilte Transaktionen und Datenkomposition identifiziert und beschrieben. Zudem wird ein vereinfachter Referenzprozess definiert, der als Bearbeitungsgrundlage dient. Mit Hilfe der Process Engine Camunda BPM werden typische Lösungsmuster auf Basis der Business Process Model and Notation 2.0 (BPMN) konzipiert und anschließend, in Form von verschiedenen prototypischen Anwendungen, implementiert und erprobt. Die dabei gewonnenen Erkenntnisse werden genutzt, um Handlungsempfehlungen zu erörtern, die bei einer fundierten Entscheidung über die Integration von Process Engines in einer Microservice-Umgebung helfen können. Dabei konnte herausgestellt werden, dass einer der primären Vorteile des Einsatzes einer Process Engine für Microservices die integrierte Verwaltung von Zuständen ist. Viele Problemstellungen erfordern Lösungsmuster, die letztendlich auf der Einführung von Zuständen basieren. Durch eine Process Engine ist eine Definition und Verwaltung dieser Zustände, auch bei einer horizontalen Skalierung, mit geringem Aufwand möglich. Für einige Lösungsmuster können damit sowohl die Komplexität als auch der Aufwand für die Umsetzung deutlich reduziert werden.
Einsatzszenarien von Process Engines zur Orchestrierung und Entwicklung von Microservices
Abstract:
This thesis deals with the solution of typical problems in microservice architectures with the help of a process engine. Different problem areas such as resilience, distributed transactions and data composition are identified and described in the form of an analysis. In addition, a simplified reference process is defined which serves as a processing basis. With the help of the Camunda BPM process engine, typical solution patterns based on the Business Process Model and Notation 2.0 (BPMN) are designed and then implemented and tested in the form of various prototypical applications. The insights gained are used to discuss recommendations for action that can help in making an informed decision about the integration of process engines in a microservice environment. One of the primary advantages of using a process engine for microservices is the integrated management of states. Many problems require solutions that are ultimately based on the introduction of states. A process engine makes it possible to define and manage these states with little effort, even when scaling horizontally. For some patterns, both the complexity and the effort for implementation can be significantly reduced.