全链路压测方案(一)—方案调研

一、概述
     在业务系统中,保证系统稳定至关重要,直接影响线上业务稳定和性能。测试工作作为保证生产质量的最后一关,扮演者重要的角色。全链路压测是一种重要的测试工具和手段。可以解决系统中多环节多节点无法全流程打满流量的痛点问题,对于提高系统的稳定性和性能,至关重要。进而更好的满足用户的需求和业务需求。
业务系统日常痛点:

  • 新技术引入和创新落地风险:一般系统迭代和架构变更,技术创新和新架构的可行性和稳定性,通过传统单点测试很难完全覆盖多种场景,存在遗漏的风险。进而产生生产故障
  • 系统瓶颈:由于业务的复杂性,应用通过多个系统和组件组成,涉及多个平台和技术栈交叉调用,系统复杂度也对应提高。整个流程中的问题很容易被隐藏。
  • 精细化管控:缺少压测数据支撑,对系统资源,硬件资源如并发量,吞吐量缺少经验数据,对资源利用率难以把控。造成资源浪费和利用率低

二、目标建设
     全链路压测平台: 通过平台模拟真实用户场景下的系统吞吐量和负载能力,完成系统资源,硬件资源全面评估,对系统性能和稳定性有数据支撑。保障业务的稳定性和持续性
建设目标:
    1、业务代码0侵入:在接入、采集和实现逻辑控制时,不需要修改任何业务代码
    2、数据隔离:可以在不污染生产环境数据和日志的情况下实施性能测试,可以在生产环境对写类型接口进行直接的性能测试。
    3、链路治理:能够帮助业务和微服务架构分析业务链路,以技术方式获得功能视角的链路信息
    4、性能瓶颈定位:性能测试结果可以直接展现整个链路中存在性能瓶颈的微服务架构节点
    5、全链路压测闭环:压测数据准备->压测执行->数据上报->监控->数据分析->压力参数调整->数据准备->压测执行,形成闭环

三、行业解决方案
1、阿里:
全链路压测方案(一)—方案调研_第1张图片

全链路压测方案(一)—方案调研_第2张图片
全链路压测方案(一)—方案调研_第3张图片

全链路压测方案(一)—方案调研_第4张图片
2、字节Rhino: rhino链接 :https://editor.csdn.net/md/?articleId=135590585
全链路压测方案(一)—方案调研_第5张图片
3、美团 quake: 链接 :https://tech.meituan.com/2018/09/27/quake-introduction.html
全链路压测方案(一)—方案调研_第6张图片
四、Takin
Takin是基于Java语言开发的一套生产全链路压测的系统,可以在无业务代码侵入的情况下,嵌入到各个应用程序节点,实现生产环境的全链路性能测试,适用于复杂的微服务架构系统。
全链路压测方案(一)—方案调研_第7张图片
GitHub开源地址如下:https://github.com/shulieTech/Takin
开源社区:https://news.shulie.io

你可能感兴趣的:(技术方案,java,数据库,运维)