后互联网时代Web应用压力测试最佳方案

投稿人/来源: | 2017-04-06 15:33 |

随着后互联网时代的到来,包括衣食住行在内的一切生活消费都将数字化,用户体验成为决定服务交付质量的关键指标,用户体验不佳不但会严重影响企业营收,甚至成了损害企业品牌的罪魁祸首。然而部署在防火墙内部的传统压力测试产品,无法满足混合环境下的复杂应用全链路性能测试需求,更不能从真实用户体验入手对真实生产环境进行“全覆盖”式的深度性能追踪。因此,无论是互联网企业还是进行数字化转型的传统企业,都需要更加真实、全面、深度的压力测试方法来满足互联网服务敏捷开发、持续交付的需求。

云计算时代应用交付模式的变革

随着移动互联网、虚拟化和云计算技术的不断发展,应用架构也变得更加离散和复杂,一个应用的成功交付不仅需要自身系统的稳健,同时也更加依赖网络、第三方服务的质量,而这些外部的“不确定”因素让架构变得更加“不可控”,要在这样一种“不可控”的复杂环境中评价高并发条件下的应用性能,对应用和业务进行容量规划,很显然会比以往更加困难。

云计算环境下的分布式应用交付架构

当前基于混合云环境的应用交付架构具有如下特点:

1)用户终端变得更加多样:

从传统的PC到移动设备与智能电视终端,从原有Web页面到H5、App与微信小程序,在跨屏时代里用户的选择更多,但是影响用户体验的因素也变得更多、更复杂;

2)应用的架构变得更加复杂,关联性强:

一个成功的服务交付前所未有的依赖于外部的网络、CDN、第三方服务商,每个环节出现问题都会对用户体验产生巨大的影响;

3)企业的基础设施融合:

企业的数据中心也在向云端迁移,其基础设施正不断融合,特点是通过计算、存储和网络的硬件基础设施系统进行集成,实现基础硬件设施和虚拟化的整合,以及统一管理、统一维护的能力。

考虑到云计算的应用交付模式的复杂性,从性能测试的角度出发,要求数字化企业必须关注每一个交付链条上的影响因素,从而才能够更全面准确地评估性能问题。

压力测试的三个不同发展阶段

脱胎于软件测试的压力测试,目前主要分为以下三个发展阶段:

压测1.0:防火墙内部压力测试

这种是沿用了20多年的传统测试方法,其基本的实现原理是在防火墙内部产生压力来进行压测,即压测的环境(包括施压机以及被压测系统都在防火墙以内)。如果测试的目的仅是对内网的系统硬件资源以及服务、数据库在并发条件下的性能表现,这种模式依旧是一个合理的选择。

压测2.0:基于云计算的压力测试

基于云端压测模式将压测机迁移到云端,通过云资源在防火墙外部生成规模并发,一般来讲有三种方式进行“云端施压机”部署:

1)利用其它机房(自建、IDC数据中心)发起压力;

2)利用云服务商(如阿里云、AWS等)云主机发起压力;

3)利用在外部合作伙伴或者分支机构的计算机作为施压节点;

因为使用了基于防火墙外的云端资源使用方式,压测2.0相对上一代压测方法已经有了很大的进步,这种模式降低了压测的成本与准备周期,提高了效率。但严格意义讲,压测2.0仅仅是压测模式的“云化”转变。

压测3.0:面向用户体验的外部压测

由于前两个阶段并没有从外部的真实用户和真实应用交付架构的全局视角考虑问题,所以仍无法满足分布式应用敏捷交付的需求。于是,压测3.0因势而生,这种新一代应用性能压测解决方案从终端用户行为与体验的视角来审视应用性能问题,通过分布式压测点在用户实际的所在地域发起压力,让压力产生的更加真实;面向应用交付链的全技术栈的性能监控与诊断,能够从用户到网络、应用、第三方服务及基础设施进行“全覆盖”式的深度追踪,发现影响性能的问题瓶颈。

压测3.0使用了戴明环PDCA方法将整个压测与优化过程化划分为:Plan(计划)、Do(执行)、Check(检查)和Action(纠正),遵照执行顺序对应用的交付质量进行管理。

云智慧压测宝及压测服务

压测宝是云智慧基于压测3.0方法体系推出的面向真实用户行为与地域分布的全链路云端压力测试平台,通过云端服务器产生真实分布式用户访问压力,模拟来自各地域用户接入后台所带来的真实流量,从而跳出了“温室环境”的理想状态,无限接近生产环境所面临的各种复杂因素,测量真实的用户体验。通过集成云智慧应用性能管理和监控产品,帮助实现基于真实用户行为的压测方案定制、压测过程中实时定位各环节应用资源及代码瓶颈,现场纠错,分析应用性能肇因。

依托压测宝以及完善的产品线,云智慧为用户提供了一站式压测服务,面向云计算时代的复杂应用提供专业性能压测服务,帮助企业客观评估应用性能容量,发现全链路性能瓶颈,对应用架构的调优及架构容量规划提供专业咨询服务,满足企业灵活多变的业务需求。

快速体验新一代压测3.0产品:http://cloudwise.mikecrm.com/f.php?t=4eA0Tq