阿里云 VPC 内网性能测试最佳实践

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 本文介绍了在阿里云 VPC 内网执行性能测试的方法。相较于传统的公网性能测试,VPC 内网性能测试完全在客户 VPC 环境进行,无需暴露服务到公网,安全性更高,灵活性更强。

作者:风起

背景


随着互联网的快速发展,互联网衍生出来的多种工具、服务早已融入我们工作、生活的每个角落,因此互联网服务的稳定性也愈加重要,如网络挂号问诊、网上政务办理、网络消费娱乐等更是与大家的生活息息相关。而性能测试作为验证服务稳定性的重要手段也日益受到互联网服务提供商的重视。


目前业界主流的性能测试工具均是从公共网络发出性能测试请求,模拟公网流量,这无疑能够尽可能模拟用户使用互联网服务时的真实流量,然而这种方式也存在一些问题,如:


  • 带来额外的性能测试费用,公网流量从客户端到服务端的过程中,经由多个运营商网络,会产生额外的流量带宽费用,对于大规模性能测试,流量费用更是会远超性能测试过程中的机器成本


  • 无法测试对安全性要求较高的服务,如金融、保险、数据存储等业务若开放公网访问,可能会带来数据泄露等安全问题,因此无法从公网发起性能测试


  • 带来部署、改造成本的上升,当服务仍然在开发过程中时,服务在开发过程中可能需要频繁地性能测试并根据性能测试结果来调整服务,该情况不适合开放公网访问,因此无法从公网发起性能测试


针对以上问题,本文介绍了在阿里云 VPC 内网执行性能测试的方法。相较于传统的公网性能测试,VPC 内网性能测试完全在客户 VPC 环境进行,无需暴露服务到公网,安全性更高,且用户可通过 VPC 自定义路由表,打通本地数据中心形成混合云架构,具备更强的灵活性,此外更是可以在微服务开发阶段,针对 VPC 内网的每个微服务执行性能测试,可以大幅提升性能测试的效率,节省性能测试成本。


什么是阿里云 VPC 专有网络


首先,介绍下什么是阿里云 VPC 专有网络(也称 VPC 内网)。VPC 专有网络是您专有的云上私有网络。您可以完全掌控自己的专有网络,例如选择 IP 地址范围、配置路由表和网关等,您可以在自己定义的专有网络中使用阿里云资源,如云服务器、云数据库 RDS 和负载均衡等。


如下图所示,每个专有网络都由至少一个私网网段、一个路由器和至少一个交换机组成。


1.png


功能对比及特点


相较于经典网络在不同客户间是物理联通的,专有网络 VPC 具有安全可靠、灵活可控、灵活可用以及较强的可扩展性。


  • 每个 VPC 网络对应一个虚拟化网络,VPC 间互相隔离
  • 可以通过安全组规则、访问控制白名单等方式灵活地控制访问 VPC 内云资源的出入流量
  • 可以在 VPC 内创建不同子网,同时也可以和本地数据中心或其他 VPC 相连,扩展网络架构


总的来说,VPC 内网是阿里云的基础网络设施,为客户部署在云上的服务提供了安全、联通的优势。


公网与 VPC 内网性能测试的区别


在了解 VPC 内网的基本特点后,介绍下公网性能测试与 VPC 内网性能测试的区别,从被测试服务的视角来看,两者的区别主要在于流量源头不同。


  • 公网性能测试:流量源自公共网络,网络路由的过程中可能涉及到多个运营商网络设备
  • VPC 内网性能测试:流量源自 VPC 内网,网络路由的过程中仅涉及 VPC 内网交换机,对外部网络不可见


2.png

因为两者的流量源头不同,因此两者的流量路由不同。公网性能测试流量会经由公共网络,而 VPC 内网性能测试流量只会在 VPC 内网流转。


VPC 内网性能测试适用场景


了解公网性能测试与 VPC 内网性能测试的区别后,什么情况下我们需要使用 VPC 内网性能测试呢?主要有以下几种场合:


  1. 服务对安全性比较敏感,无法开放到公共网络,如金融、保险等对安全性要求较高的业务


