1、后全链路压测时代张晓庆快手高级架构师,质效领域专家张晓庆10+年工作经验,2020年加入快手,主要负责压测平台、测试环境。之前在滴滴,主导了滴滴专快、顺风车、外卖等多个业务线的压测方案和常态化压测能力建设快手高级架构师,质效领域专家目录CONTENTS压测新局面与快手新思路01 工具平台化-高性能的压测平台02 手段立体化-丰富的压测能力03 压测例行化-压测左移&低成本例行化04 总结05 01压测新局面与快手新思路 从后端服务链路说起理想trace链路 从后端服务链路说起实际trace链路:如何验证线上系统容量是个复杂的事情全链路压测是银弹?优势优势劣势劣势 线上+链路级压测 高仿真度 2
2、013-2018年,大厂密集建设期2013年,阿里首次提年,阿里首次提出出 滴滴:夜间模拟百万司机、千万乘客 提升RD、SRE、老板的信心提升结果可信度和信心提升结果可信度和信心 下游服务流量变形 变形程度 链路复杂度 X 业务复杂度仿真度没想象中那么高仿真度没想象中那么高 建设成本:压测隔离技术 维护成本:业务变化、接口变更 执行成本:夜间值守成本对比较高成本对比较高快手压测的“新局面”活动频繁、降本增效的背景下,各业务的诉求各不相同活动频繁、降本增效的背景下,各业务的诉求各不相同大V活动、大促临时扩容,不同活动流量模型差异很大使用流量回放,数据实时性要求到秒级处于链路下游,链路流量失真;探
3、索不同机型容量,扩缩容主链路的流量稳定;公司级活动时,主链路+活动链路压力很大代码变更,接口响应变慢几毫秒都会影响性能,需要上线前压测业务A业务B业务C业务E业务D快手的压测演进010203042019年年2021年年2020年年2022年年-现现在在 A1活动:首次链路级压测活动:首次链路级压测 Jenkins+Gatling 自研压测平台自研压测平台PTP 公司级重要活动压测 压测隔离技术及业务落地压测隔离技术及业务落地 压测引擎性能稳定性建设 智能熔断、无人值守 各类模块级压测能力 业务低成本例行化压测落地业务低成本例行化压测落地压测作业规模不断提升2019年年2020年年2021年年2
4、022年年压测手段多样化压测领域架构图2.手段立体化:丰富的压测能力3.压测例行化:压测左移&低成本压测1.工具平台化:高性能的压测平台快手压测的“新思路”02工具平台化高性能的压测平台1.配置化免代码爬坡阶梯脉冲2020年,自研PTP压测平台 支持Http、RPC协议配置化免代码压测 支持多种发压波形:爬坡、阶梯、脉冲 支持运行时动态调压 支持参数文件、出参断言、系统函数示例:多链路配置化用例编写1.业务:流程梳理2.平台:配置化编排3.执行:压测流量模型配置化免代码的用例,占全部用例的98.1%2.性能稳定性建设从简单工况到复杂工况 响应体大:几百K字节、1M字节 有出参断言:解析响应体
5、有系统函数发压曲线稳定性可控 确保不高于预设值 也不低于预设值理想发压曲线3.智能熔断方案监控数据 服务类指标:QPS、可用性、时延 资源类指标:CPU、内存、带宽 线上报警熔断规则 被压服务、下游链路 服务等级、接口SLA、报警等级熔断模板:服务级别配置、用例级别配置 区分链路级集群压测、模块级单机压测区分链路级、模块级,是熔断召回率、准确率的关键小结:工具平台化智能熔断是无人值守的基础智能熔断能力智能熔断能力复杂工况下,发压数千万QPS高性能高稳定高性能高稳定用例编写成本低配置化免代码配置化免代码01OPTION03OPTION02OPTION03手段立体化丰富的压测能力链路级:全链路/核
6、心链路压测1.流量标记与生成2.中间件与数据隔离 支持读写分离 支持配置化调整3.配套基础设施 监控、报警、trace链路模块级:离线流量回放65.5%的场景下使用流量回放1.为什么选择流量回放?与构造数据相比,流量回放的仿真度更高2.为什么选择离线?方案简单:几百G流量,离线配送 数据更新:天级录制和更新数据3.离线流量回放方案 第一步:录制流量 第二步:流量脱敏与存储 第三步:流量回放压测模块级:实时流量回放1.Lite直播:实时性要求高 录制5分钟,时延15-30分钟,关播率8%2.改进的离线回放压测 录制5分钟,时延6分钟,关播率1%3.为什么要做实时?录制5分钟,回放5分钟就结束了,