写点什么

微软将开源其对抗云网络中断的秘密武器

  • 2018-08-28
  • 本文字数:1605 字

    阅读完需:约 5 分钟

完全复制或模拟云网络是不可能的,因为很明显——云网络的规模太大了。但是微软攻克了这个难题。

8 月初,微软的研究人员在微软研究院 Faculty Smmit 上接受采访时称,他们设计了一款开放网络模拟器(Open Network Emulator,简称 ONE),可以通过模拟整个 Azure 网络基础架构,来查找最终导致网络中断的错误,故障和其他恶意软件。并且!微软打算开源这项技术

近一年来,微软一直利用 ONE 模拟器测试将要被部署到生产中的更改。研究人员说,微软的网络工程师在使用过程中,从这些更改中找到了数百个 bug,防止了可能出现的重大中断错误。

计算机网络是复杂的玩意儿,因为这样的复杂性也变得很脆弱:网络规模越大,单个错误造成的损害就越大。

回想一下之前各大公有云服务的故障,给用户带来的影响,这样的一款模拟器如果能稳定投入使用,应该能防止不少问题的发生。

ONE 能在软件中模拟所有组成网络的硬件和软件设备,以及它们相互连接的方式。它在 Docker 容器和虚拟机中运行,其构建目的是为了防止变更引起的网络崩溃,在网络变更投入生产之前对它们进行测试和检查。其工作原理是对整个网络进有效的复制。当网络工程师和运营商进行更改时,它们实际上只是对模拟器进行更改,而不是对底层网络进行更改。

“因为它对底层网络的模仿程度如此惊人,以至于你无法区分,”微软研究院移动性和网络总监 Victor Bahl 解释说。如今,当 Azure 网络工程师进行更改时,这些更改首先被应用于 ONE 模拟系统,但是实际上,他们也不知道自己是否对网络做了更改。因为实际上被改变的是模拟器。ONE 能惟妙惟肖地模拟底层的网络,让人无法区分它们。

“我们认为,这个对每个人都那么重要的资源,如果只是为我们所用,那不是一件正确的事。因此,我们想让整个社区都能使用它。”Bahl 在 8 月初的采访中这样说道。

Bahl 解释说,让公众得以接触该技术不仅有助于大型企业提高网络正常运行时间,而且也给学生和研究人员提供了一种工具,他们可以用ONE来模拟超大规模网络,比如微软、谷歌和亚马逊已经建立的网络,并在不访问实际网络的情况下进行创新

同时,这也将给网络产品供应商们提供一种大规模测试新的控制平面软件的方法。

微软还未透露何时开源 ONE。在 GitHub 上搜索 ONE 还没有任何结果。

