阿里仿真灰度变更测试简介

简介: 基础网络产品的生命周期大致包含研发、架构、交付、优化和运营等几个环节,每一个环节的质量保证都涉及重要的一环,即预期验证测试。本文将重点讲解一下如何在仿真测试平台进行灰度变更测试,从而保证变更的稳定性。

image.png

作者 | 聪敬、苏玮、玖玄、林涛
来源 | 阿里技术公众号

一 前言

基础网络产品的生命周期大致包含研发、架构、交付、优化和运营等几个环节,每一个环节的质量保证都涉及重要的一环,即预期验证测试。比如研发的功能测试,架构的POC测试/AVL测试,交付的配置验收,优化的灰度变更和方案测试,运营的GNOC模版测试/演练/LANDING测试等等。如何安全、高效和低成本地保证这些环节能够稳定持续运行呢?自动化测试平台Full-Automation-Simple-Touch(FAST)应运而生,为网络全生命周期测试提供了平台,提升网络的稳定性。

image.png

本文将重点讲解一下如何在仿真测试平台进行灰度变更测试,从而保证变更的稳定性。

二 技术引领稳定变更的必要性

image.png

众所周知,网络变更的数量在逐年递增,从2016到2020年,变更数量增加了5倍,同时网络规模复杂度也在提升,如何在人力资源没有增加的前提下保证变更的稳定性,是一件非常具有挑战而且非常重要的事情。设想如果能在真正变更前把变更方案在测试环境中提前灰度验证,保证提前发现并解决潜在的问题,将大幅度提高变更稳定性。

三 变更稳定性流程剖析

灰度变更测试是为变更流程中的各个环节提供提前验证的能力。比如说验证方案中的CLI是否能正确下发到设备,验证配置下发到设备后的行为是否符合预期,验证设备之间的状态交互是否正常。还可以模拟异常条件,提供紧急应对措施的验证。提前发现问题并且验证解决方案,是灰度变更测试的核心价值之一(保证稳定性)。

另外一个核心价值就是成本效率的提升,使用了厂商提供的镜像,通过仿真技术可以快速搭建一个灰度测试环境, 一般是在分钟/小时级别,具体要看规模。而搭建一个相同的物理环境需要几个星期,甚至是几个月,因为涉及到采购,交付上架,连线等等,另外仿真设备本身的成本也远低于物理设备的成本。

四 阿里巴巴AIS网络仿真系统

image.png

阿里巴巴AIS网络仿真系统是什么样的呢?

在2018年前是没有网络仿真环境的,2018后我们开始着手搭建了核心网的仿真灰度环境,根据现网设备配置/现网拓扑/现网路由,加上厂商提供的设备镜像,通过仿真技术,搭建了一个协议1:1低成本高保真的仿真环境,并且完成了和线上自动化运维系统的对接,实现了灰度变更测试从0到1的飞跃。

上图的左半边是一个典型的阿里生产网络,2个IDC数据中心通过骨干网链接起来,操作人员通过跳板机链接到物理目标设备,然后进行一系列操作。上图的右半边是我们仿真出来的一个仿真网络。从操作人员的角度来看,也是通过跳板机,经过仿真和真实之间的TCP/IP代理服务,就可以轻松地进入虚拟世界,对仿真设备进行相应的操作。除了基本的操作能力外,在仿真系统中也加入仿真特有的功能,比如预期判断/故障演练/健康检查/安全防护等等。

同时由于是仿真环境,我们可以轻松地制造出多个仿真环境,用于不同的场景。

五 仿真系统构建的挑战示例

构建仿真系统挑战很多,这里列举了几个比较重要的挑战:

大规模光纤仿真

我们模拟了整个近千台设备的互联,怎么保证这些链接的稳定可靠至关重要,因为链接不可靠,容易导致丢包/延迟等,严重影响环境质量。

镜像和物理设备端口不一致

仿真镜像自身有一些无法改动的设置,包括端口名字和数目,无法直接和现实网络做到严格1:1。

自身可信度保障

建立仿真环境后,面临的很大的挑战就是,怎么验证和线上的一致性。

路由注入

仿真环境镜像/连线/配置完成后,还需要引入实际业务数据,比较关注的就是自动化的路由注入。

厂商镜像不足

IDC内部分厂商的镜像还没有镜像,我们采用了混部多协议逻辑验证 (HPLV hybrid protocols logic verification)来扩展IDC设备。

六 业界产品比较

相对于其他公司,其实阿里的网络更复杂,主要体现架构更多,设备的厂商更多,这些都给网络带来了更大的复杂度,所以可以想象,要在阿里的网络里面完成灰度测试环境的搭建难度要远比想象中的大。

七 流程规范化的挑战

image.png

有了仿真环境后,还需要有可靠的流程来保障灰度变更,为此我们在变更流程中引入了方案测试和灰度测试两个环节。

