业务中台建设 微服务 流程编排: 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

Uber Cadence Samples - 国内版 Bing images
https://cn.bing.com/images/search?view=detailV2&ccid=ZyUVhDqI&id=06F69D8C9E99D7C2CB51049E66B730D85B412D4A&thid=OIP.ZyUVhDqI8IPblOS2RzficAHaFm&mediaurl=https%3A%2F%2Fcednc.org%2Fwp-content%2Fuploads%2F2019%2F11%2FProcess_Cadence-Slide-1-3.png&exph=526&expw=695&q=Uber+Cadence+Samples&simid=608046165337209160&form=IRPRST&ck=496C6B8E5B9A825EA36285038A9EE338&selectedindex=7&ajaxhist=0&ajaxserp=0&vt=0&sim=11

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/

posted @ 2022-01-05 20:45  任国强  阅读(2436)  评论(0编辑  收藏  举报