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

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 本文介绍了在阿里云 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版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
15天前
|
设计模式 前端开发 JavaScript
自动化测试框架设计原则与最佳实践####
本文深入探讨了构建高效、可维护的自动化测试框架的核心原则与策略,旨在为软件测试工程师提供一套系统性的方法指南。通过分析常见误区,结合行业案例,阐述了如何根据项目特性定制自动化策略,优化测试流程,提升测试覆盖率与执行效率。 ####
41 6
|
16天前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
|
20天前
|
数据采集 自然语言处理 数据库
深入体验阿里云通义灵码:测试与实例展示
阿里云通义灵码是一款强大的代码生成工具,支持自然语言描述需求,快速生成高质量代码。它在测试、代码质量和用户体验方面表现出色,能够高效地生成 Python 和 Java 等语言的代码,助力开发者提升开发效率和代码质量。无论是新手还是资深开发者,都能从中受益匪浅。
深入体验阿里云通义灵码:测试与实例展示
|
4月前
|
弹性计算 测试技术 持续交付
阿里云云效产品使用合集之如何进行自动化测试
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
27天前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
48 2
|
28天前
|
前端开发 JavaScript 数据可视化
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第26天】前端自动化测试在现代软件开发中至关重要,Jest和Cypress分别是单元测试和端到端测试的流行工具。本文通过解答一系列问题,介绍Jest与Cypress的实战应用与最佳实践,帮助开发者提高测试效率和代码质量。
32 2
|
2月前
|
安全 Java 测试技术
最佳实践:通义灵码生成单元测试,让单测更简单
本文首先讲述了什么是单元测试、单元测试的价值、一个好的单元测试所具备的原则,进而引入如何去编写一个好的单元测试,通义灵码是如何快速生成单元测试的。
|
22天前
|
测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
【10月更文挑战第31天】 在当今快速迭代的软件开发环境中,自动化测试成为确保软件质量和加速产品上市的关键。本文探讨了自动化测试的重要性、实施策略以及一些最佳实践。通过分析不同类型的自动化测试工具和框架,本文旨在为软件开发团队提供一套实用的指导方案,以提高测试效率和质量。
|
2月前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
|
2月前
|
存储 监控 网络安全
内网渗透测试基础——敏感数据的防护
内网渗透测试基础——敏感数据的防护

相关产品

  • 性能测试