中国移动多租户业务中台架构可扩展实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 中国移动多租户业务中台 架构可扩展实践 左金⻁ 中国移动高级专家/应用业务架构师
2.
3. 大纲 01 传统行业数字化转型挑战 02 多租户业务中台架构可扩展实践 03 业务中台“1+N”运营机制
4. toB,下一个竞技场 在互联网toC已近饱和的当下,toB赛道正如火如荼。但toB之路与toC截然不同,如何整合中小型企 业,如何融入大企业生态成为了竞争的关键。 来源:艾瑞《2021年中国企业级SaaS行业研究报告》,CNNIC,IBM,企业访谈,艾瑞咨询研究院自主研究及绘制。
5. 传统行业数字化转型挑战 ✓ 传统行业数字化转型进入深水区,中小企业作为中国数字经济体系中最具活力、数量最为庞大的参与者,如 何帮助他们有效、快速地进行数字化转型,是每一个传统行业数字化转型支撑方所面临的巨大挑战。 ✓ 政策、业务、体量等方面的差异,带来庞大且复杂的业务需求,如何收敛整合、沉淀共性同时做到兼收个 性,就需要打造高可拓展、高可定制的行业应用架构,找到本行业的PMF。 政策差异 业务差异 体量差异 by Marc Andreessen
6. 中国移动的“熵减”之路 中国移动在二十多年的发展中,形成了1+31的两级IT架构。31省由于经济发展程度差异导致了巨大的业务 差异与架构差异,“熵增”现象的出现使得全集团层面的管理变得愈加困难。中国移动为应对时代的发展, 提出了“智慧中台”战略,而这本质上就是一次行业整合的过程。 野蛮生⻓期 规范化建设期 31省根据自身业务需求建设 系统,集团规范力度小。 31省根据集团BOSS3.0规范 建设微服务化的IT系统。 智慧中台建设期 集团公司牵头31省共建智慧中台,进 一步缩小省间业务差异,将能力向中 台集中,实现能力的横纵拉通。
7. 大纲 01 传统行业数字化转型挑战 02 多租户业务中台架构可扩展实践 03 业务中台“1+N”运营机制
8. 多租户业务中台总体架构 总体遵循“核心共享”原则,业务中台核心能力由多租户共用,租户个性化业务支持租户多层次定制,提升资产 的复用度,充分发挥业务中台的价值。 多租户业务中台架构 轻 载 前 端 营业厅 租户A 网厅 营业厅 … 办理流程可拓展 租户B 短厅 业 务 中 台 云 原 生 底 座 租户A定制 微服务 租户A定制DB 客户中心 订单中心 产商品中心 零售库存中心 营销中心 …… 容器 消息引 擎 工作流 引擎 租户A DB 公共DB … 开发运维一体 化平台 中台能力运营中心 公共Core • 通前端通用业务组件和中台能力运营中心实现业务流程 分布式 缓存 租户B DB 租户B定制 持续集成与 交付平台 低代码开发 平台 ….. 租户B定制化 DB 全流程实时 设计平台 调用链靶向 测试引擎 智能化运维 平台 灵活编排 订单处理可扩展 • 以流水线+工位模式,实现订单装配流程灵活定制 服务可拓展 • 采用插件化框架实现基于标准服务扩展点定制,实现服 务可扩展 模型可扩展 • 个性业务由租户定制模型,核心业务通过横纵结合方式 支持扩展
9. 办理流程可拓展 通过“搭积木”的方式基于标准业务流程库进行办理流程编排,面向新业务、个性化业务进行编排配 置,快速构建业务场景。 业 务 过 程 库 补 换 卡 标 准 流 程 号码预占 客户身份校验 SIM预占 选占SIM卡 客户创建 填写备注信息 订单生成 用户支付费用 规则触发 生成待支付单 商品创建 提交受理 事件触发 处理已支付单 订单处理 下发提醒短信 客户身份校验 选占SIM卡 填写备注信息 提交受理 生成待支付单 处理已支付单 下发提醒短信 用户支付费用 展示账户信息 吉祥号码 补换卡原因 连带赠送 打印发票 …….. 省 补 换 卡 业 务 流 程 客户身份校验 展示账户信息 选占SIM卡 选占SIM卡 填写备注信息 提交受理 用户支付费用 补换卡原因 生成待支付单 填写备注信息 提交受理 生成待支付单 处理已支付单 用户支付费用 下发提醒短信 处理已支付单 下发提醒短信
10. ✓ 亨利·福特作为生产流水线的鼻祖,是唯一以商人身份 上榜影响人类历史进程的100名人。 ✓ 作为第二次工业革命的极具颠覆性的产物,世界上第 一条流水装配线出现在1913年4月1日的福特汽车工 厂,装配一辆T型汽车所需时间由12.5小时缩短为1.5 小时,5年后美国市场上销售的汽车中有一半是福特的 T型车。
11. 订单处理可拓展 类似汽⻋组装厂在一个工厂造不同⻋型,订单处理采用“流水线”模式,通过装配标准“工位”实现各 种不同的流水线以满足不同业务订单中的差异。 送账管 送开通 资料归档 前端提交 业务处理 报文解析 报文校验 送其他平台 送计费 OUA处理 订单生成 规则校验 流程调度
12. 订单处理可拓展 类似汽⻋组装厂在一个工厂造不同⻋型,订单处理采用“流水线”模式,通过标准“工位”装配出各种 不同的流水线,可以处理上百种不同业务订单中的差异。 输入校验、分拆 通用订单信息组装 订单 订单 订单 打印免填单 A类订单 集团信息组装 订单信息缓存保 存 工作量触发流程 A类订单 结束改单节点 订单保存 A类订单 订单触发流程引 擎 保存前规则校验 B类订单 B类订单 标 准 工 位 通用订单校验 通用工作量触发流程 B类订单 通用订单信息组 装 订单信息缓存保 存 打印免填单 订单保存 保存前规则校验 短信提醒 …
13. 服务可拓展 提供标准服务与其扩展点配置,租户通过选取标准服务并配置扩展点实现有租户特色的服务。业务 受理过程中通过业务身份标识识别扩展点实现租户间服务差异。 普通开户订单受理 (业务编码:GSM_OPEN) 基 线 ⻆ 色 创建客户服务 (cust_ICustOperCSV_createCust) 扩展点A(EXT001) 订单竣工服务 ... ... (order_IOrderOperCSV_finish) 普通开户业务受理过程 服务执行过程中通过配置 识别扩展点 识别本次是否为扩展点调 用。 扩展点B(EXT002) 基于租户配置及请求参数 扩展点C(EXT003) 识别业务身份 的业务编码识别出当前业 务身份。 租 户 ⻆ 色 A租户(租户编码:XZ) B租户(租户编码:HN) A租户普通开户业务身份 (XZ_GSM_OPEN) B租户普通开户业务身份 (HN_GSM_OPEN) A租户扩展点实现 (EXT001) A租户扩展点实现 (EXT002) B租户扩展点实现 (EXT001) B租户扩展点实现 (EXT003) 查找扩展点实现 根据当前业务身份+当前 扩展点编码查询对应的扩 展点实现。 执行扩展点实现 反射执行查找到的扩展点 实现方法。
14. 服务可拓展 扩展点定义及实现:通过注解,无侵入式 基线:通过注解的方式在基线代码的服务接口上定义扩展点 public interface IBroadBandHandleSV { @AIExtension( //扩展点定义 code = "IBroadBandHandleSV#calculateOpenExpireDate", serviceCode = "soa_IBroadBandHandleCSV_broadBandHandleSubmit", name = "计算宽带新开有效期", implDesc = "计算宽带新开有效期") String calculateOpenExpireDate(String currExpireDateStr, Integer month) throws Exception; } 扩展点执行:基于运行期动态代理,无代码改造 基线:通过ServiceFactory在获取服务对象时添加代理 IBroadBandHandleSV broadBandHandleSV = (IBroadBandHandleSV) ServiceFactory.getService(IBroadBandHandleSV.class); broadBandHandleSV.calculateOpenExpireDate(currSysDate, Integer.parseInt(broadOpenValidMonth)); 扩展点执行:通过代理完成扩展点方法执行 插件框架:拦截扩展点方法的执行,增加扩展点实现的匹配 if ( this.method has @AIExtension ) //当前方法为扩展点 租户:租户通过注解的方式在租户工程标注扩展点实现 @AIExtensionReplaceImpl ( //扩展点实现定义,包括前置/替换/后置 extensionCode = "IBroadBandHandleSV#calculateOpenExpireDate", busiIdeCodes = "xz_GSM_BROAD_NEW_OPEN") public String calculateOpenExpireDate(String currExpireDateStr, int month) throws Exception then if( matchBusiIdrNo() ) //匹配业务身份成功 then if ( query @AIExtensionBeforeImpl ) excute beforeMethod //查找前置方法成功并执行 then if ( query @AIExtensionReplaceImpl ) excute replaceMethod //查找替换方法成功并执行 then if ( query @AIExtensionAfterImpl ) excute AfterMethod //查找后置方法成功并执行 else //当前方法非扩展点 excute this.method //执行当前方法
15. 模型可拓展 通过领域建模的方法围绕客户、账户、用户、订单、产商品、资源、账务、计费、报表等领域建立 通用的核心模型。通过调研各省表模型,设计了面向移动业务的定制域模型供租户选用与扩展。 标准产品 A省 B省
16. 模型可拓展 针对拓展性要求较高的表,通过横表实现复杂业务组合处理。同时通过纵向扩充实现业务处理能力 的灵活扩展及业务需求变更。 支付单 客户订单 物流单 特征规格值 订单行关系 订单行 纵 订单项 特征属性值 订单项 横 订单项关系 订单项关系 特征属性值 特征规格 订单行特征 属性值 用 户 订 单 商 品 订 单 付 费 关 系 订 单 卡 号 资 源 订 单 定 价 计 划 订 单 产 品 订 单
17. 大纲 01 传统行业数字化转型挑战 02 多租户业务中台架构可扩展实践 03 业务中台“1+N”运营机制
18. 中台运营对抗熵增,传统人海战术可 行吗?? 人活着就是在对抗熵增定律,生命以负熵为生。——薛定谔
19. 1核心+N租户研发运营结构 核心团队负责产品主线演进,以新业务的适配作为主要演进动力。租户定制团队负责各省个性化需 求的支持,以兼容省间差异性、增强系统能力为演进动力。 A省应用1 A省应用2 B省应用1 B省应用2 B省应用3 … … 核 心 团 队 中台能力运营中心 订 单 中 心 客 户 中 心 资 源 中 心 订单中心扩展 客户中心扩展 …… 成员限制处理 ….. 客户扩展信息 … …… 规 则 中 心 产 商 品 中 心 定制化中心 租 户 定 制 团 队
20. 全流程实时设计平台 业务中台的核心是业务资产的建模和结构化,全流程实时设计平台(ARM,All-in-one Real-time design Manager )通过结构化业务资产、全景呈现基线和租户业务从需求-设计-生产的全貌,可视化 展现业务、功能、服务和库表模型。 绍 分析视图 服务库
21. 全流程实时设计平台 ARM平台中分3个视图9个资料库。通过对系统进行“解剖”,呈现出系统的每一个“细胞”,以及“细胞”间的“连接”。 ✓ ✓ 3个视图是:分析视图、设计视图、工程视图。分别从业务人员、系统设计人员、开发人员的视⻆展现系统的细节。 9个资料库是:模型库、服务库、功能节点库、业务节点库、约束库、规则库、外围能力库、扩展点库、中台能力库。
22. 全流程实时设计平台 为了防止各租户定制内容“放⻜自我”,在设计中使用ARM平台管控核心模块与定制模块的功能界 限,在⻓期运营中保证系统的精简。 通过统一设计平台设计商业能力流程及 基于扩展点设计在核心服务中进行埋 租户开发服务的扩展实现,通过注解扫 扩展点。 点,通过注解扫描生成配置。 描自动生成配置并关联业务身份。 流程设计与预配置 扩展点设计与预配置 租户流程与扩展点配置
23. 全流程实时设计平台 ARM平台在需求支撑流程中承担了分析、设计环节的工作,是分析设计人员的主要工作面板。通过 新增、修改、复用、引用、组装各部件将需求改造的内容在ARM中呈现出来。系统知识不再是一片 内陆湖,而成为了一条奔流不息的河流。 业务场景 需求 分析 分析视图 全流程实时设计平台 设计视图 需求设计 模板生成 工程视图 业务描述 中台能力 扩展点 工程目录 业务流程 功能流程 服务 代码模板 业务节点 功能节点 模型 建表SQL 同步 生产 功能 实现 设计指导开发 开发反哺设计
24. 调用链靶向测试引擎 由于各租户插件配置的不同,且存在服务、组件复用,导致版本变化对各租户业务的影响无法精确判断。 为了保证租户业务不受版本演进影响,使用调用链分析工具对业务影响面进行“精准打击”。 JAVA编译过程 构造器调用(invokespecial) 普通方法调用(invokevirtual) 静态方法调用(invokestatic) 接口调用(invokeinterface) 根据原生调用语法筛选,将调用关系形成结构化数据 微服务调用 动态代理 反射调用 …… 将工程内特殊的调用过程,进行特征抓 取,形成结构化数据 构建调用链
25. 调用链靶向测试引擎 基于调用链分析工具,精确对比获取变更方法集,再针对所有有变更的方法,进行递归查找,向上获取 业务影响范围,从而精确定位版本发布时租户间的影响情况。 上个版本调用链 方法集合 Myers 差分算法 md5对比 当前版本调用链 方法集合 方法新增 方法删除 方法修改 变更方法集 影响范围列 表
26. 调用链靶向测试引擎 通过调用链分析工具,分析代码提交对业务的影响关系,从”我要测什么”转变为“要我测什 么”,对受影响的业务进行精准测试,极大提升测试效率、降低测试成本。 2.1.1、分析输出⻛险需求 代码管控模块 UAT发布 第1次 代码 提交 1、获取版本发布记录 调用链分析模块 1、获取代码提交记录 测试 验证 需求a 代码1,2,3 第2次 需求a 代码3 第3次 需求c 代码7,8,2 需求c给需求a带来了⻛险 需求a通过 包含1,2,3 需求c通过 包含7,8,2 版 本 验 证 轨 迹 2.1.2、输出需精准复测需求范围 2.2、分析输出受影响的现网业务 自动化测试模块 3、执行靶向自动化测试 CRM
27.
28. THANKS

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 02:20
浙ICP备14020137号-1 $Carte des visiteurs$