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

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

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次变更风险

九 未来展望

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

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派开始玩转linux pdf_用树莓派构建 Kubernetes 集群 | Linux 中国

将 Kubernetes 安装在多个树莓派上,实现自己的“家庭私有云”容器服务。• 来源:linux.cn • 作者:Chris Collins • 译者:Xingyu.Wang •(本文字数:14330,阅读时长大约:18 分钟)将 Kubernetes …

非标准化的阀门企业也在用钉钉宜搭实现数字化转型

简介: 增长对于所有企业来说,都是机遇与挑战并存。对非标准化的制造企业来说,增长是一把双刃剑,它既是订单增长带来的销售提升,同时在另一边则往往是“低效与浪费”的困扰。 困扰非标制造业的两大难题 1、增长期的“…

慢SQL治理分享

简介: 这里的慢SQL指的是MySQL慢查询,是运行时间超过long_query_time值的SQL。真实的慢SQL通常会伴随着大量的行扫描、临时文件排序或者频繁的磁盘flush,直接影响就是磁盘IO升高,让正常的SQL变成了慢SQL,大面积执行超时…

英特尔表示:元宇宙的路还很长

编译 | 禾木木出品 | CSDN云计算(ID:CSDNcloud)现在每个人都在谈论元宇宙,各大公司也都在致力于访问它的硬件,而且它似乎最终可能成为万维网规模的下一个主要通信平台。但如果你问的话,「最终」还是有很长的…

java csv 追加_如何在Java中添加一个包含CSV数据的列

基于plirke示例代码和他的帮助,我编写了一个最终的工作代码。在这里分享它,这样它可能对有类似需求的人有用。import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOExcep…

案例|自建or现成工具?小型创业团队敏捷研发探索

简介: 实践和踩坑建议。 我是刘永良,是一名全栈开发者也是一名创业者,来自济南——一个目前被称为互联网洼地的地方。2020年4月和三位志同道合的朋友,在济南共同创建了山东旷野网络科技有限公司,主要从事自有项目和外包…

代码智能技术如何应用到日常开发?

简介: 原理与演示。 01/ 从开发者的烦恼说起 开发者在编写代码时,需要花费大量时间在低层次的重复编码上,特别是针对一些语法比较冗余的开发语言。 同时,开发者经常被戏称为面向搜索引擎编程,因为我们经常需要通过…

sql server tcp 信号灯超时时间已到_「图文详解」TCP为啥要3次握手和4次挥手?3次挥手不行吗?...

原文链接:https://www.cnblogs.com/qdhxhz/p/8470997.htmlTCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急)一、TCP三次握手第一次握手客户端向服务器发出连接请求报文,这时报文首部中的同部位SYN1,同时随机生…

F5:2022年应用交付和安全领域趋势展望

作者 | F5中国区金融事业部技术总监兼安全事业部副总经理 陈亮 出品 | CSDN 云计算 随着人工智能(AI)、物联网 (IoT)等技术的日益普及,企业拥抱互联网技术的程度不断提高,越来越多的企业开始考虑利用数字化来提升劳动生产率和利用电子商务扩…

java的class文件在哪里_传统上,你在哪里存储Java .class文件?

如果你不熟悉它,你应该研究Java classpath的主题.我记得当我第一次开始用Java编程时发现这个令人困惑.Java中有.class文件的定义搜索路径;当你运行设置类路径的java -cp blahblahblah时. java -jar blahblahblah.jar打开一个JAR file,.jar文件的清单可以指示类路径.默认的类路径…

DevOps 能力提升模型

简介: DevOps 能力反映的是技术研发响应业务变化的能力。随着组织规模的增加和业务复杂性增长,DevOps 能力会变得越来越重要。持续提升 DevOps 的能力成为技术研发的共同挑战。 编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南…

生态和场景一站式集成?来看看小程序的“共享主义”

简介: mPaaS 小程序市场正式上线,海量小程序一站式集成,用场景拉高终端活跃水位。 01 小程序破壁计划 从 2018 年「支付宝」将支付宝小程序全量开放给用户使用开始,整个小程序生态市场发生了新一波的震荡。 小程序商家通过「支付…

python sanic orm_基于sanic的微服务框架 - 架构分析

感谢songcser分享的《基于sanic的微服务基础架构》https://github.com/songcser/sanic-ms最近正在学习微服务,发现这个repo不错,但不完整,跑不起来。所以学习了一下源码,实际使用Docker部署成功,本文记录实现过程。学习…

拒做背锅侠!如何利用网站性能优化驱动产品体验提升

简介: 对于运维工程师而言,如果要票选五大最抓狂运维支撑场景,花样繁多的各种促销活动一定榜上有名。每个促销季上线都是忐忑不安的不眠夜。大量内容更新、大量客户涌入,大量数据读写,虽有着各种技术方案或工具服务保障…

阿里云飞天论文获国际架构顶会 ATC 2021最佳论文:全球仅三篇

简介: 近日,计算机系统结构国际顶级学术会议 USENIX ATC在线上举行。ATC 始办于1992年,是由USENIX组织的计算机系统领域的顶级会议,至今已成功举办31届,计算机系统领域中Oak语言(JAVA语言的前身&#xff09…

Quorum 和唱票那回事

作者 | 奇伢来源 | 奇伢云存储关于 Quorum 的两个维度前几回说了那么多框架,设计思想的文章。今天分享一个很小的点,etcd 的 quorum 是怎么实现的?Quorum 机制本质就是一个关于多数派的事情,这个多数派应用的有两个方面&#xff1…

java 迷你桌面地图_求教贴,Java桌面小游戏的地图怎么做

展开全部小游戏地e5a48de588b63231313335323631343130323136353331333365656566图一般都是各种图片的拼接,然后保存到2维数组里面比如//数值常量public static final int EMPTY0;//空地什么也没有public static final int BRICK1;//土墙public static final int STONE2;//石头p…

python相对引用_Python 模块相对引用

文件结构如下python_directory/├── __init__.py└── app├── __init__.py├── sub1│ ├── __init__.py│ └── mod1.py└── sub2├── __init__.py├── mod2.py除了 mod1.py,其他文件内容都为空。mod1.pyprint(__name__: {}.format(__name__…

快速界定故障:Socket Tracer网络监控实践

简介: Socket Tracer定位是传输层(Socket&TCP)的指标采集工具,通过补齐网络监控的这部分盲区,来达到快速界定网络问题的目标。 作者 | 四忌 来源 | 阿里技术公众号 一 背景 随着软件应用的集群化、容器化、微服务化,产品的…

剑指企业级云原生,阿里云 CNFS 如何破局容器持久化存储困境

简介: 云原生趋势下,应用容器化比例正在快速增长,Kubernetes 也已成为云原生时代新的基础设施。 据 Forrester 预测,到 2022 年, 全球企业及组织在生产环境运行容器化应用。观察今天的容器和 Kubernetes 的应用现状&am…