全链路稳定性背后的数字化支撑:阿里巴巴鹰眼技术解密

ArchSummit

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

ArchSummit 2017 全球架构师峰会 深圳 PPT下载

ArchSummit2017  全球架构师峰会 

文字内容
1. 全链路稳定性背后的数字化支撑 阿里巴巴鹰眼技术解密 周小帆 阿里巴巴 中间件技术部
2. 周小帆 l  就职于阿里巴巴中间件&稳定性平台。 l  参与了阿里近五年来监控体系的建设及演进。中 间件“鹰眼”监控系统服务端技术负责人。 l  阿里云产品“业务实时监控(ARMS)”技术负责人。
3. Agenda ! •  EagleEye@Alibaba! ! ! •  EagleEye •  -> - ! ! ! !
4. 微服务之“熵” ! ! ! ! ! ! ! 2012 !
5. EagleEye是什么 EagleEye ! ! EagleEye ! ! EagleEye Google Dapper https://research.google.com/pubs/pub36356.html ! !
6. 一次分布式调用 10000+ ! ! B 10.76.123.5 A 10.102.126.1 全局唯一TraceID: 78c74f481492423509 5448703d0e34! RPC Event Log 78c74f4814924235 095448703d0e34! RPC Event Log RPC C 10.111.43.9 78c74f4814924235 095448703d0e34! RPC Event Log D 10.85.65.34 78c74f4814924235 095448703d0e34! RPC Event Log EagleEye 处理集群
7. 一次分布式调用 TraceID: 78c74f4814924235095448703d0e34! ! 2014-11-11 00:00:00,123! 2014-11-11 00:00:00,127! 2014-11-11 00:00:00,128! ! 10.102.126.1 HTTP Call OK! 10.76.123.5 Service Call OK! 10.111.43.9 DB Call TIMEOUT! …! …! “ ” ! RPCID!
8. 一次分布式调用 TraceID + RPCID(SpanID) B 10.76.123.5 A 10.102.126.1 78c74f481492423509 5448703d0e34! RPC Event Log 0! RPC C 10.111.43.9 78c74f4814924235 095448703d0e34! 78c74f4814924235 095448703d0e34! 0.1! D 0.1.1! RPC Event Log RPC Event Log 10.85.65.34 78c74f4814924235 095448703d0e34! RPC Event Log 0.2! EagleEye 处理集群
9. 一次分布式调用 TraceID + RPCID TraceId! TraceId=ac18287913742691251746923! ! !
10. 将万亿级别调用链数据进行聚合 serviceName! B 10.76.123.5 url! A 10.102.126.1 78c74f481492423509 5448703d0e34! RPC Event Log RPC serviceName! C 10.111.43.9 url! 78c74f4814924235 095448703d0e34! 78c74f4814924235 095448703d0e34! 0.1! D 0.1.1! RPC Event Log RPC Event Log 10.85.65.34 78c74f4814924235 095448703d0e34! 0! ip! idc! ip! idc! ip! idc! serviceName! url! EagleEye 处理集群 RPC Event Log 0.2! ip! idc! serviceName! url! Tag !
11. 将万亿级别调用链数据进行聚合 (根据业务入口进行聚合) 600 200 ! 订单 系统 1000 4ms! ! 950 RPC RPC RPC 库存 系统 RPC ! 900 3ms! ! ! ! ” ! ! RPC ! ! “ 20 2ms! 缓存 2ms! 1. 2. ! 1ms! 积分 系统 交易 ! 190 2ms! 1ms! 会员 系统 ! 850 2ms! ! 50 5ms! !
12. 调用链的聚合结果 - 链路分析 ! 依赖压力点 易故障点 潜在易故障点 耗时瓶颈点
13. EagleEye基础功能小结 EagleEye TraceId RPCId ! ! ! Tag !
14. Agenda ! •  EagleEye@Alibaba! ! ! •  EagleEye •  -> - ! ! ! !
15. 鹰眼整体架构 (2012) TraceId ! ! ! ! ! ! (HBase)! HDFS)! Agent! ! ! 1. 2. ! !
16. 鹰眼整体架构 – 实时化 (2014) TraceId ! ! ! ! ! ! (HBase)! HDFS)! Agent! ! ! ! ! (HBase)! ! ! ! !
17. 鹰眼整体架构 – 轻量化 (2016) TraceId ! ! ! ! Agent! MPP ! ! (HBase)! ! !
18. 监控系统 - 流计算的挑战 •  ! 24x7 ! ! ! •  ! 回滚点 (JStorm) ! Exactly-Once ! ! 中控 修复 回滚点 回滚点
19. 监控系统 - 流计算的挑战 •  ! vs ! ! ! •  ! -> uv vs. One-Pass & Mergable uv )! StreamLib ! ! +GlobalReduce LocalReduce !
20. 监控系统 – 确定性保证 Tradeoff! ! ! 监控对象出现问题? 还是 监控系统处理延迟? 12:01 12:02 12:03 … …! 流式引擎 > ! ! ! !
21. 相关优化 – 齐全度优化 ! SLA! ! Snapshot ! 12:11! 100 %! 12:12! ! 12:10! 12:10! (Watermark)! ! ! Watermark 75%! ! 准确度93% Partition Barrier/ Partition Barrier ! ! 准确度100% 准确度10%
22. 存储层优化 ! •  HBase TraceId Rowkey! •  Hadoop/ODPS ! 1.  TraceId TraceId ! 2.  ! •  HiStore TraceId HiStore MySQL ! ! •  •  •  •  OpenTSDB Rowkey Schema! OpenTSDB Proxy ! ! Co-Processor ! TTL
23. 模块化改造 •  实际排查中遇到的案例 计算卖家 XYZ 在该路线的 运费 –  线上的某次系统调用异常,是由哪笔订 单的什么操作引起的? A B C E –  这笔异常订单,是否由于卖家对应关联 商品的某些异常操作导致? D 查询商品 A 相关的标签 –  系统QPS出现波动,影响了上游哪些服 务? id TraceId ! ! “ ” 买家 abc 点击下单 ! 计算订单 123 的费用 查询商品 B 的优惠
24. EagleEye集群Pipeline ! eagleeye.log! ! !
25. “自定义链路” ! •  ! binlog •  ! TraceID •  ! & …! ! Topic ! ! •  ! HDFS/HBase/MySQL/ •  ! / ! / …!
26. 满足个性化需求的EagleEye Pipeline ! ! ! ! !
27. 用“积木块”搭建数据处理流程 (ARMS,内部名TLog) ! ! ! ! ! Powered by Google Blockly! Still in Lab!
28. : buy! : /home/admin/logs/buy.log! 2016-07-25 17:25:00 0a48514414249449347162339e 0.1 18661234567 ERROR! 2014-07-25 17:25:00 0a48514414249449347162339e 0.3 18661234567 SUCCESSFUL! 2014-07-25 17:25:00 0a48514414249449347162339e 0.15 18662233445 53160 SUCCESSFUL! …! …! :! TraceId RPCId : 1. ! 2. ! ! 300 400 500
29. ! ! 2016-07-25 17:25:00 0a48514414249449347162339e 0.1 18661234567 300 ERROR! ! ! Group By Sum(Price)! !
30. 将“积木块”转化为流计算 (ARMS) Ac4on Ac4on Ac4on Ac4on Ac4on DAG! ! ! ! (JStorm or SparkStreaming)! ! ! !
31. 将业务与系统链路双向绑定 id = 18661234567! 交易订单详情 商品标签与优惠 当时的库存情况 异常错误信息 支付信息记录
32. 将业务与系统指标双向关联
33. 模块化改造的结果 2014 2014 Q1 ! ! Q1 ! ! EagleEye EagleEye ! EagleEye !
34. 全息排查全景图 浏览器 流量 接入层 http/https! Javascript http! CDN 后端系统 移动 APP HTTP2! 数据复制 SQL! 服务/消息/缓存 移动网关 数据库 BINLOG ! 用户访问 记录 业务埋点 信息 变更记录 异常堆栈 BINLOG EagleEye TraceId 订单号 数据分发 用户号 ! 商品号 交易单号 物流单号 ! ! 1780+! 1PB+! 7000W/s+! 2017 7 ! !
35. 鹰眼整体架构 – 模块化 (2016) ! ! ! ! Agent! MPP ! ! ! ! (HBase)! ! PC) ! !
36. Agenda ! •  EagleEye@Alibaba! ! ! •  EagleEye •  -> - ! ! ! !
37. 被动->主动 ! ! ! ! !
38. 被动->主动解决思路 •  “ ” •  •  ! ! ! ! •  ! •  •  ! ! •  ( ) ! ! “ ” “ ”!
39. 识别 ! ! !
40. 识别 !
41. 识别+关联+定位 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! …! A B E C D ->! !
42. 案例 1 ! ! ! ! B ! A ! ! ! 1 ! B ! ! A B ! ! ! A B ! !
43. 阿里巴巴鹰眼系统演进史 2012 2016 1.0版本 初出茅庐 3.0版本 系统链路+业务链路 •  链路跟踪能力(TraceId, RPCId) •  离线、实时统计能力 •  业务全息排查 •  业务实时监控 •  数百个集团内应用接入 •  强化流计算/时序与事件存储 2014 2.0版本 平台化 •  支持全链路压测 •  流程插件化、配置可视化 •  对接1000+集团内个性化需求 2017 云化 创新与探索 •  云产品EDAS/ARMS •  全链路根因分析 •  SmartLog •  业务链路自动梳理
44. 鹰眼3.0 – 一个端到端的APM实现 ! 电商: •  店铺销售额变化趋势 •  线上最畅销热门商品 车联网: •  车辆同时在线率 •  车辆行驶最拥堵区域 零售: •  各大区域销售额实时统计 •  库存动态变化率 ! (ARMS)! ! ! (EDAS)! ! ! ( )! ! •  •  •  调用链全息排查 全局调用拓扑 链路依赖项的分析梳理 •  •  应用调用次数,错误占比 异常堆栈日志、慢 SQL •  •  操作系统:CPU, 内存, IO, 网络 组件服务:容器, 数据库, 缓存
46. ! !