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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
可观测监控 Prometheus 版,每月50GB免费额度
简介: 本文介绍了在阿里云 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
相关文章
|
4天前
|
敏捷开发 Kubernetes 测试技术
阿里云云效产品使用问题之 拉取阿里云acr仓库的镜像时,配置内网地址还是公网地址
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4天前
|
安全 API 持续交付
阿里云云效产品使用问题之如何从流水线访问内网平台的HTTP接口
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
弹性计算 监控 开发工具
【阿里云弹性计算】阿里云ECS的网络优化实践:VPC配置与网络性能提升
【5月更文挑战第29天】阿里云ECS通过虚拟私有云(VPC)提供高性能、安全的网络环境。VPC允许用户自定义IP地址、路由规则和安全组。配置包括:创建VPC和交换机,设定安全组,然后创建ECS实例并绑定。优化网络性能涉及规划网络拓扑、优化路由、启用网络加速功能(如ENI和EIP)及监控网络性能。示例代码展示了使用Python SDK创建VPC和交换机的过程。
282 3
|
12天前
|
人工智能 分布式计算 DataWorks
首批!阿里云 MaxCompute 完成中国信通院数据智能平台专项测试
2024年5月31日,在中国信通院组织的首批数据智能平台专项测试中,阿里云数据智能平台解决方案(MaxCompute、DataWorks、PAI)顺利完成测试。
80 5
首批!阿里云 MaxCompute 完成中国信通院数据智能平台专项测试
|
1天前
|
Java 测试技术 数据库
Java单元测试与集成测试的最佳实践
Java单元测试与集成测试的最佳实践
|
16天前
|
前端开发 JavaScript 测试技术
Jest与React Testing Library:前端测试的最佳实践
Jest和React Testing Library是React应用测试的核心工具。安装相关依赖后,在`jest.config.js`中配置Jest。测试时,编写描述性测试用例,使用`render`、`fireEvent`和`screen`来检查组件行为。Jest提供模拟功能,如模拟API调用。测试组件交互性时,模拟用户行为并验证状态变化。确保覆盖边缘情况,使用代码覆盖率报告评估测试完整性,并将测试集成到CI流程中。
18 1
|
21天前
|
消息中间件 Serverless PyTorch
Serverless 应用引擎产品使用合集之FC内网访问VPC内的资源不通是什么导致的
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
3天前
|
关系型数据库 MySQL 测试技术
《阿里云产品四月刊》—瑶池数据库微课堂|RDS MySQL 经济版 vs 自建 MySQL 性能压测与性价比分析
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
|
4天前
|
敏捷开发 测试技术 API
阿里云云效产品使用问题之API中包含有获取测试计划的接口吗
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
测试技术 持续交付 开发者
深入探索软件测试:策略、工具与最佳实践
【5月更文挑战第25天】 在软件开发的广阔天地中,软件测试是确保产品质量和用户满意度的关键步骤。本文将深入探讨软件测试的核心策略,评估各种测试工具的优势与局限,并分享行业最佳实践。我们的目标是为读者提供一个结构化的视角,以理解如何通过有效的测试流程提升软件性能和稳定性。

相关产品

  • 性能测试