Wie blutiges Unternehmen Open Source gewinnt: der Kampf um BPMS

Die ZahnrĂ€der einer modernen Bank drehen sich entsprechend den finanziellen GeschĂ€ftsprozessen. Sie sind komplizierter als gewöhnlich - diese Regel gilt fĂŒr alles, zu dem Sie die Definition von „finanziell“ hinzufĂŒgen. Einerseits wird alles durch Aufsichtsbehörden, unzĂ€hlige Zulassungen und Beteiligte kompliziert. Auf der anderen Seite - ungeschicktes monolithisches BPMS (Business Process Management System). In diesem Beitrag erfahren Sie, wie Sie ein solches System erfolgreich aufgegeben und auf ein flexibles und funktionales Open Source umgestellt haben.



Programmierer zeigen GeschĂ€ftsprozesse mit unterschiedlichen Notationen an. Jetzt ist der Standard BPMN (Business Process Model and Notation) - dies sind XML-Dateien mit angehĂ€ngten Bildern. Um mit dieser Notation zu arbeiten, werden BPMS-Produkte erstellt - monolithische proprietĂ€re Systeme, die versuchen, die maximalen Tools fĂŒr die Entwicklung von BPM zu berĂŒcksichtigen: vom BenutzeroberflĂ€chen-Editor bis zum Versionskontrollsystem.

Nur Entwickler, die schon lange mit diesen Systemen arbeiten, können sie erweitern. In Enterprise BPMS wird eine REST-API bereitgestellt, dh auf Systeme kann als Antwort zugegriffen und diese empfangen werden. Es ist jedoch fast unmöglich, BPMS selbst zu modifizieren und zu optimieren. Es ist möglich, mit einem solchen BPMS nur mit einem begrenzten Satz von Tools des Herstellers zu arbeiten - einem proprietĂ€ren Versionskontrollsystem, Compiler, Deployer - normalerweise wird fĂŒr jedes große BPMS ein ganzer Satz entwickelt. Diese Tools entwickeln sich langsam, die gleichen Probleme können von Release zu Release bestehen bleiben, da nicht so viele Personen an der Arbeit beteiligt sind, wie dies bei Open Source der Fall ist. Im Allgemeinen stimmen die FĂ€higkeiten von BMPS fĂŒr Unternehmen und die BedĂŒrfnisse ihrer Benutzer sehr selten ĂŒberein.

Bei der Werbung fĂŒr solche Systeme geht es um End-to-End-Workflows. Sie sagen, dass das Unternehmen selbst BPM-Prozesse im laufenden Betrieb Ă€ndern kann. Aber selbst Analysten können dies nicht - nur Entwickler können damit umgehen.


Ein GeschĂ€ftsprozess besteht aus Benutzer- und Serviceaufgaben, deren AblĂ€ufe zum endgĂŒltigen Stopp fĂŒhren. In BPMS können Sie mithilfe solcher Schemata die AusfĂŒhrungszeit von GeschĂ€ftsprozessen sowie verschiedene GeschĂ€ftsindikatoren verfolgen, z. B. den KPI.

Wir mĂŒssen hĂ€ufig Änderungen unterschiedlicher GrĂ¶ĂŸe an GeschĂ€ftsprozessen vornehmen. FrĂŒher hatten wir einen BPM-Prozess fĂŒr Kundenmanager, die in zusĂ€tzlichen BĂŒros sitzen. Im Jahr 2015 haben wir einige BĂŒros geschlossen und Manager in die Feldarbeit versetzt. Dies erforderte große Änderungen in den BPM-Prozessen. Es war notwendig, andere Rollen und Aktionen einzufĂŒhren. Oder zum Beispiel hat sich die Regulierung des Dienstes fĂŒr wirtschaftliche Sicherheit geĂ€ndert, und statt zwei Koordinatoren gibt es jetzt drei.

ZunĂ€chst haben wir Änderungen ĂŒber das IBM Lombardi BPMS vorgenommen. Nachdem es die typischen MĂ€ngel der Systeme seiner Klasse gesammelt hatte, zeichnete es sich auch durch das Fehlen einer geordneten Dokumentation aus. Es schien, dass der Software-Riese nach dem Kauf von Lombardi Software die amorphe Wolke der Begleitartikel betrachtete und beschloss, nichts anzufassen. Und selbst nach dem Lesen der gesamten Dokumentation war es unmöglich, viele Dinge zu tun. Rufen Sie beispielsweise eine REST-Anforderung mit HTTPS-Authentifizierung mithilfe eines Benutzerzertifikats auf. GlĂŒcklicherweise war die Suche nach einer Alternative ein Erfolg.

Camunda löst Probleme


Nach der Arbeit mit IBM BPM kamen wir zu dem Schluss, dass verschiedene Benutzergruppen in der Lage sein sollten, GeschĂ€ftsprozesse zu Ă€ndern. Etwas Unbedeutendes im Online-Modus kann von normalen Mitarbeitern von GeschĂ€ftsbereichen beigesteuert werden. Systemanalysten Ă€ndern die Reihenfolge der Aufgaben in GeschĂ€ftsprozessen. Neue Integrationen, Änderungen in der BenutzeroberflĂ€che und im Programmcode bleiben auf der Seite der Entwickler. Um diese FlexibilitĂ€t aufrechtzuerhalten, mĂŒssen alle BPMS auf Microservices bereitgestellt werden.

Wir können diesen Ansatz mit Open-Source-BPMS Camunda bereitstellen. Es ist eine Abzweigung des Activity-Projekts, das das Entwicklungsteam beschlossen hat, mehr zu verkaufen. Sie ordneten die Dokumentation und begannen, Camunda separat zu entwickeln, sie verdienen mit dem Verkauf von Support.