虽然在性能测试的过程中我们可以通过对施压机 IP 加白的方式隔绝其他公网访问,但 VPC 内网彻底隔绝公网方案,无疑提供了更强的安全性。


  1. 新服务研发过程中性能测试,需要简化网络环境对性能测试结果的影响,单独评估服务的性能。


当前微服务架构大行其道,在各个微服务研发阶段,可能都涉及到针对服务负载情况的性能测试,从而评估出每个服务的负载上限,这就需要能够快速在客户研发环境发起性能测试。而传统的公网性能测试需要客户将待测试服务开放到公网,带来安全隐患的同时,也提高了性能测试的执行成本。VPC 内网则能够完美解决该诉求,在开发阶段可快速发起针对微服务的性能测试。


  1. 评估阿里云 VPC 内网服务性能,如 RDS、MQ 等阿里云基础产品


RDS、MQ 等阿里云基础产品,作为客户服务的基础组件,往往也不会开通公网访问,因此针对这些组件的性能测试也必须在 VPC 内网进行。


  1. 节省性能测试带来的成本,相较于公网性能测试会产生大量的公网带宽费用,VPC 内网性能测试完全在 VPC 内网进行,服务不会产生额外的网络带宽费用。


公网发起性能测试时,对于被测试服务来说,会产生大量的公网带宽流程,从而带来大量的公网带宽费用,而 VPC 内网性能测试完全在客户 VPC 内网进行,因此相较于公网性能测试,测试成本大幅减小。


如何发起 VPC 内网性能测试


既然 VPC 内网性能测试有诸多好处,如何发起 VPC 内网性能测试呢?在这里推荐了解下阿里云性能测试服务 PTS[1]


用户可在开通 PTS 服务后,前往购买页面购买内网压测资源包[2],最低仅需 29 元,即可购买 10 万 VUM 的资源包(支持 1 万并发测试 10 分钟),购买后进入 PTS 控制台,即可查看对应的资源包。

3.png


接下来,可根据压测需求,选择创建对应的性能测试场景,这里以 HTTP 协议为例,创建 PTS 压测场景,客户第一次进入场景编辑页,会提醒客户授予 VPC 访问权限,从而使 PTS 产品可以访问客户的 VPC 信息。在授权同意后,编辑场景基本信息,需要注意的是压测地址既可以填写公网域名,也可以填写内网 IP,但都需要保证对应的 IP 地址在交换机网段内,才可以通过交换机访问 VPC 内部服务。例如这里压测 ALB:image.gif

4.png


之后在压测来源中选择 阿里云 VPC 内网,需要注意的是这里的 region、VPC、安全组以及交换机信息必须与被测试服务保持一致:


5.png


之后发起调试以及启动测试即可,从调试结果中可以看到 VPC 内网的性能测试顺利进行。

6.png


VPC 内网性能测试的实现原理


为了方便理解 VPC 内网性能测试的使用,这里介绍下 VPC 内网性能测试的原理。在客户执行 VPC 内网性能测试前,需要满足以下条件:


  1. 客户开通 VPC 服务,并创建相应的 VPC 网络、交换机与安全组
  2. VPC 网络内启动服务端,并配置安全组规则确保服务在 VPC 网络内可访问

  3. 开通 PTS 服务并购买资源包,进入 PTS 控制台授权 PTS 服务访问客户的 VPC 服务权限,从而使被授权服务可以访问客户的 VPC、交换机、安全组等服务


在场景构建完成,发起 VPC 内网性能测试时,PTS 侧主要会执行以下几个步骤:


  1. 获取客户填写的 VPC 相关信息,在客户侧VPC内创建免费 ENI 弹性网卡[3]
  2. 将客户侧创建的弹性网卡挂载到 PTS 施压机上
  3. 在施压机上添加到客户交换机网段的路由,使施压机能够访问客户侧 VPC 内服务
  4. 配置路由规则,禁止访问公共网络,从而保障流量只从 VPC 内网发出
  5. 压测开始,按照客户配置发送请求
  6. 停止压测后,将弹性网卡从施压机上卸载并删除


7.png


多协议下的 VPC 内网性能测试


