滴滴出行平台的高可用架构课件_第1页
滴滴出行平台的高可用架构课件_第2页
滴滴出行平台的高可用架构课件_第3页
滴滴出行平台的高可用架构课件_第4页
滴滴出行平台的高可用架构课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、滴滴出行平台的高可用架构第1页,共32页。滴滴的出行业务架构高可用方法论异地多活一键降级防火放火第2页,共32页。滴滴业务简介接单接驾开始行程结束行程发单等待接驾上车到达支付乘客司机登录、鉴权 订单、司机 分单计价、收银、支付 反作弊、管控、运营服务交互服务交互交易状态流转平台交易业务: 实时、多状态、长链条第3页,共32页。业务架构演进MQ司机、订单、计价 收银、运营lvsnginxstorage分单系统lvsDFE核心业务apistorage分单引擎订 单司 机计 价收 银运 营DGWDFEstorage分单引 擎2.0订 单司 机计 价收 银运 营专快 api出租 车apiUbera p

2、i代驾 apistoragestoragestoragestorage登 录 鉴 权收 银 支 付运 营地 图草创时代2012.9滴滴打车上线2013.8 1kw+用户 红包大战2014.3 单量300万单/天 乘客1亿 司机100万专快车上线2014.8 专车上线2015.5 快车上线2016.3 1000万单/天Uber合并2016.8 收购Uber中国2016.10 2000万单/天外包日订单量: 15年几百万 - 目前2500w+(仅次于淘宝)第4页,共32页。高可用面临的挑战流量增 长迅猛业务增长迅速 节假日效应明显业务复杂实时 多状态 交易型 链路长新场景多 迭代快稳定性 挑战大高

3、速路上 换轮子业务调用链路接口调用链条示例第5页,共32页。滴滴出行的业务架构高可用方法论异地多活一键降级防火放火第6页,共32页。高可用的常见措施不可用因素典型case增大MTBF缩短MTTR程序、数据和配置 bug程序出core、配置格式出错研发质量、测试质量、变更分级 解耦减少变更、监控告警、快速回滚机器和网段级故障宕机、边缘交换机板卡故障、 光纤抖动硬件冗余预警预迁移服务、切流到本机 房冗余、数据主从切换多网段和机房级故 障核心交换机故障、链路割接、 机房掉电硬件冗余(包括多机房)预警预迁移服务,切流到其他 机房流量大促、节假日和特殊天气、外 部攻击、上游重试雪崩上游容错调度防雪崩容量

4、规划、防攻击、其他同容 量不足容量主流程服务容量不足容量规划、容量预警限流、切流其他冗余、降级、 熔断弱依赖、快速扩容依赖服务账单依赖的到达时间预估故障 分单依赖的特征服务故障、递归使用前述方法提高该依赖的 可用性熔断弱依赖,或递归使用前述 方法提高该依赖的可用性第7页,共32页。高可用的8大抓手、抓手典型做法业务平台服务研发质量容错设计、cr、单测、稳定性 评审弱依赖化(主流程瘦身) 数据流治理、研发流程、scmpf流程平台rpc框架、服务组 件测试质量线下仿真仿真环境建设、测试流程仿真环境解决方案、测试 框架支持引流、dump变更管理按机器或流量分级发布、多 维度质量检测灰度发布、检查和回

5、滚流程部署系统、分级发布系统服务发现、配置中 心监控告警机器/进程/业务监控及报警监控大盘、多级报警监控系统、告警系统metrics、trace故障预案定位和止损的预案预案建设异地多活、一键预案/降级中间件支持切流 限流、熔断、降级容量规划全链路压测、子链路压测、 哨兵压测改造支持各压测压测平台中间件支持压测放火盲测弱依赖验证、预案有效性和 完备性验证请求级放火、资源放火放火盲测平台中间件支持放火值班巡检例行值班表、节假日值班例行值班、集中应急处理值班平台第8页,共32页。高可用的5级演进目标4321021043手工5工具化平台化自动化智能化43210召回占比演进x年x+1年未来第9页,共32

6、页。滴滴出行的业务架构高可用方法论异地多活一键降级防火放火第10页,共32页。异地多活一个脚本引发的“血案”?https:/data/attachment/forum/201508/19/155520wtajnigimiz3jqgk.jpg哪些服务多活?同城还是异地?第11页,共32页。如何实现多活?流量路由流量标记 分层路由 单元化数据同步中间件同步 业务双写降级预案单活降级 数据故障兜底第12页,共32页。业务层接入层短连接业务核心api分 单 系 统坐 标 系 统数据库缓存列式特征消息队列收 银 支 付司 机 系 统订 单 系 统登地录图鉴 权长连接Native AppWebApp用户层

7、数据层业务层接入层短连接业务核心api分 单 系 统坐 标 系 统司 机 系 统订 单 系 统地 图登 录 鉴 权长连接Native AppWebApp用户层数据同步流量路由多活架构数据库缓存列式特征消息队列 数据层第13页,共32页。业务层接入层短连接业务核心api分 单 系 统坐 标 系 统收 银 支 付司 机 系 统订 单 系 统登地录图鉴 权长连接Native AppWebApp用户层业务层接入层短连接业务核心api分 单 系 统坐 标 系 统司 机 系 统订 单 系 统地 图登 录 鉴 权长连接Native AppWebApp用户层流量路由单元内访问、不要跨机房流量路由流量如何划分?

