32
阴永俊 201609 飞行中换引擎 美团配送业务系统的架构演进之路

美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

  • View
    210

  • Download
    5

Embed Size (px)

Citation preview

Page 1: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

阴永俊 201609

飞行中换引擎美团配送业务系统的架构演进之路

Page 2: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

个人简介

阴永俊大连理工大学 软件工程专业,工作6年,长期负责系统架构工作

工作经历• 海康威视(1年)

• 人人网(4年)

• 新美大 ·∙ 配送事业部(2015.7加入)− 负责 配送业务系统

Email:[email protected]微博: 神父不怕鬼吹灯

Page 3: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

业务概述 – 业务线

自营• 自有物流人员• 直接管理

• 优势:对服务质量容易进行把控

• 劣势:团队扩张慢

加盟

• 与三方物流公司合作,由甲方公司统一管理

• 优势:业务拓展快

• 劣势:控制力较低

众包/快送

• 建立众包平台,社会人员成为自由快递人

• 优势:充分利用闲置快递资源,成本低

• 劣势:配送质量无法保证,控制力差

商户自配送

• 商户自有配送人员,自行管理配送服务

• 优势:商户控制力强,不受平台约束

• 劣势:闲时运力浪费,专业度较差

Page 4: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

美团配送核心涉众

商家 用户

配送平台

(online)

骑手/加盟商

总部运营

线下团队

骑手/加盟商

外卖平台

(online)

• 获得优质的配送服务体验• 提升盈利能力

借助配送服务提升规模• 赚钱 / 盈利(加盟商、代理商、众包骑手)

• 完成岗位职责与KPI,赚钱• 精准快速的分析与决策

成本最低,效率最高,体验第一

• 共同打造生态闭环,合作共赢

Page 5: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

美团配送核心流程

商家入驻

区域规划

站点规划

骑手配置

接单 派单 取餐 送餐 结算质检巡检

绩效考核

评级奖惩

盈亏分析

策略输出

规划 履约 运营

用户下单

外卖C端

外卖B端

烽火台

站长(线下)、商分(运营)

骑手

调度中心 派 接 取 送

结算中心 预结算 结算 打款

主数据中心 人员 组织 岗位 区域

人员、组织、区域、商家管理

待抢列表、抢单列表、送达列表

骑手APP

运力规划、商家入驻

运单交互

订单数据

结算数据

主数据

结算、打款模块

骑手数据

数据中心、监控中心

结算交互

业务管理

1

2 3

业务模块

业务系统

考核

奖惩

物资

调查

投诉

业务运营5

数据中心

仓库

应用

流式计算

报表、监控4

Actor

Actor Actor

Actor

配送业务核心流程简化图

Page 6: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

业务系统的技术挑战

外卖

商家配送

用户• 高SLA

• 配送作为整个闭环的下游服务,故障容忍度更低

• 业务复杂

• 配送开展多条业务线,线下几十个管理岗位

• 爆发性

• 一年左右的时间单量过300万,并且提速加快

Page 7: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

业务系统的架构挑战

高SLA => 高可用

业务复杂 => 前瞻业务

爆发性 => 拥抱变化

Page 8: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

我们需要的

精准把握需求 小步快跑

Page 9: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

什么样的架构设计/开发模式能够满足

Page 10: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

主流的EA框架

自上而下,从业务出发,重视设计,重视领域建模,团队中每个人都要了解领域

Page 11: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

被大家热推的敏捷开发

自管理,强调交流,快速反馈,拥抱变化,有目的的建模

Page 12: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

配送业务系统:架构体系

业务架构

(运营模式、组织结构、流程体系)

应用架构

(结构、协作、功能)

数据架构

(模型、生命周期)

系统

业务

技术架构

(基础组件、部署结构)

反馈机制

Page 13: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

业务架构Business Architecture

Page 14: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

业务架构原则

1. 涉众分析 -> 人的核心利益 2. 组织分析 -> 利益的来源

3. 流程分析 -> 工作的方法 4. 功能分析 -> 系统间的边界

“四要素”原则

Page 15: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

业务架构:功能分析

1. 平台边界,降低整体复杂性

2. 领域边界,提升扩展性、复用性3. 功能边界,提升易用性

Page 16: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

业务架构 实例:运力规划中心演化

v1.0 功能导向• 区域的增删改查• 站点的增删改查• 人员的增删改查

v2.0 流程导向• 站点开站/ 关站/ 拆站流程• 骑手入职/ 离职/ 拉黑流程

v3.0 自动&智能• 调度模拟,站点规划• 智能运力规划

基于四要素的流程梳理实现流程 标准化、信息化

MVP阶段快速支撑业务跑通与试错

技术驱动业务节省人力成本,更智能

Page 17: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

应用架构Applications Architecture

Page 18: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

应用架构原则

松耦合• 职责清晰:高内聚而完整

• 契约原则:接口先行,

封装最佳实践

• 单向依赖:无逆向依赖

可复用• 基于领域模型抽象,而不

是端与场景

• 抽象公共组件

• 应用公司成熟解决方案

无状态• 分布式缓存

• 无前置条件

• 支持水平扩展

• 支持弹性

可治理• 四层监控体系

• 三层降级体系

• 三层流控体系

• 白名单/黑名单/绿名单

功能 质量

