全链路压测落地和演进之路 (4)

验证预案生效时服务本身的稳定性;

稳定性测试

稳定性测试的目的,是验证系统处于负载情况下,能否长时间提供稳定的服务能力。

每日问题复盘

在双十一期间,会针对每天压测发现的问题进行复盘,尽可能让性能问题及时解决。

 

发布阶段

经过闭关作战半个月,针对我们的核心业务链路,进行了多轮的压测和性能优化,各系统qps已经基本达到了预定的目标(等比例)。

 

演进

全链路压测落地和演进之路

从19年双十一,到今年双十一及双十二,全链路压测在我司的演进,总体可以从如下几个阶段来介绍,这几个阶段分别有大事件发生,也正好推动了全链路压测的迭代演进。

五彩石

时间

2020年3月

环境准备

混部环境(测试+预发+生产):特殊的环境导致了19年双11沉淀的一些经验几乎无法复用,环境问题也是五彩石全链路压测过程中,最大的难点和挑战。

最终的解决方案是接入流量标框架fusion+生产部分服务mock+生产DB创建影子库表的方式来解决了这个问题。

数据准备

通过生产数据定时同步到影子库+数据清洗的方式,准备了千万量级的压测相关数据。

整体耗时

从前期链路梳理到框架接入、影子库表创建、可用性验证、以及压测优化完成,共耗时24个自然日。

当然,由于当时整个环境是业务测试+产品验收+数据迁移+压测共用,实际耗时其实是很少的。

方法论

19年双11沉淀的没法复用,业内也没有这种特殊环境下的压测方法论,对压测团队而言,是一次重新探索实践

覆盖范围

由于五彩石项目主要是交易体系重构,当时全链路压测的覆盖范围也仅限于核心交易+搜索链路。

 

618大促

时间

2020年5月

环境准备

从今年618开始,我们的全链路压测开始在生产环境开展。关于环境的前置准备,主要是表结构同步检查+ECS规格巡检以及其他比如SLB、CDN、带宽的资源的日常巡检。

数据准备

数据准备主要分两个方面:

用户数据:专门准备了100W的虚拟用户数据,通过逻辑身份绑定和替换的方式,按序打通整体用户数据可用性。

业务测试数据:同步生产真实数据,针对敏感数据进行脱敏处理,然后业务数据绑定虚拟用户数据。

整体耗时

618阶段相比于五彩石,环境相对来说没那么复杂,且五彩石本身有一定的适合我们自己的技术沉淀,因此整个压测全阶段的耗时,相比五彩石少了不少,耗时为15天。

方法论

由于五彩石已有了一定的探索实践经验,在618全链路压测阶段,进行了补充完善。

20年618的全链路压测,可以说是我们全链路压测方法论从0到1落地的重要实践

覆盖范围

618相比于五彩石,压测的核心链路覆盖范围扩大了不少,主要包括交易+搜索+社区+客户端部分核心链路。

 

五周年活动

时间

2020年9月

环境准备

生产环境:表结构同步检查+ECS规格巡检以及其他比如SLB、CDN、MQ、带宽等资源的日常巡检。

数据准备

数据准备策略基本和618保持一致,虚拟用户数据保持不变,由于版本迭代的原因,只变更了部分业务测试数据。

整体耗时

从需求提出到开始压测,耗时仅用三天!

方法论

基本参照了618沉淀的技术文档以及一些实践经验,做到了快速复用

覆盖范围

由于五周年活动主要是一些营销相关的玩法,本次覆盖范围为交易+搜索+无线平台部分核心链路。

 

双十一大促

时间

2020年10月

环境准备

到今年双十一,生产环境已经成了全链路压测的标配环境。

数据准备

用户数据:由于业务快速增长,考虑到数据分布和业务逻辑缓存的问题,这次虚拟用户从100W增加到了700W;

业务测试数据:重新将生产环境的数据同步到影子库,针对性进行脱敏处理。

整体耗时

由于版本迭代和业务逻辑的不断变化,在准备阶段,重新梳理了核心链路以及强弱依赖,对流量模型进行了重构。迭代优化了主动/紧急预案、新增了缓存预热+客户端限流浮层。

容量巡检方面,新增了ToB的慢SQL梳理、MQ堆积告警等事项。且在今年双十一,我们接入了Zeus压测平台,对整个压测过程进行了规范提效。

整个准备阶段耗时15天,通过6次通宵压测,完美的达到了预期指标并留有一定冗余空间。

方法论

如果说19年双十一是从零开始,五彩石是重新探索触发,618是从零到一落地,五周年是快速复用,那么20年双十一的全链路压测,可以用从一到十来概括。

覆盖范围

相比于之前,本次双十一打通了风控链路。风控研发团队通过接入fusion框架+dubbo改造,让我们整体的压测流量能一直透传到风控服务,这样对整体的稳定性来说,提升是潜移默化并且巨大的。

覆盖范围:交易+搜索+无线平台(社区+客户端+增长)+风控。

 

大促方法论

全链路压测落地和演进之路

通过这几次大的技术项目,全链路压测,从零开始探索实践,到从零到一的能快速复用的方法论,以及从一到十的完善优化,我们也渐渐找到了适用于我们得物的全链路压测方法论。

 

性能指标提升

全链路压测在我司的不断演进,对应的是我们核心链路的性能不断突破新的领域。相信明年的618和双十一,我们的服务稳定性和性能表现,会达到一个更高的高度,不断超越自己。

 

未来

关于未来的工作规划,实际上还有很多方向等待我们去探索实践。比如:

全链路压测落地和演进之路

技术优化

在技术优化规划方面,我们主要集中在针对Dubbo、gRPC等协议的压测组件扩展支持,流量录制回放,全链路压测SOP等方面。其中全链路压测SOP、多协议压测组件支持,已经在路上。

场景覆盖

场景覆盖方面,考虑到后续业务场景的越发复杂,以及大促营销玩法的不断变化,我们会不断拓展核心链路的覆盖范围,探索深度组合场景在全链路压测中的实践,尽可能贴近真实的业务场景。

数据预埋

目前的数据预埋方式相对来说效率还是比较低的,后续规划中,会尝试自动化数据预埋的方案接入,以及缓存预热的方案梳理以及在针对深度组合场景的数据构造方面,有新的探索和实践。

流程提效

通过不断实践和团队的大量演练,后续的大促保障和生产全链路压测,我们希望通过SOP的方式,使其标准化,从经验复用过度到有法可循。

自动化和常态化方面,更多的是技术上的不断创新和落地实践,相信在不久的将来,我们能将这些一一落地,对生产稳定性保障,大促全链路压测,有更好的支持。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwxgd.html