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

水平扩容能否提高能力:服务集群能否通过快速的水平扩容来提高处理能力;

 

任务多线开展

在双十一启动到活动开始这段时间,需要同时开展的任务较多。比如服务拆分、小红点迁移、DB&Redis垂直拆分、全链路压测及性能优化,以及新的业务线不断拓展,这些都是我们需要面对并且克服的困难。

 

过程

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

启动阶段

任务拆分

项目kickoff后,在负责人牵头下确定了本次双11的TODO项。主要是如下几项:

前端:降级点确认、容错保护、监控数据接入;

后端:核心链路梳理、监控&服务保护接入、专项预案、

测试:资源准备、压测模型梳理、压测方案、预案演练、线上功能验证;

基础架构:架构优化、DB垂直拆分、基础设施接入(链路追踪、监控、报警......);

资源保障:容量规划、镜像环境搭建、服务部署联调、线上扩容;

 

准备阶段

在准备阶段,按照任务规划拆解出来的细化任务进行同步开展,下面是准备阶段我们开展的主要事项。

核心链路梳理

各业务研发团队的owner对我们目前的核心业务链路进行了梳理,主要包括:首页、商品、订单、支付、用户、风控、优惠券、大促活动、基础服务等。

流量模型梳理

梳理了首页、商品、交易、支付等关键场景的下游依赖。将商品+交易+支付绘制了对应的依赖大图,并粗估双十一峰值数据,作为接下来压测、性能优化的技术目标。

镜像环境准备

由于本次全链路压测是在和生产等配的镜像环境进行,相当于一切从零开始搭建一套环境,无论是资源准备、服务部署还是服务联调验证,都耗费了较多的时间。

运维同学投入了很大的精力做support,从中也发现了我们之前的一些不足,累积了很多经验。

压测数据准备

为了尽可能保证压测数据的真实性,我们的解决方案是复制生产库的数据,进行脱敏和可用性验证,用来做压测的基础数据。

在数据脱敏和可用性验证这点,安全团队、DBA以及功能测试的同学给予了很大支持。

专项预案沟通

专项预案主要包括如下几项:限流、降级、熔断、脉冲、资损五种场景。

大促指标沟通

为保证压测流量和生产预估流量对齐,和运营产品同学进行了多次沟通,确认了本次双十一大促活动相关的活动场次、时间段、优惠券投放量、预估DAU等相关关键指标。

线上链路监控

监控就是我们的眼睛,有了监控,才能快速发现问题并定位修复问题。这一点,基础架构的同学为此做了很多工作。比如:链路追踪监控的Cat、可视化监控大盘-Grafana以及更多的监控组件。

 

实施阶段

在全链路压测实施阶段,根据测试场景和测试策略,我们主要进行了如下工作:

单机单链路基准测试

在微服务架构下,整体链路的性能瓶颈,取决于短板(木桶原理)。因此,单机单链路基准测试的目的,是在全链路压测开始前进行性能摸底,定位排查链路瓶颈。

单机混合链路水位验证

单机混合链路压测的目的,是排查上下游调用依赖的瓶颈,并以此测试结果作为限流预案的基准值。

全链路压测演练

全链路压测是大促的保障。在整个实施阶段,需要不断的压测、排查定位分析问题并进行优化,最终拿到结果。

专项演练

专项演练主要是针对服务限流降级熔断以及高可用、服务扩容进行验证。进行演练的目的主要有如下几项:

验证预案是否生效;

针对预案设定阈值进行测试调优;

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

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