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

​前言

笔者所在的公司是一家快速发展的互联网电商公司,在保证业务快速稳定发展的同时,对于系统稳定性、可用性和扩展性的要求,也在不断提高。

特别是互联网电商企业每年的两次大考:618&双11,更是对服务的三大特性有更多的要求。在大促活动开启之前,无论是前期的核心业务梳理、线上流量评估、场景建模,

还是测试实施阶段的监控分析、调优验证,乃至线上的容量规划,每个环节都需要做很多工作。且这些工作都需要运维、开发、测试、产品甚至数据分析团队的协同配合,才能保质高效的完成。

全链路压测,作为电商大促的稳定性保障利器,也在不断的迭代演进。

这篇文章,为大家介绍下全链路压测在我司的落地和实践演进史。

当然,其中的某些敏感部分已脱敏,请谅解(图片水印为本人微信公众号水印)

 

落地 挑战

去年双十一,为了应对零点的峰值流量冲击,我们在八月下旬启动了第一次全链路压测。由于是从零开始,因此单独的搭建了一套和生产1:1的环境。

2个月的时间,环境成本就高达几百万。从项目KO到双十一活动开始,第一次双十一大促,我们面临着下面几点挑战。

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

核心链路梳理

电商业务本身比较复杂,且当前阶段我们微服务架构下,各个服务间依赖高,调用关系复杂,且没有较为清晰的链路梳理。

所以,面临的第一个挑战,就是从错综复杂的系统中梳理出核心业务链路。

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

如上图所示,梳理核心链路前一定要考虑清楚上面三个问题:

1)我们在梳理什么?

梳理核心链路,实际上是对我们的业务场景、数据场景和逻辑场景的梳理。

2)什么是核心链路?

从实践来说,核心链路主要有这几个特点:它是核心业务聚集区域、牵一发而动全身、影响导购下单支付。

3)为什么要梳理它?

梳理核心链路最重要的目的是让团队的每个人都清晰的知道:谁会影响我的服务,我会影响谁的服务,以及梳理过程中发现潜在的风险。

 

环境成本高昂

按照业内的实践经验和方案,全链路压测都是在生产环境进行,这样测试的结果才能更贴近实际的生产场景。

但由于我们是第一次进行全链路压测,因此只能选择折中方案——按照生产环境当前的配置,搭建一套等配镜像环境

镜像环境从资源准备到服务部署联调都比较耗时,且成本高昂,这逼迫我们必须拿到更好的结果,才能提高ROI。

 

流量评估困难

为了尽可能使压测场景更贴近真实的生产场景,需要对核心链路的流量模型进行比较准确的评估和模型确认。

由于各服务间依赖较高,且调用关系复杂,这对我们提出了新的挑战——如何评估出更接近真实场景的流量模型。

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

流量评估从我个人角度来说,最大的难点实际上在于找到切入点。

而最好的切入点,除了前面讲到的核心链路梳理,其次就在于完善的监控体系。其中,核心链路梳理是前置项,而监控工具则是流量评估的提效工具。

1)评估流量

完成核心链路梳理后,可以依据核心链路的请求调用关系进行上下游分析。相关工具的话,开源的有jaeger、skywalking、pinpoint等。

2)模型分析

模型分析主要关注三点:入口流量、内部流量和出口流量。它们各自的区别如下:

入口流量:主要指到达网关入口的预估峰值流量;

内部流量:微服务架构下,内部服务间调用会出现单个接口被多次调用的情况,这是需要重点关注的;

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

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