餐饮SaaS店内经营系统的建设实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 餐饮SaaS店内经营系统的建设实践
餐饮SaaS技术部 丁淦
2. 个人人介绍
姓名:丁淦
餐饮SaaS技术部-高高级技术专家
• 13年年校招加入入美团,毕业于北北京邮电大大学
• 16年年开始从0到1参与建设美团餐饮SaaS系统,参与并主导了了餐
饮SaaS系统架构的多次演进,在技术框架研发、系统架构、领
域建模方方面面拥有丰富的实践经验。
3. 目目录
• 业务介绍
• 系统建设实践
• 整体架构
• 店内经营解决方方案
• 未来规划
4. 业务介绍
美团餐饮SaaS收银是专为餐饮商家提供的一一套智
能化数字化餐厅经营管理理系统,帮助商家打造线上
线下一一体化的智慧餐厅。实现从店内经营、连锁管
理理、会员营销、供应链、美团平台赋能等全场景、
全方方位的智能化服务。
包括
软件:Windows版、安卓版、OS系统
硬件:新单屏A、新单屏B、新双屏
配件:打印机、扫码枪、小小白白盒、点菜宝、基站等
适用用
适用用于正餐、快餐、烧烤、火火锅、⻄西餐、小小吃、
茶饮等全业态餐饮解决方方案。
店内经营业务场景
5. 挑战与策略略
一一体化IT解决方方案
线上线下一一体化
软硬一一体化
业务复杂度高高 业态多、业务端多、用用户⻆角色色多、
业务领域多
可用用性要求高高 餐厅经营重度依赖
⻔门店弱网网/断网网可经营
大大规模研发团队
策略略:
跨地域、多团队、外包
架构
研发标准化
离线经营解决方方案
6. 架构方方法
架构方方法论: 关键架构原则:把握整体,合适、可持续演进
•业务架构:企业架构方方法论(TOGAF) •深入入业务,重规划
•技术架构:架构五视图 •领域驱动设计
•架构持续管控
开发架构
数据架构
逻辑架构
物理理架构
运行行行架构
7. 架构管控
• 统一一SaaS多租户和管控体系
• Shepherd统一一网网关
• 统一一业务集成平台:可插拔平台(集成)、开放平
台(被集成)
• 店内业务LocalServer
通用用能力力力
及组件
技术架构
架构管控
事后
事前
架构
交付物
• 需求分析:功能&非非功能需求、业务流程
• 调研与学习最佳
• 架构设计规范 • 工工具检查 • 架构五视图:逻辑、开发、运行行行、数据、部署架构
• 通用用能力力力及组件 • 定期架构review • 非非功能性设计:安全设计、稳定性设计
事中
• 方方案设计
• 架构评审
8. 研发标准化
设计标准化
设计规范
分层架构
业务平台化
技术栈标准化
服务标准化
模板工工程 微服务 管控组件 ci
中间件统一一 SOA达标 限流 sonar
组件化 鉴权组件 熔断降级 long run
脱敏敏组件 内容审核 专项测试
项目目管理理规范
研发过程度量
设计规范
代码规范
数据库规范
研发过程数字化
运维标准化
自自动化测试
统一一灰度
规范
统一
测试标准化
接口口规范
环境规范
提测规范
灰度 业务监控
稳定性大大
盘 服务监控
故障大大盘 店内监控
故障演练 预案管理理
日日志回捞 值班制度
上线规范
指标度量量系统
报警处理理规范
9. 餐饮SaaS整体架构
商家经营端
收银主副POS
产品端
商家管理理端
服务员APP
点餐宝
KDS
商户运
营管理理
(收银) (供应链)
EMIS
扫码
点餐
美团管家 美团管家
店内应用用 LocalServer 框架 & 本地数据库
管理理
营销
管理理SaaS业务层
交易易中心心
中心心服务
桌台 商品
经营配置 开台必点
服务费
管理理中心心
促销
订单中心心
外卖接单
订单交易易
财务
账单分摊
SaaS管控
权限
组织机构
员工工
工工程质量量
& 效能
微
商城
账号
提成
营销推荐
客服
工工单
集成开放
平台
供应链 垂直业务
商户供给
平台
美团
平台
外卖
采购 专业版 团购
自自外卖 微商城 库存 茶饮版 闪惠
排队 发票 生生产 ⻘青春版 会员 评价 供应商 小小店
配送
开放平台
……
业务画像
合作
伙伴
集成平台
经营洞洞察
开发框架 DevOps 自自动化测试 全链路路压测 灰度发布 稳定性大大盘
MTThrift 缓存服务 消息服务 配置服务 CAT监控 OCTO服务
…
第三方方
系统
……
数据策略略
统计分析 & 自自定义报表
服务
市场
预点
…
统计分析
业务数据接入入 & 管理理
评价
发票
点餐
……
基础服务
数据服务
预点餐
排队
外网网RPC&MQ
统一一网网关(登录、鉴权、统一一上下文文…)
业务服务
业务运营
消费者端
数据仓库
…
商家
财务
CRM
进销存
数据
…
10. 店内经营挑战
餐厅店内部署挑战
专业linux服务器器
Android一一体机
普通家用用win电脑
技术栈挑战
规模化研发挑战
店内经营业务处理理中心心
11. 店内经营系统的演进历程
阶段
阶段描述
问题
安卓pos和win pos均独自自进行行行实现,由终端和前
段同学分别实现业务逻辑、数据存储 •
•
• 终端同学擅⻓长界面面,不不擅⻓长写业务逻辑
V2.0 LocalServer 业务逻辑下沉到localserver,由专⻔门的后端团队
来维护,支支持跨平台
单体应用用 •
•
• 框架和业务耦合一一起,独立立团队维护,领域不不闭环
V3.0 LocalServer 跨平台,技术框架和业务模块解耦,业务领域化
平台化+模块化 拆分落地 • 研发流程效率低于服务端
V1.0 终端研发
业务逻辑与视图耦合性大大,导致开发速度偏慢,不不易易维护
多平台,多套实现方方案,逻辑不不统一一
技术栈与后端研发差异较大大,团队招人人难
按领域进行行行研发拆分,无无法落地
12. 店内经营架构
边缘部署
离线可用用
支支持高高效业务开发
线上线下无无缝打通
13. 店内经营系统交互
设备(EndPoints)
店内边缘节点(Edge Nodes)
SaaS云(Cloud)
接入入层
业务交互
http/websocket/串串口口
业务层
领域层
基础组件&框架:LocalServer
…
业务协同
操作系统:android、
windows、linux
云
店
协
同
云店协同
数据协同
https/websocket
应用用协同
生生命周期管理理
运维监控支支撑
14. 关键策略略
技术框架
• 技术问题和业务问题分离,屏蔽技术差异
• 业务领域化拆分,云店一一体化
基础组件建设
• 研发和运维流程工工具建设,提升研发效率
研发流程支支撑
15. Local-Server-Framework
跨平台开发框架,高高效支支撑服务端同学开发店内业务逻辑,解决复杂
的业务逻辑运行行行边缘节点的能力力力,框架涵盖web模块、存储模块、容
器器模块、配置模块、工工具模块和测试模块。
框架特点:
• 支支持跨平台(Android、windows、linux)
• 开发体验好和熟悉成本低,基本和Spring里里里开发体验保持一一致。
• 低耦合,framework、平台组件、业务模块解耦,业务同学focus在业务代码
• 性能好,静态编译期处理理,避免动态运行行行时加载,提升启动性能
• 工工具化:打包工工具、调试工工具、发版工工具、运维工工具
web 容器器 接入入层 依赖注入入 消息通道
iJetty(android)
Jetty(windows) 封装Servlet Dagger Netty-SoccketIo
数据库 ORM 数据库连接池 监控埋点
SqlLite OrmLite 封装JDBC Cat
16. 基础组件
17. 云店协同组件
店内经营业务:
无无状态
店内经营
主数据 + 店内业务代码
=
业务数据
SaaS云端
LocalServer
SaaS云端
后厨
班次
交易易
Server
Server
接单
Client
关键点:主数据及时下发到店内,业务数据及时同步到SaaS云端
主数据下发
数据协同:
• 主数据从云端下发店内:在经营前,商家需要在云端配置好自自己己的菜
品、桌台、支支付方方式等等,需要保证配置数据更更新及时性
• 业务数据从店内同步云端:经营中产生生的订单、班次上传到云端,做
大大数据分析
业务协同:
• 云店业务实时协同:店内作为餐厅经营的处理理中心心,需要协同处理理云
端顾客扫码点餐业务,保障业务的一一致性
Client
管理理业务
主数据管理理
业务实时协同
Client
C端业务
扫码点餐、会员、外卖
业务数据同步
Server
数据业务
统计报表
18. 云店协同组件
组件化能力力力,店内业务逻辑开发无无需关注数据协同
组件能力力力
技术能力力力
配置更更新组件
https
数据同步组件
⻓长链
业务协同组件
外网网MQ
上下行行行,提供丰富的网网络通信能力力力支支撑
外网网RPC
19. 开发模式
水水平研发:基于端拆分业务,LocalServer独立立团队维护
垂直研发:基于领域拆分业务,业务垂直负责云和LocalServer
问题:
• 业务领域不不闭环
• 研发效率低
• 招聘困难
20. 高高效研发
通过框架和工工具建设,提升店内业务研发效率:
• 模块化研发:模块化研发,按照领域划分,代码和存储均独
立立,模块之间及基于接口口交互
• 开发习惯同Spring框架:IOC、AOP、注解、代码分层、
yaml配置
• 高高效打包:动态编译、增量量编译、服务端和Localserver统一一
打包工工具
• pipeline流水水线:git push流水水线、PR流水水线、提测流水水线
21. 发布
发布方方式
• 随客户端发版:商家有感升级,适合大大版本发布
• 静默升级:商家无无感升级,适合小小版本发布
• 热更更新:hotfix
发布管控
• 流程规范:需求、编码、测试、集成、发布
• 质量量卡点:提测卡控、集成卡控、验收卡控、灰度发版
22. 灰度
问题
• 店内经营端各个终端和LocalServer如何保证版本兼容和一一致?
• 管理理端、C端、店内经营端如何保证灰度一一致?
• 服务端灰度上线,终端灰度发版,如何能够在保证稳定性情况
下,加速灰度节奏,尽快交付商家?
解决方方案
• 沙箱和ab模式两种,服务端全链路路灰度能力力力
• 统一一灰度池,保证单商户各终端升级版本一一致性
• 支支持客户端、前端、后端、数据端等所有端协同灰度
• 精细化的灰度控制(黑黑白白名单、多维度百分比比)
23. 店内监控
问题:业务运行行行在店内,如何系统的对边缘节点的业务进行行行监控?
App端到端监控
(网网络成功率、响应时间、运营商等)
业务指标监控
(交易易、支支付、接单、打印、消息等)
应用用层监控
(异常、请求数、响应时间、存活性)
系统层监控
(CPU、内存、磁盘、GC、外设)
店内监控
24. 未来规划
业务能力力力 能力力力标准化 业务平台化 跨行行行业支支撑能力力力
技术能力力力 IOT&边缘计算能力力力 配置化&元数据驱动 PaaS化,建立立开放的生生态能力力力
25. Q&A
26. 招聘:餐饮SaaS技术岗(后端、终端前端、数据、测试)
邮箱:dinggan@meituan.com
更更多技术干干货
欢迎关注“美团技术团队”