关于测试:持续测试新范式拨压测一体化

44次阅读

共计 4072 个字符,预计需要花费 11 分钟才能阅读完成。

近日,在 TiD2023 品质竞争力大会上,来自阿里云云原生可观测团队的吴垚进行了《继续测试新范式:拨压测一体化》主题分享,本次分享蕴含三局部:

  • 业务连续性对稳定性平台的需要
  • 阿里稳定性平台的演进及趋势剖析
  • 拨压测一体化的概念及最佳实际

01 如何保障业务连续性

在正式开始明天的话题前,咱们先来聊一聊业务连续性。随着信息技术的疾速倒退和广泛应用,以互联网和金融业为代表的业务翻新和失常运行越来越依赖于信息系统的平安和稳固运行。如何保障信息系统所反对的要害业务性能在故障或劫难产生后能及时复原和继续运作,以缩小故障或劫难可能造成的损失,已成为技术建设和运行保护必须思考的重点课题。

不论是行业企业还是政府机构,对劫难复原和业务连续性建设始终都十分重视,出台多项标准和指定性意见,如金融行业的《信息安全技术信息系统劫难复原标准》(GB/T 20988 – 2007)和《银行业信息系统劫难复原治理标准》(JR/T0044-2008)等规范、标准。同时,业界有十分多对于业务连续性的模型领导企业落地连续性建设,其中最让人熟知的就是 6R 模型。6R 模型详细描述故障从产生到完结的残缺生命周期。纵览模型的整个周期,咱们能够看到,整个周期被划分三道防线从而去保障业务的连续性:事先防控、事中应答、预先重建。业务中断产生前,次要进行事先防控的工作,称为 Reduce(缩小)阶段,即危险缩小阶段。Reduce(缩小)阶段是组织团队进行日常风险管理、IT 运维治理、业务连续性治理等管理工作。

业务中断产生后,进行事中应答工作,并分为 Respond(应急响应)阶段和 Recover(复原)&Resume(重启)阶段。Respond(应急响应)阶段阶段进行人员招集、状况理解和通报、损失评估、故障排查等工作;Recover(复原)阶段次要执行复原预案,包含 IT 局部的和业务局部以及配套反对职能局部的预案。复原预案执行的启动是在发表故障或劫难后开始。复原预案执行结束后事件稳固,进入 Restore(重建)和 Return(返回)阶段,业务回到失常状态。

在一直总结和复盘稳定性建设的过程中,咱们发现在事先防控、事中应答阶段投入越多,全年故障产生总量也会相应升高。因而,咱们对稳定性建设进行继续投入的同时,明确两个外围需要,即两个防线加固:

第一道防线加固:模仿实在流量做压测,验证零碎容量;故障演练,验证零碎容灾容错能力。

第二道防线加固:感知中断点左移,及时发现业务故障;建设开关预案机制,疾速降级止损。

首先,是第一道防线的加固,即事先防控尽可能拦挡到更多的故障。一方面,在业务上线之前做到充沛的功能测试同时,对要害外围业务进行模仿实在流量的容量测试,也就是压力测试。另一方面,在整个零碎上线之前,对预生产环境或灰度环境进行故障演练。比如说对基础设施层、应用层别离注入故障,察看零碎自愈能力是否合乎预期。所以,第一道防线加固须要确保在零碎上线之前,可能把这个故障提前收敛掉。

其次,是第二道防线的加固,即缩短事中应答所破费的工夫。事中应答的工夫分为两个:感知工夫与 Recover(复原)工夫。针对感知工夫,这给监控和稳定性平台提出了新要求,即让感知点尽量左移,不要等到客户已感知到故障并反馈之后,才进行解决。做到可能提前被动感知到并在探测到故障之后进行疾速的止损。同时,在理论生产过程中,随着各种意想不到的故障越来越多,咱们就须要一套残缺的预案机制。这其实就是 SRE 体系的建设,通过一套残缺的应答机制来应答各种的故障。在阿里实际过程中,咱们设计了开关预案机制,将历史产生的各种故障都形象提炼到预案中。对故障解决的过程中,设计可能动静配置的性能降级开关。在大促时,如果有些业务的容量已达到水位阈值并会影响到稳定性时,能够间接通过动静的开关把对应性能进行降级,保障用户的整个应用体验平顺。

02 阿里保障业务连续性的最佳实际

接下来,咱们看一下阿里巴巴及阿里云建设稳定性体系的演进过程,以及如何掂量体系建设的收益。

整个稳定性平台的演进与技术架构的演进非亲非故,次要分为三个大的阶段。

首先,在淘宝刚刚开始时,技术架构次要还是单体利用。随着业务量的减少,PHP 单体利用被 Java 单体利用所取代。直到 08 年时,Java 单体利用也遇到了业务瓶颈,外面的业务逻辑非常复杂,开发人员十分多,迭代效率非常低。尔后,阿里巴巴开始尝试分布式的利用架构拆分并在阿里云呈现后,逐步将外围电商交易系统迁徙上云,以应答规模愈发宏大的业务。2018 年,阿里巴巴根本所有业务都跑在云上,并开始尝试容器化、Serverless 化等云原生化的摸索。

与此同时,随着技术架构的演进,阿里巴巴围绕故障容错、异地多活容灾、容量布局进行稳定性的建设。通过引入调用链路剖析平台、故障演练能力、压测体系等技术手段来晋升稳定性,并将 ChaosBlade 等我的项目进行了开源,并进入 CNCF Sandbox。

