微服务流程自动化技巧

Camunda微服务工作流自动化1



您的公司可能希望迁移到微服务架构并实现工作流自动化(在本博客文章中,我不做任何动机,但您可能想阅读一下您可能没有考虑的5个工作流自动化用例BizDevOps-的真正价值主张)工作流程引擎)。这使您与我们的许多客户保持一致通常,您将有以下问题:



  • 范围和边界-您想自动化哪种工作流程,以及它如何适合多个微服务,或者您的环境碎片环境我仅限于本文的范围,因此今天我将不讨论该主题,但是您可能需要阅读在使用有限上下文Real-Life BPMN时避免“ BPM整体”
  • 堆栈和工具-我可以使用哪个流程引擎?
  • 体系结构-我是集中运行流程引擎还是分散运行?
  • 管理-谁拥有工作流程模型,该如何部署?
  • 运营-如何保持控制力?


, . , .



, -, . :



  • — ?
  • 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



Camunda微服务工作流自动化1





, , . (. ), , , , , . Monitoring and Orchestration of Your Microservices Landscape with Kafka and Zeebe ( Kafka Summit -).



Camunda微服务工作流自动化1





, . - , :



Camunda微服务工作流自动化1



:



Camunda微服务工作流自动化1





. , , . , , . , , :



Camunda微服务工作流自动化1



flowing-retail , -: !



Camunda微服务工作流自动化1





? , , ( ).



  • ( )
  • «-» / ( REST)


Camunda微服务工作流自动化1



, , , .





. . . (« , , ») , (« , O42»).



Camunda微服务工作流自动化1



  • : 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).



Camunda微服务工作流自动化1



  • : 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).




, , . .



Camunda微服务工作流自动化1



  • : 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.



Camunda微服务工作流自动化1





. , , , . , () .



  • : https://github.com/berndruecker/flowing-retail/tree/master/kafka/java/order-camunda
  • : ; .
  • : ( ); « » ().


: « , »?



. DevOps , . , , , .





, , , . , , , Elastic. (, , , ). . , , .



Camunda微服务工作流自动化1



, , Camunda Optimize Zeebe Operate.



  • : https://github.com/berndruecker/flowing-retail/tree/master/kafka/java/monitor




. , . REST (Camunda BPM) gRPC (Zeebe).



Camunda微服务工作流自动化1



  • : https://github.com/berndruecker/flowing-retail/tree/master/kafka/java/order-zeebe
  • : ; .
  • : , ; .


, , , .



,



. Camunda, (, Spring Boot Starter) . , . .



Camunda微服务工作流自动化1



  • : « ».
  • : , , , Rolling Upgrade Deployment Aware Process Engine.




. .



. , , . . , : , . , — .



— , Camunda, , , . , , , .



, . , , - , .



, , , , .





(: ) , , .



, .



Camunda微服务工作流自动化1



flowing-retail :



  • : - .
  • : .


, - . BPM — , - , — , .



« »?



: « »? : , , « ».



-, , , . , , , , , — . , , — , , , .



« », , , ( , ,…). , , . .





, . , . :



Camunda微服务工作流自动化1



: , RPC- . :



Camunda微服务工作流自动化1



工作流模型的所有权应在相应微服务的权限范围内。工作流程应明确地集中在这一领域。



您可以集中运行或分散运行工作流引擎



跟踪或控制-您应该努力平衡编排和编排




All Articles