vlambda博客
学习文章列表

技术夜校|大促利器——全链路压测

老张是得物性能团队的第一人

六年压测&性能调优经验,推动了得物的性能测试从零到一,从一到十的体系建设;曾经历过多次618、双十一大促流量洪峰和负载业务的考验,带领压测团队取得了亮眼的成绩。

每年的大促,对于剁手党来说是一次又一次的狂欢,而对于得物的技术小伙伴来说,是一次又一次严峻的考验。老张作为性能测试团队的负责人,每次大促来临前夕,都要带领团队经历几个通宵,进行全链路压测,要保证大促当天的稳定与丝般顺滑。

此次夜校分享,老张向大家介绍了得物性能测试如何从零到一落地、全链路压测演进史、演进过程中面临的挑战及方法论、以及全链路压测的未来规划。

技术夜校|大促利器——全链路压测

01

全链路压测


全链路压测是基于实际的生产业务场景和系统环境,模拟海量的用户请求和数据,对整个业务链路进行各种场景的负载测试,持续发现并进行瓶颈调优,保障系统稳定性的一个技术工程。


全链路压测主要针对业务场景越发复杂化、海量数据冲击,发现并解决整个业务系统的可用性、扩展性以及容错性的过程。


它带来的价值分两个方面,技术角度来看,降低成本、提高服务可用性、技术练兵&团队协作&快速响应;业务角度来看,提升用户体验、技术更好的服务业务、创造更多业务价值。


技术夜校|大促利器——全链路压测

性能测试,从零到一

02

2019年6月之前,得物从未进行过全链路压测,但随着业务的不断扩张,用户的不断增长,流量的急速上升,大促期间系统的稳定性也面临着巨大的挑战。在此之前,性能测试团队从2019年4月开始组建,5月进行相关规范和环境的搭建,到了6月进行了第一次大促压测,顺利完成。2019年10月,为了备战双十一,经过一个月时间准备,进行了得物第一次的全链路压测。


有了2019年的经验,2020年进行了4次的全链路压测,分别是五彩石项目、618大促、五周年庆和双十一大促,均比较顺利。

技术夜校|大促利器——全链路压测

03

面临的挑战


19年双十一面临的挑战主要集中在四个方面:核心链路梳理、环境成本昂贵、流量评估困难和任务多线开展。


核心链路梳理最大的挑战在于业务场景复杂、服务依赖度高、调用关系复杂;环境成本方面,模拟生产环境(镜像1:1的环境)成本较高、数据准备难度、服务联调block;流量评估困难,链路追踪工具缺失、监控体系覆盖不足、缺乏有经验的同学;任务多线开展,服务&DB拆分、Redis大key治理、版本迭代合并发布。


核心链路是牵一发而动全身的,影响导购下单支付,是核心业务聚集区域,通过梳理业务场景、数据场景和逻辑场景来看核心链路会影响到谁,谁又会影响核心链路,存在哪些风险。

如何进行流量评估?主要通过核心链路梳理、请求调用监控、上下游依赖分析来评估流量。


技术夜校|大促利器——全链路压测

在进行流量评估时,各环节需要需要关注安全水位:最大的处理能力、稳定处理能力、水平扩容能否提高能力。

19年双11全链路压测全过程如下,整个过程分为启动阶段、准备阶段、压测阶段、备战阶段等。

技术夜校|大促利器——全链路压测
技术夜校|大促利器——全链路压测

全链路压测演进史

04


得物的全链路压测演进史如下,从19年双十一第一次全链路压测,到五彩石架构重构,在时间紧迫、复杂环境的背景下,在混部环境(既有测试环境,又有预发,还有生产服务)进行全链路压测,难度较大;

经过五彩石的实战演练,已经沉淀了一些经验和方法论,在20年618进行全链路压测时,比较顺利;

五周年大促的压测比较紧急,从通知到生产压测,实际只用了三天时间;

今年刚过去的双十一大促,全链路压测仅用15天的时间。

从去年双十一初次摸索,到五彩石试探前进,到618落地成型,以及到五周年快速复用,最终到今年双十一的成功交付,这是一个从零到一,从一到十的演进过程。


技术夜校|大促利器——全链路压测

05

未来规划

未来,关于全链路压测会这么做:

技术优化:多协议支持、流量录制回放、全链路压测SOP

场景覆盖:广度、深度、组合场景

数据预埋:自动预埋、缓存预热、数据构造

流程提效:标准化、自动化、常态化

技术夜校|大促利器——全链路压测

全链路压测还在优化、完善,相信后续老张会带给大家更多分享,让我们一起期待吧~


1

END

1


【得物技术】