8、 流量标识如何传递?路由如何决策? 单活如何访问多活?跨城、漫游如何处理? 为什么分层切换?第14页,共32页。业务层业务核心api分 单 系 统坐 标 系 统数据库缓存列式特征消息队列收 银 支 付司 机 系 统订 单 系 统地 图登 录 鉴 权数据层业务层业务核心api分 单 系 统坐 标 系 统司 机 系 统订 单 系 统地 图登 录 鉴 权数据同步数据同步数据库缓存列式特征消息队列 数据层一致性挑战:成功率、延迟、有序、不重业务层的挑战: 不同系统有不同的数据特性司机系统:短时问题可容忍,但数据修复麻烦 订单系统:强一致性要求,但修复相对简单 分单系统:短时问题可容忍坐标流:获取最近的

9、数据,部分丢失无影响第15页,共32页。数据同步系统数据特征分析存储一致性系统特性同步方案司机 系统身份信息静态变化小数据库、缓存无需考虑1、短时问题可容忍2、db出问题修复麻烦1、数据库主从同步,写主读从2、缓存通过proxy互写同步是否忙碌、是否出车、座位数关键因子数据库、缓存、 列式特征中偏高策略数据(服务分、围栏、新政) 非关键因子列式特征中偏低订单 系统起始位置等信息静态变化小数据库、缓存无需考虑相对修复简单1、乘客直接结束订单再次发单2、客服通过接口强制关单1、数据库主从同步,成交主流程写主读主2、缓存:有序不重双集群校验binlog反冲,最终一致订单状态6-7个(状态机)状态错误

10、,无法继 续数据库、缓存高分单 系统司机和乘客特征短时可接受列式特征中偏低特征出问题,可从数据库回捞:1、手工,听单检测 收车出车2、服务端旁路检测司机状态在业务proxy层实现主从同步(类数据库)坐标流司机乘客坐标信息内存低获取最近产生的数据,可容忍数据 丢失实现容易,在业务proxy层互写mq消息队列低异步数据,一致性要求不高全量互同步第16页,共32页。降级预案多活: 切流单活: 熔断故障特征库数据异常: DB回捞DB挂了: 主从切换无状态业务数据故障DB主从延迟计价、服务分有损: 善后补偿网络抖动: 短时限流 防雪崩、长时切流到主 机房抖动+主力机房挂:超 小概率、最小系统有损降级第1

11、7页,共32页。滴滴出行的业务架构高可用方法论异地多活一键降级防火放火第18页,共32页。What?限流:大促时限制入口流量页面去掉非核心功能同步转 异步切流:流量切到正常集群尽可能保住服务第19页,共32页。Why?业务出问题不可避免需要上线,止损慢预案有冲突、容易失效业务压力大,精力有限要有降级预案快速生效止损预案管理降低接入成本第20页,共32页。How?场景预案,一键快速生效L1: 业务无损: 号码保护、不作弊、导流、切流L2: 部分效果受损: 动调,计价(路面距离降级为直线距离)L3: 核心支付效果有损: 收银熔断、乘客未支付可以发单L4: 核心主流程效果受损: 发单限流、内部丢单移

12、动+pc双端 随时触达生效率监控、灰度发布、平台双活、互斥管理 安全生效切流、限流、熔断、普通降级配置语义+中间件action实 现评分系统驱动接入和演练有效演练高效快速接入止损第21页,共32页。Detail第22页,共32页。切流实现路由表通路实时配送平台动态配置路由 规则路由 算法流量标识目的机房输入降级中间件服务 实例举例:路由成环问题?第23页,共32页。限流实现限流配置通路实时配送平台动态配置限流 规则令牌桶 算法caller、callee、 method是否限流输入降级中间件服务 实例令牌桶:支持突发漏桶:强限固定的速度第24页,共32页。熔断实现熔断配置通路实时配送平台端动态配

13、置熔断 规则开关 语义 识别熔断标记是否熔断输入降级中间件服务 实例第25页,共32页。滴滴出行的业务架构高可用套路异地多活一键降级防火放火第26页,共32页。防火灭火放火的重要项目防火降低不可用发生概率:线下仿真灰度发布灭火缩短止损时间:异地多活一键降级验证灭火是否有效完 备:故障注入压测放火第27页,共32页。防火-灰度发布上线过程idc-preidc-small人群灰度?X 开关维护成本高机器灰度?X 指标不聚焦不敏感So 人群灰度+机器灰度idc1-g1idc1-g2idc1-g2idc2预发城市 灰度10%40%100%第28页,共32页。放火-压测全链路压测仿真司乘行为透传压测标识

14、隔离压测数据单链路压测注重子系统压测隔离压测数据构造上游请求Mock下游结果哨兵系统小规模损失风险换取及时预警物理隔离流量大于正常集群动态调控第29页,共32页。放火-故障注入控制中心REQ LEVELCPUMEM NETI/OSYS LEVELINTERFACECITY PERCENT FLOW TAGLATENCY ERRCODETHRIFT HTTPHIGH USAGE PACK LOSSSLOW NET CONN REFUSE协议层故障类型故障类型command目标预案完备性检查强弱依赖验证提升异常分支覆盖率层次线下环境线上测试账号线上单个城市IPTABLES NGINX MODULE RPC MIDDLEWARE实现第30页,共32页。高可用落地组织结构支撑公正的第三方组织(星辰花):复盘、 定级追责、Trace 进展专项FT:虚线汇报、项目经

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论