Mit BPMS Camunda können Sie GeschĂ€ftsprozesse mit Standard-Java bearbeiten und die gemeinsame Nutzung von Mikroservices unterstĂŒtzen. Die Umstellung von BPMS auf Microservices bietet mehrere Vorteile gleichzeitig:

  • Den Monolithen loswerden. Wir können GeschĂ€ftsprozesse nach Segmenten unterteilen und sie mithilfe von Rabbit MQ oder Kafka ĂŒber die Warteschlange miteinander verknĂŒpfen. GeschĂ€ftsprozesse können isoliert voneinander geĂ€ndert und geĂ€ndert werden, ohne auf eine vollstĂ€ndige Freigabe zu warten.
  • Einen GeschĂ€ftsprozessserver loswerden.
  • Skalieren. Wenn unter Last ein Server herunterfĂ€llt, kann er geklont werden. Bei Spitzenlasten können Sie die ProduktivitĂ€t leicht steigern, indem Sie mehrere Instanzen von GeschĂ€ftsprozessen in verschiedenen Diensten ausfĂŒhren.
  • Versionierung Wenn Sie beispielsweise die Java-Version aktualisieren mĂŒssen, können Sie mehrere Microservices mit unterschiedlichen Java-Versionen abrufen und die neue Version parallel ausfĂŒhren. Jeder Microservice kann nicht nur verschiedene Softwareversionen haben, sondern auch verschiedene Sprachen.

In Zukunft planen wir, einen unserer grĂ¶ĂŸten GeschĂ€ftsprozesse auf Camunda zu ĂŒbertragen - Corporate Lending. Hier ist alles viel komplizierter als bei Einzelpersonen und sogar bei kleinen und mittleren Unternehmen. Es handelt sich nicht um ein Produkt, sondern um ein begrenztes Kreditsystem. Die zeitlichen Grenzen sind begrenzt, die Kreditnehmer sind normalerweise Teil grĂ¶ĂŸerer Organisationen wie Beteiligungen, und die Beteiligungen haben etwas anderes zu tun. Die Grenzwerte werden fĂŒr jede dieser Strukturen separat festgelegt, und jede Struktur hat ihre eigenen ĂŒbereinstimmenden, deren Zusammensetzung sich stĂ€ndig Ă€ndert. Wir erhalten einen GeschĂ€ftsprozess aus Hunderten von Phasen. Wir konnten es mit Camunda Ă€ndern und beschlossen, dabei zu bleiben. Selbst wenn die Entwickler jetzt beschließen, das Projekt zu schließen, werden die aktuellen Funktionen des Systems weitere drei Jahre dauern.

Unsere erste Version von Camunda basierte auf Websphere und unterschied sich kaum von IBM Lombardi. Wir haben beschlossen, die Anwendungen zu schreiben, auf die der Dienst bei Spring Boot zugegriffen hat. Sie wurden auf Tomcat bereitgestellt und arbeiteten nicht alleine. Dann stellte sich heraus, dass Camunda an Tomcat arbeiten konnte, eine Version fĂŒr Spring Boot wurde entwickelt. Dort ist bereits eine vollstĂ€ndige Microservice-Architektur verfĂŒgbar. Alle Anwendungen, mit denen der GeschĂ€ftsprozess funktioniert hat, wurden auf einer auf Spring Cloud basierenden Microservice-Architektur implementiert.

Dann stellte sich heraus, dass Sie die FunktionalitÀt nicht nur in Diensten, die den GeschÀftsprozess bedienen, schnell Àndern können. Die BPM-Engine selbst kann als Bibliothek mit jeder Springboot-Anwendung verbunden werden.

Camunda als Microservice

Es stellte sich die Frage: Wie viele Mikrodienste mĂŒssen angehoben werden? Es war möglich, einen Server fĂŒr jeden Prozess zu erstellen und dort alle Microservices zu platzieren oder fĂŒr jede Aufgabe einen eigenen Microservice und darin einen separaten GeschĂ€ftsprozess zu erstellen. Die zweite wĂ€re bequemer, aber es wĂ€re notwendig, die Interaktion von Prozessen zu organisieren, die ĂŒber einzelne Mikrodienste verteilt sind. Wir haben verschiedene Optionen ausprobiert und uns fĂŒr eine Lösung entschieden, wenn mehrere Microservices fĂŒr ein bestimmtes Thema verantwortlich sind und dort mehrere Prozesse gruppiert sind. Die Kommunikation erfolgt entweder ĂŒber REST oder ĂŒber Rabbit MQ. Jetzt haben sie einen Piloten auf Kafka gestartet.

Perspektiven fĂŒr BPMS


GeschÀftsprozesse zeigen nicht nur den GeschÀftsworkflow an, sondern reagieren auch auf Ereignisse, die in anderen Systemen auftreten. Wir haben diese Ereignisse durch eine separate Abteilung von Big Data akkumuliert. Basierend auf der Analyse dieser Ereignisse werden neue GeschÀftsprozesse erstellt oder bestehende geÀndert - dies geschieht nachtrÀglich mit einer HÀufigkeit von beispielsweise einmal am Tag.

Im Idealfall sollten sich GeschĂ€ftsprozesse online Ă€ndern. Wenn beispielsweise die Nachfrage nach bestimmten Diensten steigt, priorisieren sie automatisch ihre Implementierung und weisen Ressourcen neu zu. Dies kann durch Automatisierung, Interaktion, zum Beispiel Kafka und Camunda, erreicht werden, dies ist jedoch eine Frage von mindestens mehreren Jahren. Vielleicht ist die vollstĂ€ndig online verfĂŒgbare englische Monzo Bank in Richtung Änderungen im Online-Modus am weitesten fortgeschritten. Und wir arbeiten auch daran.

Source: https://habr.com/ru/post/de415953/


All Articles