流量回放在酷家乐的演进历程
如果无法正常显示,请先停止浏览器的去广告插件。
1.
2. 流量回放在酷家乐的演进历程
肖昌奔-酷家乐
3. 前言
PREFACE
在面临系统重构、拆分、中台化时,如何有效高效的进行回归测试
是个很大的难点 。
基于这点,我们结合了公司内部的一些资源平台,实践了一套流量回放的体系,
已经在多条业务线有较好的实践。
厂商:
4. CONTENT
01 02 03
背景 演进历程 总结展望
厂商:
5. 酷家乐架构
服务粒度细化
中台化趋势
前后端分离
厂商:
6. 挑战困难
1 系统重构如何快速回归?
2 如何高效率的进行有效测试?
3 如何尽可能广的覆盖测试范围?
4 如何提高提测质量?最好让开发自测,测试不介入测试
5 。。。。。。
厂商:
7. 如何高效且有效进行测试
流量回放
引入优秀工具
厂商:
整合公司资源
8. CONTENT
01 02 03
背景 演进历程 总结展望
厂商:
9. 一些优秀的开源工具
工具
Goreplay
特性
支持 HTTP 请求的录制和回放
Diffy 支持 HTTP,提供diff能力,可以智能降噪
Repeater 提供录制、回放、mock等能力,扩展性强
RDebug 支持世界上最好的语言,不支持java
RDebug
厂商:
10. 简单Demo
完美适配
Diffy
New
Goreplay
Prod
Proxy
Result
Old
Old
厂商:
11. 简单Demo
厂商:
12. 酷家乐现状——环境
厂商:
13. 酷家乐现状——SOA
酷家乐服务间调用
本质上还是Http
厂商:
厂商
14. 存在的问题
搭建一套diffy环境有成本,且管理杂乱无章
如何准确筛选出只读接口?
Response为密文/压缩/二进制?
厂商:
15. 统一管理平台——Kudiffy
服务维度管理Diffy
厂商:
16. 接口智能筛选
利用监控调用链智能筛选
1. 把目标接口对数据库操作做一波过滤
2. 查询api子调用
3. 把被调用的api对数据库的操作做一波过滤
Jar包形式接入业务方特殊逻辑
解法
厂商:
17. 数据安全保障——影子表
Beta环境回放如何确
保不污染线上数据?
厂商:
18. 拓展延伸
Diffy思路
Diffy能力
接口自
动化
流量回放
基本能力
降噪
工具平
台
日常测
试
拓展延伸
厂商:
实时
19. 拓展延伸
举个例子
厂商:
20. 优缺点
优点 缺点
u 智能降噪 u 不支持写请求回放
u 全链路校验 u 做不到跨环境回放
u 普适性
厂商:
21. 影子表
借用影子表的思路,所有存储都生成一份影子表,
读真实表,写影子表,可以验证全链路
单服务
借鉴阿里doom的思路,以单服务维度,把服务外
部的交互全部mock掉,包括子调用、存储
厂商:
22. 厂商:
23. 必要插件:http、soa、mybatis
次要插件:mongo、es、kafka、guava cache等
厂商:
24. 1 建立日志中心,定时拉取repeater日志
2 解析特定日志,统一分析排查,减少人工投
入,加快推广进度
厂商:
25. 1 给流量加版本号,对应服务部署的Commitid
2 借用diffy的思路,先回放到稳定环境,把
diff作为噪音,筛选掉子调用异常部分的流量
3
再回放到目标环境,把结果做降噪处理
厂商:
26. 批次 回放数量 失败数量
原始 1106 243
过滤 944 128
降噪 944 1
厂商:
27. 1 黑白名单过滤
2 以接口维度设置录制采样率
3 利用监控流量数据,智能生成采样比例,流量占比低
于阈值则百分百采样
厂商:
28. 厂商:
29. 两套工具各有用武之地
2.精准测试——接口维度获取一
次迭代变更
4.借用diffy的思路,把结果做降
噪处理
厂商:
30. 1 流量回放能力服务7条业务线,100+个服务
2 10+工具平台接入Kudiffy
3 20+接口自动化服务接入Kudiffy能力,编写用
例效率大大提升
4
通过平台(Kudiffy&Kurepeater)累计发现200+个BUG
厂商:
31. A
B
优秀工具
Diffy能力
Diffy
C
Goreplay
Diffy思路
内部平台
D
Repeater
探索中
厂商:
32. CONTENT
01 02 03
背景 演进历程 总结展望
厂商:
33. 流量数据沉淀后,封装各种个性化的数据,比如压测数据
复杂方案数据、参数化模型数据
厂商:
34. 厂商:
35.