OCTO:千亿规模下的服务治理挑战与实践

cryinhell

2017/07/03 发布于 技术 分类

OCTO:千亿规模下的服务治理挑战与实践

文字内容
1. OCTO:千亿规模下的服务治理 挑战与实践 美团点评基础架构团队 张熙
2. 个⼈人简介 • • 12年年加⼊入美团,基础架构部服务治理理、集群调度团队负责⼈人 • OCTO:分布式服务通信框架及服务治理理系统 • HULK:容器器集群管理理及弹性伸缩平台 专注于⾯面向服务架构、服务治理理、⼤大规模分布式系统、⾼高性能通信框架、 容器器化、弹性调度等领域
3. Agenda • 美团服务架构演进历程 • OCTO架构设计及研发要点 • OCTO服务治理理实践
4. 美团点评介绍 • 中国O2O⾏行行业最⼤大的公司 • 覆盖全国2800多个市、县、区 • 2016年年交易易额超2000亿 • 共480万合作商户 • 6亿独⽴立⽤用户数 • 外卖⽇日订单量量1000万 • …
5. 美团服务架构演进历程
6. 美团服务架构演进 美团网正式上线 2010.3 美团点评合并 美团外卖上线 2012.3 2013.11 美团电影上线,后改名为 猫眼电影 早期架构 2015.11 2014.6 成立酒店事业部 服务架构1.0 服务架构2.0:OCTO体系
7. 早期架构 • 垂直应⽤用架构 • LAMP体系 • HTTP + JSON
8. 早期架构 - 问题与挑战 • 接⼝口定义:缺乏强Scheme约束 • HTTP + JSON:开发成本、规范 • HTTP协议:内⽹网链路路过⻓长 • 服务化设计、实践不不够普及 • 缺乏易易⽤用、⾼高性能的RPC通信框架 • 缺乏服务⾃自动注册、发现机制
9. 服务架构1.0
10. 服务架构1.0 - 问题与挑战 • • • 服务注册中⼼心 • Zookeeper、临时节点、故障隔离 • 多语⾔言⽀支持 服务通信框架 • 路路由、流量量策略略 • 强耦合、客户端过重 • 缺乏数据及监控 缺乏服务治理理、运营功能
11. OCTO:分布式服务通信框架及服务治理理系统 • OCTO是什什么? 公司级基础设施,为公司所有业务提供统⼀一的⾼高性能服务通信框架,使业务具备良 好的服务运营能⼒力力,轻松实现服务注册、服务⾃自动发现、负载均衡、容错、灰度发 布、数据可视化、监控告警等功能,提升服务开放效率、可⽤用性及服务运维效率。 接入服务600+,调用量 100亿 Project Kickoff! 2014.8 2014.11 v0.1 release 2015.8 调用量超1000亿! 2016.6 接入服务2000+,调用量 500亿 now
12. OCTO架构设计及研发要点
13. OCTO - 整体架构 • MNS:命名服务 • SG_Agent:服务治理理代理理 • MTransport:服务通信框架 • HLB:弹性负载均衡器器 • MSGP:服务治理理平台
14. 服务注册发现 - 传统实现 • • ZooKeeper⽅方式 • 临时节点 • 框架直连 • 触发or轮询更更新 问题与挑战 • session timeout • ZooKeeper ACL • 紧耦合、运维影响 • 集群不不稳定、故障隔离
15. 服务注册发现 - 代理理模式 • • SG_Agent:服务治理理代理理 • 本地进程 • 标准化接⼝口 • 策略略热更更新 特点 • ⾼高可⽤用 • 低消耗 • 标准化部署
16. 代理理模式 - 服务注册流程 • 框架启动时注册 • 委托代理理执⾏行行 • MNS探测状态
17. 命名服务 - 状态检查 • ⼀一致性:集中式检查、全局视图 • ⾼高可⽤用:热备、集群化、熔断 • ⾼高准确:double check • ⾼高效率:Akka Actor、⽔水平扩展
18. 服务通信框架 - 策略略下移 • 客户端做薄 • 注册、发现逻辑 • 多机房、地域 • 路路由策略略 • 环境识别 • 慢启动策略略 • 节点注册限制
19. 策略略下移 - 路路由策略略 • 路路由策略略 • 机房 • 地域 • ⾃自定义路路由 • 泳道 • 多中⼼心
20. 服务通信框架 - ⽹网络内核 ⽼老老内核 • 不不⽀支持链接复⽤用、异步化⽀支持不不友好 • 性能稍差,4核4G、1K数据QPS 8w+ • 强依赖,模块紧耦合,不不⽅方便便做⾃自定义扩展 新内核 • ⽀支持链接复⽤用,原⽣生异步⽀支持 • 4核4G、1K数据 QPS 11w+ • 弱依赖,⽅方便便扩展,如服务鉴权、链接保护
21. 服务通信框架 - 统⼀一协议 • 美团点评合并:hessian vs thrift,通讯框架互调互通 • ⾃自定义⼆二进制协议:兼容⽀支持原⽣生Thrift协议 • ⾃自定义协议头:携带调⽤用链信息、上下⽂文 • ⽀支持全链路路参数传递,集成⽀支持全链路路压测需求 • 其它:⽀支持gzip、snappy、checksum
22. 服务通信框架 - 容灾降级 • 过载保护:线程池过载保护;按服务、接⼝口设置配额 • 链接保护:服务端可⽀支持的最⼤大链接数 • 服务隔离:不不同服务可分别配置线程池;快慢请求隔离 • ⼀一键截流:按调⽤用端、接⼝口等⼀一键掐流量量 • 容错处理理:快速降权,快速恢复
23. OCTO服务治理理实践
24. 服务治理理 - 全⽣生命周期
25. 全⽣生命周期 Define • 服务注册、负责⼈人与SRE服务树/CMDB系统打通 Develop • ⽀支持IDL定义、代码在线⽣生成 Test • 测试环境隔离,泳道特性 • 打通性能测试平台,⽀支持引流压测,获取容量量数据 Deploy • 打通发布系统,⽆无损平滑发布 • 打通服务树,限制节点注册
26. 全⽣生命周期 Monitor:采集数据上报监控平台,状态、QPS/TP、异常
27. 全⽣生命周期 Management:⽀支持RD⾃自助管理理服务,节点权重、路路由分组、配置管理理
28. 全⽣生命周期 Optimize:以报表形式输出,SLA指标、可⽤用性、资源分布及利利⽤用率
29. OCTO - 未来演进 OCTO 弹性调度平台
30. 回顾与总结 • 美团服务架构演进历程 • OCTO研发要点:代理理模式、状态检查、策略略下移、框架优化 • OCTO治理理实践:全⽣生命周期