CRM平台建设实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. CRM平台建设实践
陶云霜 2021.07
美团到店事业群
2. 个人简介
陶云霜
• 2012年加入美团,移动后台组
• 2014~2015,酒店旅游组,负责酒店预定、门票团购业务研发
• 2016~2018,境外度假组,负责交易业务研发
• 2019~至今,到店平台,负责CRM平台建设
3. 大纲
• 业务介绍
• 难点挑战
• 架构实践
• 未来规划
4. 什么是CRM?
客户管理 过程管理 销售管理
获客、公私海、轮转 触客、合作、售后 目标、过程、结果
5. CRM业务流程
客户管理
线索/商机管理
商家
销售
商家求合作
销售提报
运营创建
运营
过程管理
拜访
目标/策略下发
审核
清洗
分配
认领
地面B
地面A
资源
轮转
资源池
电销D
任务管理
商分/管理者
目标达成
电销C
商家
销售
任务管理
质核
销运
数据分析
辅助决策
商家数据
数据沉淀
用户数据
销售数据
合作
6. 业务领域分析
领域分析
数据策略域
指标
经营分析
业绩
过程数据
l 数据策略域:
过程管理域
D
奖金
U
目标
质检
…
计划
申诉
D
D
U
拜访
…
l 过程管理域:
工具支撑域
客户 公海 私海
轮转组 战区 …
U
D
l 客户管理域:
• 业务规则复杂多样
U
客户管理域
• OLAP,业务指标多
• 获客、客户划分、客户轮转
D
U
• 以业绩、绩效为核心,指标计算与查询
• 以拜访为核心,OPDCA工作法
任务工单 外呼 标签
IM 消息/公告 …
• 结构化配置要求高
l 工具管理域:
• 基础支撑域、通用性强。
7. 大纲
• 业务介绍
• 难点挑战
• 架构实践
• 未来规划
-问题挑战
-技术思路
8. 平台挑战
餐业务
酒业务
+
餐CRM
酒CRM
综业务
+
综CRM
业务支持
• 数据、计算密集,亿级线索资源,规则计算10w级tps。
• 业务多、差异大,餐、综、酒、门票、充电宝等30+业务线。
• 10w+BD、BDM、代理商、运营使用。
烟囱式架构
业务诉求
餐
业
务
酒
业
务
综
业
务
新
业
务
A
CRM平台
平台型架构
新
业
务
B
…
平台能力
能力
快速复用 通用性
个性化
支持 扩展性
安全/稳定 可用性
多团队
并行开发 可维护性
多业务 如何 高效、稳定 的支持?
9. 平台建设思路
设计目标:
• 通用性、扩展性、可用性、可维护性
综
架构支撑
设计原则:
• 关注点分离 + SOLID原则
餐
架构思路:
• 数据模型:共性抽象统一,元数据扩展差异
• 流程逻辑:标准化,配置化
• 页面视图:组件化
酒
• 应用架构:分层、插件化,可维护性
• 技术架构:多租户、业务隔离,可用性
10. 大纲
• 业务介绍
• 难点挑战
• 架构实践 -业务架构 (数据模型、逻辑规则、页面视图)
• 未来规划 -应用架构 (服务分层、插件化)
-技术架构 (多租户架构)
11. 数据模型 -客户
12. 数据模型 -客户轮转模型
13. 模型扩展-元数据
14. 模型扩展-元数据
15. 流程逻辑-规则
问题:CRM系统内部有大量的业务规则,规则计算与业务代码耦合,扩展性差
公海
资源池
自动分配
规则
战区划分
规则
入海规则
私海
战区
轮转规则
品类 in (住宿,门票…) &&
城市 in (北京、上海…) …
规则抽象:
因子
品类 = 餐饮 &&
城市 = 北京 && 标签=‘xx’ …
关系运算
值域
逻辑运算
广告 = 在线 &&
投放 > 30天 && …
因子
关系运算
未拜访天数 > 30天
&& 未合作…
值域
16. 流程逻辑-规则可视化配置
17. 页面视图
问题:页面数量 爆炸 ,业务 X 客户分级 X
?
思路:组件化,通过“搭积木”的方式组合模块,快速搭建页面视图
18. 页面视图-组件化
模板
组件
组件
组件
模板ID
组件
配置域 运行域
模板配置 页面
适用规则 关联页面
模板
解析
交互配置
组件
模型
数据
关联
组件
嵌套
布局
联动
规则
模型元数据
数据
收集
提交
展示
后台系统
模板
匹配
数据模型
校验
规则
数据
校验
页面引擎
页面模板
初始
化
规则
组件
解析
转换
规则
元数
据
解析
元数据
规则
校验
模型
转换
存储模型
加载
存储
业务数据
19. 技术架构-多租户架构
租户
业务
租户
业务
业务
用户请求
租户管理 业务身份识别
租户信息 服务路由
基础信息
子业务
租户配置
二元组(Tenant_ID,BizCode)
示例: (餐租户,点餐业务)
餐链路 酒链路
餐链路 X链路
服务A 服务A 服务A
服务B 服务B 服务B
DS路由 DS路由 DS路由
人员组织
租户权限
业务身份:
tenant_id, bizcode
元数据 tenant_id tenant_id tenant_id
菜单配置 到餐pool 酒旅pool Xpool
页面配置
db0 db1 db0 db0 db1
db2 db3 db2 db2 db3
• 租户管理:按BU分配租户
• 共享:共享流程逻辑、数据模型、部署实例
• 隔离:数据、权限、流量
20. 应用架构-服务集成
分-总模式
总-分模式
插件模式
APP(酒店) APP (门票) APP (XX) APP (酒店) APP (门票) APP (XX) APP (酒店) APP (门票) APP (XX)
Http Http Http Http Http Http Http Http Http
酒店API 门票API XXAPI 酒店API 门票API XXAPI 酒店API 门票API XXAPI
RPC RPC RPC RPC RPC RPC RPC RPC RPC
酒店服务 门票服务 XX服务 RPC RPC RPC
平台服务
平台服务
平台服务
RPC RPC RPC SPI SPI SPI
酒店扩展 门票扩展 XX扩展 酒店插件 门票插件 XX插件
业务平台
业务重、平台轻,平台管控弱
平台扩展粒度粗
平台强管控,扩展粒度细
21. 应用架构-服务分层
接入层
DB端web
管理web
运营web
…
VO
分层架构原则:
• 关注点分离 + SOLID原则
DTO
应用层
DTO
聚合服务
分层架构实践
流程服务
Ø 接入层:
DTO
领域服务
领域层
扩展点
领域服务
扩展点
扩展点
路由
扩展点
实现1
领域服务
扩展点
扩展点
扩展点
实现2
扩展点
实现3
业务插件
扩展点
数据访问
缓存
消息
• web网关,鉴权、限流、降级…
• 关注业务用例、活动、流程,不关注业务逻辑实现
DO
• Service Facade模式,编排、组合领域服务
Ø 领域层:
扩展点
实现4
DO
基础设施层
关注用户展示,不关注业务逻辑
Ø 应用层:
SPI
路由
•
配置
• 关注业务逻辑实现
• 按业务功能拆分服务(SRP)
• 扩展点、插件支持业务定制(OCP、DIP)
Ø 基础设施层:
•
关注通用技术能力,不关注业务
22. 应用架构-插件化-扩展点路由
Y-业务
业务活动实现
扩展点坐标:
高
(Tenant_ID,BizCode,Activity_Code)
业务实现
《 interface 》
扩展点接口
租户实现
低
X-租户
平台默认实现
Z-业务活动
业务活动:用例
示例:门店信息变更、战区变更
扩展点路由匹配优先级
23. 应用架构-插件化-隔离
开发时
综插件
仓库
部署时
运行时
综扩展实现
链路1-A租户
平台通用流程
加载
综插件
餐插件
仓库
发布
链路2-B租户
X插件
仓库
平台通用流程
餐插件
餐扩展实现
加载
餐扩展Jar X扩展Jar
自定义加载器 自定义加载器 自定义加载器
综业务容器 餐业务容器 X业务容器
平台公用jar
平台公共
仓库
• 代码仓库隔离
平台通用流程
X插件
平台加载器
平台父容器
• 单链路独立发布
加载
综扩展Jar
…
链路n-X租户
X扩展实现
• 类加载隔离、容器隔离
24. 未来规划
智能化
配置化
一体化
平台规划 = 配置化 X 一体化 X 智能化
25. Q&A
26. 招聘:Java开发岗位
邮箱:liyuwei09@meituan.com
更多技术干货
欢迎关注“美团技术团队”