Page 19: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

应用架构:运营系统应用架构设计

专送/众包骑手APPiOS/Android产品

配送管理后台Web

配送星火iOS/Android

商家端Android

配送开放平台

应用层 帮助中心 调度控制台 城市管理 加盟商评级 站长工作台

考试管理 考勤管理 运力规划流程 自营物料 自营物料系统

系统操作指南 烽火台首页

绩效中心 核算中心 物料中心 客服中心

岗位管理

商家管理

加盟商管理

领域层

数据层

配送区域管理 人员管理

组织管理 众包物料商城

骑手 运营、线下管理岗位 外部商家、O2O平台、商超、传统物流

盈亏分析

运力规划中心

主数据DB(组织、人员、区域..)

业务数据DB(考勤、物资、通知…)

ES(骑手宽表)

Hive(坐标记录、操作记录)

源->规则计算->结果

• 加盟商奖惩• 众包骑手评级• 盈亏分析…

记录 | 规则 | 反馈

大数据计算 | 规则易变

• 自营骑手考勤• 加盟站履约检查• 众包站点评级…

流程审批完备性

类采购SCM

• 自营物资管理• 众包物资商城• …

CMS + IM

• 骑手培训中心• 站长考试中心• 消息中心…

工单 | 规则 | 反馈

• 自营开站流程• 加盟准入流程• …

统计数据DB(数据仓库)

分层逻辑

• 应用层

·∙ 轻-逻辑

·∙ 重-应用控制

• 领域层

·∙ 重-领域模型

·∙ 重-复用性

• 数据层

·∙ 重-原语解释

·∙ 重-访问抽象流程审批完备性

Page 20: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

应用架构 实例:移动网关平台架构设计

效率提升• 配置化:简单接口封装无需代码• 文档化:自动化文档生成• 可调式:自动化生成调试工具• 可灰度:支持APP多版本同时灰度

质量保证• 四层监控:系统级、服务级、网络级、业务级• 三层流控:APP源头 | API入口 | 后端接口• 三层降级:依赖降级、链路降级、功能降级(P0)• 问题定位:基于脚本 -> 基于工具

Page 21: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

应用架构 实例:移动网关平台架构设计

API演进过程 应用控制 平台化 开放平台

Page 22: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

数据架构Data Architecture

Page 23: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

数据架构演进思路

订单

组织结算 v1.0 开放式

• 开放式:各服务直接访问DB• 分离: DB读写分离(主从)

v2.0 服务化• 职责明确:每个数据服务化有自己的势力范围• 读写收口:对指定表的读写收口到对应服务化接口• 接口分层:原语层(面向模型)->应用层(面向场景)

v3.0 CQRS+MDM• 写:Data-Driven -> Task-Driven ->Event-Driven• 读:交易读场景 + 分析读场景 + 业务订阅场景

Page 24: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

数据架构:CQRS思路下的主数据系统架构设计

主数据系统核心模块

1. 元数据管理

层级/岗位业务自助

2. 主数据管理

流程、模型与状态管理

3. 事件队列

数据逻辑解耦

4. 在线查询服务

高性能、强一致、实时

5. 在线分析服务

查询复杂性

6. 业务事件监听

解耦业务实现

Page 25: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

技术架构Technology Architecture

Page 26: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

技术架构:基础设施

业务集成解决方案 质量解决方案存储解决方案流程服务:Process

权限服务:Auth

账号服务:Account

离散数据存储Hive/ES

任务框架

消息中心:Message

审计框架

核心数据存储Atlas/MySQL

图片存储美团云存储

索引服务ES

基础平台

服务治理

监控

降级

流控

安全消息框架缓存框架Databus/Tair/Medis

部署框架

容器 KVM HULK

业务应用 主数据服务族 admin_common.jar(封装权限/流程等最佳实践)

EMP(应急管理平台)

压测框架

应用原则拿来主义:绝不重复造轮子• 引用行业成熟解决方案

业务特色:提升业务专用性• 基于Tair/Medis的缓存双机房方案

• 基于Activity的流程解决方案

配送业务系统 基础设施

Page 27: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

技术架构:部署结构

部署原则多机房容灾• 服务:双机房热备 + 本地就近原则

• 缓存:双机房冷备 + 异构缓存方案

• DB: 主库 + 从库多机房 + Atlas

资源按需按等级分离• 主数据:DB 和 Cache独立构建

• 运单、订单DB:分库分表

服务支撑水平扩展能力• 服务治理:自动注册、RPC框架

• 容量保证:1.5倍容量

Page 28: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

反馈机制Feedback Loops

Page 29: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

反馈机制:运营指标体系

Page 30: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

经验总结

Page 31: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

经验总结

可用性(技术团队根基)

扩展性(降低成本)

易用性(提升收入)

• 单一职责• 大系统小做• TOGAF• DDD• SOA

• 依赖SLA与准入SOP• 四层监控体系• 三层流控降级体系, 故障SOP• 服务运维体系

服务治理框架应急平台灰度发布

• 5W1H• 需求四要素• 竞对调研

复用成熟技术问题自助平台

组织框架权限框架流程框架规则框架

….

体验第一成本最低稳定可靠

Page 32: 美团点评沙龙 飞行中换引擎--美团配送业务系统的架构演进之路

-32-