Votre entreprise voudra peut-être passer à une architecture de microservices et automatiser les flux de travail (je ne vais pas me motiver dans cet article de blog, mais vous voudrez peut-être lire 5 cas d'utilisation de l'automatisation des flux de travail que vous n'auriez peut-être pas envisagés ou BizDevOps - la véritable proposition de valeur de moteurs de workflow ). Cela vous met en ligne avec bon nombre de nos clients . En règle générale, vous aurez des questions:
- Portée et limites - Quel type de flux de travail vous souhaitez automatiser et comment il s'intègre dans plusieurs microservices ou dans un contexte fragmenté dans votre paysage. Je suis limité à la portée de cet article, donc je ne couvrirai pas ce sujet aujourd'hui, mais vous voudrez peut-être lire Éviter le «monolithe BPM» lors de l'utilisation de contextes limités ou de BPMN réel .
- Pile et outils - quel moteur de processus puis-je utiliser?
- Architecture - est-ce que j'exécute le moteur de processus de manière centralisée ou décentralisée?
- Gestion - qui sont les propriétaires du modèle de workflow et comment le déployer?
- Opérations - Comment garder le contrôle?
, . , .
, -, . :
- — ?
- 3 : , RPC- «-»,
, , , flowing-retail GitHub. flowing-retail , . , Camunda BPM Zeebe. — , , .
, - (, Amazon) .
? ?
, , , ( «Microservices» Martin Fowler). Event-driven .
, . . , , , . , , . , , . , . , « - ?» « - , ?» . Complex event flows in distributed systems (, , QCon - DevConf ).
: https://github.com/berndruecker/flowing-retail/tree/master/kafka/java/choreography-alternative
, , . (. ), , , , , . Monitoring and Orchestration of Your Microservices Landscape with Kafka and Zeebe ( Kafka Summit -).
, . - , :
:
. , , . , , . , , :
flowing-retail , -: !
—
? , , ( ).
- ( )
- «-» / ( REST)
, , , .
. . . (« , , ») , (« , O42»).
- : Kafka, RabbitMQ (AMQP), JMS.
- : -, / , , , , Saga pattern, «Lost in transaction» (, , JavaZone Oslo).
- : https://github.com/berndruecker/flowing-retail/tree/master/kafka/java
- : ; - ; (, ) , .
- : , . , « ». .
- /
, , . — REST. . REST, — , ( , , , QCon London).
- : REST, SOAP, gRPC; : https://www.rabbitmq.com/tutorials/tutorial-six-java.html
- : (, ), -, / , , Saga pattern, «Lost in transaction» (, , JavaZone Oslo).
- : https://github.com/berndruecker/flowing-retail/tree/master/rest
- : ; .
- : , ; (, Circuit Breaker).
, , . .
- : External Tasks (Camunda BPM) Workers (Zeebe).
- : , -, / , , Saga pattern, «Lost in transaction» (, , JavaZone Oslo).
- : https://github.com/berndruecker/flowing-retail/tree/master/zeebe
- : ; .
- : ; — (, REST Messaging).
. , , , .
, Kafka Messaging, . , , REST, , , Spring Boot, . , , , , . Domain-driven design (DDD) , , Akka Axon, , , .
, , , . , , . , - , . , , , .
, . :
- , .
- , .
- , .
Architecture options to run a workflow engine.
. , , , . , () .
- : https://github.com/berndruecker/flowing-retail/tree/master/kafka/java/order-camunda
- : ; .
- : ( ); « » ().
: « , »?
. DevOps , . , , , .
, , , . , , , Elastic. (, , , ). . , , .
, , Camunda Optimize Zeebe Operate.
. , . REST (Camunda BPM) gRPC (Zeebe).
, , , .
,
. Camunda, (, Spring Boot Starter) . , . .
- : « ».
- : , , , Rolling Upgrade Deployment Aware Process Engine.
. .
. , , . . , : , . , — .
— , Camunda, , , . , , , .
, . , , - , .
, , , , .
(: ) , , .
, .
flowing-retail :
- : - .
- : .
, - . BPM — , - , — , .
« »?
: « »? : , , « ».
-, , , . , , , , , — . , , — , , , .
« », , , ( , ,…). , , . .
, . , . :
: , RPC- . :
La propriété des modèles de flux de travail doit être du ressort du microservice respectif. Le flux de travail doit être clairement axé sur ce domaine.
Vous pouvez exécuter le moteur de workflow de manière centralisée ou décentralisée .
Piste ou contrôle - Vous devez vous efforcer d'obtenir un mélange équilibré de chorégraphie et d'orchestration .