首页 > 其他分享 >全链路压测(6):确认范围和识别风险

全链路压测(6):确认范围和识别风险

时间:2023-03-19 20:22:20浏览次数:38  
标签:依赖 压测 核心 业务 链路 识别

转载:https://www.cnblogs.com/imyalost/p/15992042.html

上篇文章用了很长的篇幅讲述了全链路压测从零开始落地实施的主要过程,其中在准备阶段是最耗费时间和精力的。

全链路压测是个复杂的跨团队协作的技术工程,所以在实施之前,需要明确项目的范围边界和尽可能提前识别可能存在的风险。

这篇文章,就来聊聊落地过程中,如何确定范围边界和识别存在的风险。

 

确定范围

全链路压测,见名知意,其本质是一个技术验证手段和过程。即通过一些列的准备工作和测试手段,来验证系统在生产环境的“三高”是否能满足某些特定情况下的业务需要。

所谓三高,指的是:高并发、高性能、高可用。

就像我在这个技术系列文章的开篇提到的一句话:“全链路压测适合某一部分具有特定业务需求的公司,能否实施取决于是否有合适的组织管理能力和对应的技术架构”。

那么如何来确定全链路压测涉及的范围呢?流程图如下:

 

 

如上述2张图所示,以电商双十一大促举例说明。

1、确定业务范围

电商业务,比较核心的是导购→活动→交易的业务,因为这些业务能带来比较直接的交易额和利润,也是用户直接访问频次较高的业务场景。

确定业务范围,可以参考下面这张思维导图:

2、梳理应用范围

确定大促的业务范围后,根据业务和应用的对照关系,梳理出对应的应用列表。

PS:这个过程可能有多次的沟通协调和battle妥协,因为谁也不想由于自己的应用不在范围内而导致出事故背锅。

3、识别核心链路

目前互联网行业大多是微服务这种分布式系统架构,服务之间的内部互相调用关系很复杂,一般会借用链路追踪工具来识别他们的调用关系以及调用频次,以此来判断哪些是核心链路,以及他们的强弱依赖关系。

PS:强弱依赖关系,影响到稳定性预案如何设计,比如强依赖一般不可降级,弱依赖可通过降级和熔断或异步解耦来解决高并发下的流量冲击。这点我会在后续的文章中重点说明。

4、识别核心接口

知道了核心应用以及核心的链路,那么核心的接口基本就可以梳理出来了。梳理出来的核心接口,一般也是我们在做全链路压测时候的接口。

PS:到这里测试同学就可以开始着手准备对应的测试case、数据和压测脚本了,其中准备测试数据会耗时较久

5、明确范围边界

如上图所示,交易是个实时且高频的场景,但订单支付成功后的仓储、物流以及收货后的社区分享,就是个非实时且流量更分散的情况,因此这些业务场景可以视其为非核心业务场景。

PS:当然,业务涉及的一些基本功能或者外部应用,如消息push、短信通知以及三方物流等,根据具体情况和对应供应商沟通协调好即可。

 

识别风险

除了确认全链路压测的范围之外,提前识别风险也是很重要的一项工作。常见的风险有如下几种:

1、交付风险

交付风险常见的有:拆分的细项任务无法按期完成,比如核心链路梳理,强弱依赖梳理。这些会导致后续的某些工作无法正常进行。

因为在准备阶段,越是前面的准备工作,他的优先级和前置性越高,后续工作对它进度依赖更大。

核心任务拆解,可以参考下面这张思维导图:

2、依赖风险

前面提到了强弱依赖,最核心的原因在于:生产全链路压测甚至是应对双十一流量峰值的场景,需要准备很多的稳定性预案,常见的有限流降级熔断甚至主备切换和容灾恢复等。

这些预案需要考虑很多因素,最核心的是服务和中间件等组件的强弱依赖关系。如我上述所述,强依赖一般不可降级,弱依赖可通过降级和熔断或异步解耦来解决高并发下的流量冲击。

3、环境风险

全链路压测,无论是在单独的性能测试环境进行单机单接口、单机单链路、单机混合链路压测,还是在生产进行压测,对环境的要求是比较高的。

特别是生产环境,需要考虑的更多。如流量路由的组件接入情况、mock准备、影子表、数据准备、预热甚至监控的覆盖度,都是会影响到环境的因素。

4、数据风险

生产全链路压测,最大的风险就是压测产生的数据影响到正常的用户业务数据,导致的数据污染。

还有一种场景就是业务会出很多的报表,这些数据都是通过从业务库离线写入数据分析团队的库进行计算分析的,如果不能对压测数据和正常业务数据进行识别和隔离,会带来很大的问题。

 

标签:依赖,压测,核心,业务,链路,识别
From: https://www.cnblogs.com/ceshi2016/p/17234129.html

相关文章

  • 全链路压测(4):全链路压测的价值是什么?
    转载:https://www.cnblogs.com/imyalost/p/15777351.html在前面的几篇文章中,介绍了全链路压测的背景、在企业中的立项流程以及落地的一些技术方案。在开始真正的介绍落地......
  • 全链路压测从零开始系列目录
    转载:https://www.cnblogs.com/imyalost/p/15685307.html原来打算十月份就更新完全链路压测从零开始这个技术系列的,后来由于很多因素导致拖更到现在,内心愧疚感满满。最近......
  • 全链路压测(3):技术改造和测试验证
    转载:https://www.cnblogs.com/imyalost/p/15733148.html上一篇聊到了项目申报和技术调研评估的话题,每个公司采用的技术栈、技术同学的偏好以及具体的业务特性都不一样,所......
  • 换个角度,聊聊全链路压测
    转载:https://www.cnblogs.com/imyalost/p/14244184.html前言之前自己也写过好几篇关于全链路压测的文章或者博客,最近看了infoQ上infoQ-数列科技杨德华的专栏,复盘了下自己......
  • 目标识别算法设计指引
    简述简述目标识别算法中常用的图像算法,便于以后算法的设计应用内容目标检测(Objectrecognition)是在一幅图像中精确地找到各种目标所在的位置,标注出每个目标的类别,在此基础......
  • 使用matlab机器视觉工具箱实现人脸特征的检测和定位,识别并标注眉毛,眼睛,鼻子,嘴巴
    1.算法描述机器视觉工具箱(MVTB)提供了许多在机器视觉和基于视觉的控制中有用的功能。这是一个有点折衷的收藏品,反映了作者对光度学、摄影测量学、色度学等领域的个人兴趣......
  • 使用matlab机器视觉工具箱实现人脸特征的检测和定位,识别并标注眉毛,眼睛,鼻子,嘴巴
    1.算法描述       机器视觉工具箱(MVTB)提供了许多在机器视觉和基于视觉的控制中有用的功能。这是一个有点折衷的收藏品,反映了作者对光度学、摄影测量学、色度学等......
  • 全链路压测落地和演进之路
    转载:https://www.cnblogs.com/imyalost/p/14204484.html前言笔者所在的公司是一家快速发展的互联网电商公司,在保证业务快速稳定发展的同时,对于系统稳定性、可用性和扩展......
  • <转>二十问全链路压测干货汇总(上)
    本文转载自:微信公众号-数列科技《二十问全链路压测干货汇总(上)》 最近几年全链路压测无疑成为了一个热门话题,在各个技术峰会上都可以看到它的身影。一些大型的互联网......
  • Qt+百度AI文字识别OCR小工具
    Qt+百度AI文字识别mOCR小工具@目录Qt+百度AI文字识别mOCR小工具介绍编译环境界面功能To-doList介绍基于百度AI开放平台的OCR文字识别小工具,用Qt5编写。实现通用识别,精......