文档章节

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

cloudwiseAPM
 cloudwiseAPM
发布于 2017/04/13 14:01
字数 1708
阅读 14
收藏 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

云智慧压测宝及压测服务

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

 

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

快速体验新一代压测3.0产品:http://www.yacebao.com/trial.shtml

© 著作权归作者所有

共有 人打赏支持
cloudwiseAPM
粉丝 27
博文 135
码字总数 278629
作品 0
海淀
私信 提问
app测试员究竟测些什么呢?

随着移动互联网的不断发展,移动端测试员也越来越紧缺,那么app测试员究竟要做哪些测试呢? 1、功能测试:很多人以为就是点点点,其实要把功能测试做好也是不容易的。功能测试最开始最基础的...

白一客
2017/05/15
106
0
一步步实施 DevOps (二)

Netkiller Management 手札 Mr. Neo Chan, 陈景峯(BG7NYT) 中国广东省深圳市望海路半岛城邦三期 518067 +86 13113668890 Copyright © 2010-2018 netkiller 版权声明 转载请与作者联系,转载...

netkiller-
2018/12/27
0
0
Rancher将亮相中国软件技术大会,和你聊聊传统企业的互联网化转型

当今处于智能时代,软件技术在不断迭代,软件的开发模式也在不断创新,软件在正为企业和个人创造新的价值。自2003年创办以来,专注于促进企业级软件技术创新的中国软件技术大会将于12月7日—...

RancherLabs
2018/11/30
0
0
迈向企业级移动之路

对于企业而言,移动互联网是一个机遇与挑战并存的新的发展方向。本文不仅指出了新环境下,企业级产品所面对的挑战,更提供了应对之道。 新的时代 将时钟回拨到20年前,那时PC开始大量被普通消...

首席安全砖家
2013/01/10
1K
2
重磅干货不容错过!2017云栖大会汇总资料,速来领取!

云栖大会由阿里巴巴集团主办已经成为全球云计算TOP级峰会汇聚DT时代最强大脑描绘云计算发展趋势和蓝图展现云计算、大数据、人工智能蓬勃发展的技术生态全景。2017云栖大会到此圆满结束聚焦技...

yunqi_share
2017/12/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

第11章 多线程

程序、进程、线程 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 **进程(process)**是程序的一次执行过程或是正在运行的一个程序。动...

流小文
21分钟前
2
0
SpringBoot引入第三方jar包或本地jar包的处理方式

在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 - 第一种是将本地jar包安装在本地maven库 - 第二种是将本地j...

独钓渔
今天
2
0
五、MyBatis缓存

一、MyBatis缓存介绍 缓存的使用可以明显的加快访问数据速度,提升程序处理性能,生活和工作中,使用缓存的地方很多。在开发过程中,从前端-->后端-->数据库等都涉及到缓存。MyBatis作为数据...

yangjianzhou
今天
2
0
最近研究如何加速UI界面开发,有点感觉了

最近在开发JFinal学院的JBolt开发平台,后端没啥说的,做各种极简使用的封装,开发者上手直接使用。 JBolt开发平台包含常用的用户、角色、权限、字典、全局配置、缓存、增删改查完整模块、电...

山东-小木
今天
3
0
《月亮与六便士》的读后感作文3000字

《月亮与六便士》的读后感作文3000字: 看完英国作家威廉.萨默塞特.毛姆所著《月亮与六便士》(李继宏译),第一疑问就是全书即没提到“月亮”,也没提到“六便士”。那这书名又与内容有什么...

原创小博客
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部