方案测试是在方案设计之后,评审上线之前,用于判断测试方案的各个环节是否都有被测试覆盖、不同维度测试是否完整。理论上只有经过方案测试达标后的方案才能评审上线,为方案的稳定性设立的第一道关卡。

方案测试的特点如下:

  • 根据维度自动生成用例(这里的维度指的是一类属性的概念,比如厂商,角色等等)
  • 批量并发执行,提高执行效率。
  • 执行完后有统计数据支持维度级别的精确上线控制。

变更测试的第二个关卡是在变更工单审核之前做了流程卡点,对于核心网变更,如果没有经过灰度测试是无法提交工单审核的,从流程中保证了“无灰度不变更”。

八 落地场景与结果

  • 自动化系统能力的保障
  • 月平均拦截40次变更风险

九 未来展望

  • 扩大支持覆盖率
  • 平台自助化/智能化
  • 商业化

免费领取电子书

《Dubbo分布式服务治理实战》

Dubbo是阿里巴巴开源的高性能分布式RPC服务治理框架,提供了六大核心能力:面向接口代理的高性能RPC调用、智能容错和负载均衡、服务自动注册和发现、高度可扩展能力、运行期流量调度、可视化的服务治理与运维。本书将带同学们了解并掌握Dubbo3.0新特性及相关实践实战。

点击这里,立即下载吧~

相关文章
|
6月前
|
监控 Java 测试技术
精准化测试原理简介
该文探讨了软件测试中的精准化测试问题,通过找不同游戏引出测试覆盖的挑战。文章指出,全面的测试覆盖并不现实,自动化测试虽有帮助但并非银弹,且面临成本和覆盖率局限。接着,文章提出需要“最强大脑”来快速识别代码差异、影响范围及测试覆盖率。为此,它介绍了通过语法分析器和字节码来定位代码差异,利用ASM进行调用链分析,并借助Jacoco进行覆盖率统计。此外,文章强调了增量覆盖率统计和调用链在接口测试中的重要性,同时提醒高覆盖率不代表高质量,测试策略应结合业务逻辑和代码审查。
|
6月前
|
缓存 运维 容灾
入行5年,谈谈我在阿里做测试开发的经验
作者在阿里一直从事测试开发相关工作,这几年学习很多、收获很多,作者希望给还在该方向摸爬滚打的同学一些启发和方向。
|
6月前
|
算法
m基于OFDM+QPSK和LDPC编译码以及MMSE信道估计的无线图像传输matlab仿真,输出误码率,并用图片进行测试
MATLAB2022a仿真实现了无线图像传输的算法,包括OFDM、QPSK调制、LDPC编码和MMSE信道估计。OFDM抗频率选择性衰落,QPSK用相位表示二进制,LDPC码用于前向纠错,MMSE估计信道响应。算法流程涉及编码、调制、信道估计、均衡、解码和图像重建。MATLAB代码展示了从串行数据到OFDM信号的生成,经过信道模型、噪声添加,再到接收端的信道估计和解码过程,最终计算误码率。
72 1
|
1月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
42 1
|
3月前
|
缓存 运维 容灾
入行5年,谈谈我在阿里做测试开发的经验
作者在阿里一直从事测试开发相关工作,这几年学习很多、收获很多,作者希望给还在该方向摸爬滚打的同学一些启发和方向。
|
4月前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
64 6
|
4月前
|
算法
基于Dijkstra算法的最优行驶路线搜索matlab仿真,以实际城市复杂路线为例进行测试
使用MATLAB2022a实现的Dijkstra算法在城市地图上搜索最优行驶路线的仿真。用户通过鼠标点击设定起点和终点,算法规划路径并显示长度。测试显示,尽管在某些复杂情况下计算路径可能与实际有偏差,但多数场景下Dijkstra算法能找到接近最短路径。核心代码包括图的显示、用户交互及Dijkstra算法实现。算法基于图论,不断更新未访问节点的最短路径。测试结果证明其在简单路线及多数复杂城市路况下表现良好,但在交通拥堵等特殊情况下需结合其他数据提升准确性。
|
5月前
|
Linux 测试技术 开发工具
CentOS Linux 8使用阿里源(安装jdk11、git测试)
CentOS Linux 8使用阿里源(安装jdk11、git测试)
521 1
|
4月前
|
测试技术 开发者
单元测试问题之增加代码变更如何解决
单元测试问题之增加代码变更如何解决
|
5月前
|
测试技术
探索软件测试中的模拟与仿真技术
【6月更文挑战第29天】在软件测试领域,模拟和仿真技术是提升测试效率、确保产品质量的重要手段。本文将深入探讨模拟与仿真技术的定义、应用场景、实施步骤及其对软件测试流程的影响,旨在为读者提供一套系统的理论框架和实践指南,以促进其在软件测试工作中的有效运用。
下一篇
无影云桌面