去年,在 ONE 投入使用 6 个月之后,微软首次对外披露了这个系统 ( https://www.microsoft.com/en-us/research/event/faculty-summit-2018/ )。在当时,它被称为“CrystalNet”,寓意是可以显示网络未来的水晶球。

微软的研究人员当时就已经暗示在考虑向公众发布这项技术。他们于今年 6 月的 Sigcomm 大会上确认以 ONE 的名字将该系统进行开源。

微软的研究人员在提交给 Sigcomm 的 ONE 的描述中提到:“我们的网络是庞大的、异构的、复杂的,并且一直在变动。在这样的环境中,那些由设备故障触发的小问题、错误的设备软件、配置错误、未经证实的管理工具和无法避免的人为错误都会很快引发大型中断。因此,在生产环境中部署更改之前对每个更改的影响能力进行验证,这对维护和提高我们网络的可靠性是至关重要的。”

根据 Sigcomm 的论文所述,到目前为止,Azure 网络工程师已经使用 ONE 超过了一年的时间。他们已经“在 ONE 模拟器上花了数百万小时,并且在变更中找到了数百个错误,防止了可能出现的重大中断。”

2018 年微软 Azure 云计算服务的收入强势增长了 89%,在 Gartner 2018 年的云基础设施魔力象限中占据领导者地位,紧跟 AWS 排第二,并且与 AWS 的差距在缩小。

随着各家公司对云服务的依赖日益增加,确保这些云服务不宕机比以往更重要。但是,无论系统设计地多好,运行它们的工程师有多聪明机警,人类总是偶尔会犯错。而在超大规模网络更改的过程中出现的细微错误会导致大型中断。在超大规模网络中,像这样的中断会影响数百万人,Bahl 说:“我可不希望成为这种灾难的源头。”

如果在模拟系统中,更改没有造成任何错误,就会自动传播到生产网络。

感谢张婵对本文的策划及审校。

2018-08-28 12:322402
用户头像

发布了 199 篇内容, 共 90.7 次阅读, 收获喜欢 295 次。

关注

评论

发布
暂无评论
发现更多内容

大数据培训:HiveSQL技术优化与面试

@零度

Hive SQL 大数据开发

干货|一次完整的性能测试,测试人员需要做什么?

云智慧AIOps社区

测试 性能测试 测试 单元测试 测试类型 测试管理

基于迁移学习的非侵入式负荷识别

白日梦

我们不太可能一直存在着失控的人生,我们要做的是,让拥有自控力的时间长一点,让失控的日子短一点。

叶小鍵

To程序员:要写出好代码,你需要懂点儿“底层思维”

博文视点Broadview

Web 键盘输入法应用开发指南 (8) —— 模拟事件

天择

JavaScript 键盘 输入法 3月月更

CRM复杂业务场景的低代码开发实践

鲸品堂

低代码

硬件工程师实用工具网站

不脱发的程序猿

嵌入式 智能硬件 电路设计 硬件工程师 实用工具网站

遵循Promises/A+规范,手把手带你实现Promise源码(核心篇)

战场小包

JavaScript 前端 Promise 3月月更

Nginx反向代理(三)

神农写代码

基于微信小程序的驾校预约学车平台的概要设计和详细设计

CC同学

Nginx 反向代理(二)

神农写代码

Redis集群架构剖析(1):认识cluster

非晓为骁

redis redis cluster 分布式,

Python 中的函数式编程三大法宝:map、filter、reduce

踏雪痕

Python map reduce 3月程序媛福利 3月月更

面试突击30:线程池是如何执行的?拒绝策略有哪些?

王磊

java面试

阿里巴巴发布最佳实践 | 阿里巴巴DevOps实践指南

阿里云云效

云计算 阿里云 DevOps 云原生 迭代管理

Java基础重要面试题(一)

逆锋起笔

java面试 java基础 3月月更

什么是 RabbitMQ

Ayue、

RabbitMQ 3月月更

LabVIEW设计自定义指示灯和按钮控件

不脱发的程序猿

LabVIEW 自定义控件方法

StarRocks 2.1 新版本特性介绍

StarRocks

数据库 大数据 StarRocks

Qunar【业务架构解析与探索】系列课重磅来袭啦!!

Qunar技术沙龙

架构

免费下载 |《Serverless 开发速查手册》让你速查秒懂 Serverless

阿里巴巴云原生

云原生

智慧停车场-车牌识别自动计费系统

DS小龙哥

车牌识别 3月月更

22.04 LTS爆料现场 - UKUI 3.1实操界面曝光,简约却不简单!

优麒麟

Linux 开源 操作系统 优麒麟 UKUI

PendingIntent重定向:一种针对安卓系统和流行App的通用提权方法——BlackHat EU 2021议题详解(上)

安第斯智能云

安全 安卓

AQS 源码流程分析

网易云信

java

WPF 与 Winform 的区别以及应用场景

神农写代码

浏览器中的页面

Tristan

微博系统中”微博评论“的高性能高可用计算架构

孙强

架构师实战营

Nginx反向代理(一)

神农写代码

Linux下玩转nginx系列(三)---nginx日志配置文件说明

anyRTC开发者

nginx Linux 音视频 WebRTC 服务器

微软将开源其对抗云网络中断的秘密武器_微软_Yevgeniy Sverdlik_InfoQ精选文章