除了支持 HTTP 协议的 VPC 内网性能测试外,PTS 还支持其他协议以及对阿里云基础产品的性能测试,如 MQTT、Reids、MQ 等,欢迎进入 PTS 控制台体验对应功能。


8.png


VPC 内网性能测试最佳实践


在对服务执行性能测试时,从被测试链路的范围上来看可以简单分为单链路性能测试与全链路性能测试。


  • 单链路性能测试:性能测试过程中仅覆盖一部分链路,测试范围相对精准,验证某条链路的稳定性;测试过程中参与人数较少,执行成本较低,可多次执行测试,充分验证。


  • 全链路性能测试:性能测试过程中覆盖服务可能涉及到的所有链路,测试范围足够大,涉及到的上下游较多,从而保障能够从全局找到性能瓶颈点,验证全局的稳定性;测试过程中参与人数较多,是一个复杂的系统工程,执行成本较高,需要严格控制测试次数。


全链路性能测试成本较高,因此一般需要各个单链路多次性能测试通过后再执行全链路性能测试。由于单链路性能测试频率较高,建议在单链路性能测试过程中尽可能使用成本较低的 VPC 内网性能测试,节省性能测试成本;在所有单链路性能测试通过后,再配置服务,开放公网访问,通过公网下的全链路性能测试来验收所有服务链路。


VPC 内网压测-采购季价格特惠


现在购买内网压测资源包,相较于公网,更是可以大幅节省购买成本,成本只需要公网压测的 1/10 。


而且现在正值采购季,所有规格都打 95 折哦,还可以叠加官网优惠,心动不如行动,赶紧采购吧!


9.png


相关链接


[1] 阿里云性能测试服务 PTS

https://www.aliyun.com/product/pts


[2] 购买内网压测资源包

https://common-buy.aliyun.com/?commodityCode=pts_bag_dp_cn


[3] ENI 弹性网卡

https://help.aliyun.com/document_detail/58496.html


点击此处,购买内网压测资源包。

相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
网络协议 网络安全 开发工具
阿里云DNS常见问题之手机内网打不开如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
3月前
|
存储 弹性计算 运维
阿里云服务器ECS经济型e实例详细介绍_性能测试和租用价格
阿里云服务器ECS经济型e实例详细介绍_性能测试和租用价格,阿里云服务器ECS推出经济型e系列,经济型e实例是阿里云面向个人开发者、学生、小微企业,在中小型网站建设、开发测试、轻量级应用等场景推出的全新入门级云服务器,CPU采用Intel Xeon Platinum架构处理器,支持1:1、1:2、1:4多种处理器内存配比,e系列性价比优选
|
13天前
|
DataWorks NoSQL 关系型数据库
DataWorks操作报错合集之在使用 DataWorks 进行 MongoDB 同步时遇到了连通性测试失败,实例配置和 MongoDB 白名单配置均正确,且同 VPC 下 MySQL 可以成功连接并同步,但 MongoDB 却无法完成同样的操作如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
30 1
|
13天前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
26 1
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
14天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
988 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
1月前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。
|
1月前
|
弹性计算 监控 Cloud Native
云原生最佳实践系列 4:基于 MSE 和 SAE 的微服务部署与压测
通过MSE(微服务引擎)、SAE(Serverless应用引擎)、ARMS(应用监控服务)、PTS(性能测试服务)等产品,实现微服务的无服务化部署、监控和弹性伸缩。
|
2月前
|
存储 域名解析 应用服务中间件
阿里云OSS对象存储,实现内网访问,免流量费用
阿里云OSS对象存储,实现内网访问,免流量费用
457 2
|
2月前
|
弹性计算 缓存 测试技术
阿里云2核4g服务器(费用价格/性能测试/支持人数)
阿里云2核4g服务器能支持多少人访问?2核4G服务器并发数性能测试,阿小云账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素
|
2月前
|
弹性计算 缓存 测试技术
2核4g服务器能支持多少人访问?阿里云2核4G服务器并发数测试
2核4g服务器能支持多少人访问?阿里云2核4G服务器并发数测试,2核4G服务器并发数性能测试,阿小云账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素

相关产品

  • 性能测试