业务中台建设 微服务 流程编排: Uber Cadence | Netflix Conductor | Camunda Zeebe | AWS Step Functions | ing-bank baker
业务中台建设 - 配置化 - 知乎
https://zhuanlan.zhihu.com/p/339088254
流程编排
中台服务中的业务步骤进行抽象沉淀形成固定的模块,不同业务基于自身的业务场景,对现有的模块进行重组,从而满足自己的需求。
例如 电商履约流程中包含:打包、发票生成、物流运输、签收、货到付款等等很多环境,自营仓库需要发票,商家业务则没有这个限制。不同的业务线需要的步骤也是不同的,把这些步骤都抽象成标准的步骤,各业务进行拼装组合。例如
体验业务线:物流运输、签收、货到付款、发票生成。
自营商城线:打包、发票生成、物流运输。
具体实现方式可以参考
uber/cadence
分布式、伸缩、高可靠的异步执行业务逻辑,工具比较丰富,同时提供了可视化UI
netflix/conductor
来自netflix 的为微服务编排引擎,支持的功能很丰富,同时文档也比较全
zeebe-io/zeebe
实际上是在工作流引擎的基础上衍生出来的,设计很灵活,不需要依赖后端的存储,支持复制、分片(借鉴了kafka)
ing-bank/baker
scala 开发的微服务调度框架
aws/setp functons
aws 的云服务
DSL脚本
DSL全称为domain-specific language,指的是专注于某个应用程序领域的计算机语言。对于需要非常灵活扩展的地方,可以通过DSL脚本满足一定的需求,例如 复杂的结算规则,根据商家、业务等区别,适用不同的规则
def detail_price alias '详情价格'
def transport_fee alias '运输费'
def check_fee alias '检测费'
def service_fee alias '服务费'
if(详情价格>10000){
return (详情价格+运输费+检测费+服务费);
}else{
Return (详情价格+(运输费+检测费+服务费)*0.8);
}
总结:
框架在架构设计上遵循一个重要的设计原则叫“依赖倒转原则”,依赖倒转原则是高层模块不能依赖低层模块,它们应该共同依赖一个抽象,这个抽象由高层模块定义,由低层模块实现。
中台的设计过程中通过策略、回调、插件包、流程编排和DSL脚本等方式,实现业务的定制化需求。
aws/setp functons - 国内版 Bing
https://cn.bing.com/search?FORM=U227DF&PC=U227&q=aws%2Fsetp+functons
AWS Step Functions 入门 | Serverless Microservice Orchestration | Amazon Web Services
https://aws.amazon.com/cn/step-functions/getting-started/
AWS Step Functions可视化工作流服务_分布式应用调节-AWS云服务
https://aws.amazon.com/cn/step-functions/?step-functions.sort-by=item.additionalFields.postDateTime&step-functions.sort-order=desc
Step Functions Workflow Studio USI Mock.e04623598b8abf438fc8c9f6576384b6eaf09dd4.png (2902×1731)
https://d1.awsstatic.com/Step Functions Workflow Studio USI Mock.e04623598b8abf438fc8c9f6576384b6eaf09dd4.png
Baker
https://ing-bank.github.io/baker/
github.com
https://github.com/ing-bank/baker
Netflix/conductor: Conductor is a microservices orchestration engine.
https://github.com/Netflix/conductor
uber/cadence - 国内版 Bing
https://cn.bing.com/search?FORM=U227DF&PC=U227&q=uber%2Fcadence
Uber Cadence 学习 - poslua | ms2008 Blog
https://ms2008.github.io/2021/06/06/cadence-intro/
uber-common/cadence-samples
https://github.com/uber-common/cadence-samples
image4-1.png (1224×486)
https://1fykyq3mdn5r21tpna3wkdyi-wpengine.netdna-ssl.com/wp-content/uploads/2019/03/image4-1.png
uber/cadence:Cadence是一种分布式,可扩展,持久且高度可用的流程编排引擎
https://www.jdon.com/53097
Cadence Multi-Tenant Task Processing
https://eng.uber.com/cadence-multi-tenant-task-processing/
深入浅出Netflix Conductor使用 - 简书
https://www.jianshu.com/p/4eae1af8afa8
conductor介绍 - 会飞の鱼 - 博客园
https://www.cnblogs.com/mhc-fly/p/6956305.html
conductor 子流程 - 国内版 Bing
https://cn.bing.com/search?FORM=U227DF&PC=U227&q=conductor+子流程
Netflix Conductor:流程的反转控制-Linuxeden开源社区
http://www.linuxeden.com/a/5432
Netflix Conductor:流程的反转控制-InfoQ
https://www.infoq.cn/article/netflix-conductor-introduction/