与此同时,在反对内外部施行拨压测的过程中,咱们发现测试角色的职责权限在 DevOps 环形图中向右移。越来越多测试团队不止负责上线前的功能测试、性能测试,也就是 Test 阶段。在性能上线后,还要通过拨测被动监控站点,线上业务可用性,也就是 Monitor 阶段。也是基于上述趋势与需要,云原生可观测团队提出拨压一体的概念,以帮忙运维与测试团队更好的进行稳定性建设,这对于团队的收益十分清晰:

  • 晋升业务稳定性:压测验证零碎吞吐量,保障容量稳定性,拨测实时监控线上业务可用性,比业务方提前发现问题,放大爆炸半径。
  • 组织提效:测试团队对立负责拨压测,梳理业务测试脚本工作不再须要测试、运维团队做 2 遍;运维团队专一资源监控,线上业务监控交给测试团队。
  • 工具提效:拨测压测共用一个平台,一套脚本语法,一组测试数据,晋升工程师幸福感。

具体到业务收益,如故障数的缩小、故障复原工夫缩短、进步无故障工夫和生效距离以及缩小了故障解决的人力投入等。

03 拨压测一体化是什么

业务流量往往有峰谷效应,高峰期的业务中断能够通过服务端利用监控和告警及时感知,但在业务流量低谷期,如何感知业务中断成为难题。如果参照业务高峰期监控指标配置告警阈值,流量低谷期就不会触发到告警,无奈感知到业务中断,如果告警阈值配置过低,在业务高峰期又会收到大量误告警。针对上述问题以及前文提到的右移,拨测、压测被有机的联合到一起。

(1)什么是拨测

拨测试一种零侵入、开箱即用、主动式服务的可用性和性能监控工具,它通过部署在寰球的监测点,模仿实在用户的业务行为,定时对站点发动测试,继续监测业务连续型和网络性能,并掂量用户体验。作为主动式监控服务,不受业务峰谷期的影响,全周期守护业务连续型。云拨测的外围能力和利用场景如图:

(2)什么是压测

压测是容量布局中不可短少的工具,置信大家也十分相熟了,依据验证的场景不同,压测又能够分为以下几种测试类型:

(3)拨压测一体化平台

能够看出,拨测和压测都是通过模仿实在用户的行为,来对系统的容量、可用性、性能做测试,从业务场景和零碎架构的角度来看,拨测平台和压测平台有高度的相似性。因而,咱们把拨测压测平台整合为拨压测一体化的平台,对立管控脚本、调度工作和流量。

压测前须要筹备业务脚本,其实拨测也是须要这么一套脚本的。当拨测和压测分为两个平台的时候,同一套业务流程,须要应用两个平台的语法,配置两遍。通过拨压测一体化脚本,其实能够把这个配置脚本的工作减半,一套脚本,既能发动拨测,也能发动压测。

04 拨压测一体最佳实际

阿里云网站测速平台反对对 PING、TCP、DNS、网站测速、HTTP 接口、文件下载等场景进行拨测,并反对对 HTTP 接口进行压测。您还能够通过阿里云网站测速平台发动比照拨测,理解两个网站之间的性能差别。上面介绍如何通过阿里云网站测速平台,验证站点可用性和接口性能。

(1)发动网站测速工作

此处以模仿电信、挪动和联通运营商在全国 34 个省会城市对阿里云官网拜访为例,演示如何应用阿里云网站测速平台对网站进行测速。

  1. 登录阿里云网站测速平台 [1]。
  2. 抉择拨测类型。此处抉择网站测速。
  3. 单击拨测类型下方的下拉框,抉择监测点。此处抉择运营商为电信、挪动和联通,抉择地区为全国 34 个省会城市。
  4. 在下拉框右侧输出须要进行拨测的 Web 利用地址。例如:http://www.aliyun.com。
  5. 单击立刻发动。
  1. 在拨测后果区域查看网站的可用性、首包用时、首屏用时、齐全加载用时等指标,以及各监测点具体数据列表。
  1. 单击具体数据列表对应监测点右侧的详情,能够查看对应监测点的具体性能指标和页面元素。

性能指标

页面元素

(2)发动比照拨测

您还能够通过阿里云网站测速平台发动比照拨测,理解两个网站之间的性能差别。

此处以模仿电信、挪动和联通运营商在全国 34 个省会城市对阿里云和其余云厂商拜访为例,演示如何应用阿里云网站测速平台比照两个网站的性能。

  1. 登录阿里云网站测速平台。
  2. 抉择拨测类型。此处抉择网站测速。
  3. 单击拨测类型下方的下拉框,抉择监测点。此处抉择运营商为电信、挪动和联通,抉择地区为全国 34 个省会城市。
  4. 单击比照拨测,而后输出须要进行比照拨测的 Web 利用地址。例如:http://www.aliyun.com 和 http://www.XXcloud.com。
  5. 单击立刻发动。
  6. 在拨测后果区域查看两个网站的可用性、首包用时、首屏用时、齐全加载用时等指标,以及各监测点具体数据列表。
  1. 单击具体数据列表对应监测点右侧的详情,能够查看对应监测点的具体性能指标和页面元素。

(3)发动性能测试

  1. 登录阿里云网站测速平台。
  2. 抉择性能压测。
  3. 输出须要进行压测的 Web 利用地址。例如:http://www.example.com/api/test

留神:请确保您对此 url 有压测权限,对于您没有权限的 URL 进行压测导致的所有法律结果将由您自行承当。

  1. 查看压测中接口的性能指标

相干链接:

[1] 阿里云网站测速平台

https://cesu.pts.aliyun.com/

作者:拂衣

点击立刻收费试用云产品 开启云上实际之旅!

原文链接

本文为阿里云原创内容,未经容许不得转载。

正文完
 0