微软公司的研究人员已为一种新的“云规模”仿真器揭开了神秘面纱,他们开发这款工具的初衷是完全消除其公共云的故障。

微软已开发出一款秘密的网络仿真器,声称可以防止大多数云服务故障-势活

这款住址器名为CrystalNet,它是本周在中国上海举办的ACM操作系统原理年度研讨会(SOSP)2017大会上探讨的主要课题之一。

微软移动和网络研究团队的杰出科学家维克多•巴尔(Victor Bahl)总监表示,CrystalNet是两年多来研发工作的成果。他在一篇博文(https://www.microsoft.com/en-us/research/blog/eliminating-network-downtime/)中解释,之所以设计CrystalNet,是因为坚信这一点:如果采用一种更积极主动的方法,完全可以及早发现云网络问题。巴尔及其同事很快认定,为此最好的方法就是仿真网络,以便测试网络。

巴尔说:“部署之前先测试是一种古老的想法,但是在微软研究部门深入研究两年,分析了各大云服务提供商所有记入文档的故障后,我们认为,如果我们先在与生产网络同样的环境上验证生产网络,就有可能发现大多数潜在的问题。”

CrystalNet一模一样,因为它使用与微软的生产网络同样的网络拓扑、硬件、软件和配置。它可以在虚拟机里面的仿真设备上运行,而且支持大多数常见网络设备的软件映像。

微软提供的下面这个图阐述了CrystalNet的架构:

微软已开发出一款秘密的网络仿真器,声称可以防止大多数云服务故障-势活

CrystalNet的架构示意图

拥有像CrystalNet这种仿真网络的意义在于,微软的Azure工程师可以用它来针对任何问题,测试计划中的变更和更新,而不是仅仅实施这些变更和更新,希望不出任何故障,实际上故障出现在各大公共云服务提供商身上异常频繁。巴尔表示,如果使用CrystalNet,微软的工程师可以“减小进行更新后有时出现的网络问题的严重性。”

早期结果看起来不错。巴尔表示,微软的Azure团队已经使用CrystalNet验证了许多新的网络设计、架构变更、硬件和固件更新以及网络配置变更。该公司还使用CrystalNet成功地构建和测试Software for Open Networking in the Cloud(云端开放网络软件),这是面向网络交换机的操作系统。

尽管这些测试取得了成功,但一位专家表示,CrystalNet可能无法防止每一种故障。Constellation研究公司的首席分析师兼副总裁霍尔格·米勒(Holger Mueller)表示,虽然很高兴看到微软试图解决导致之前数起Azure云故障的网络问题,但是在试图防止服务停运时要考虑其他许多方面。

米勒说:“能够在部署前模拟和测试是确保正常运行时间的正确方法,不过测试仍然是测试。能够本地测试和立即回滚是确保正常运行时间的两个关键方面。但是回滚功能仍然是大多数基础设施即服务(IaaS)提供商需要努力的方面,说到网络基础设施更新尤为如此。”

巴尔对这种大有前景的新技术何时可以投入商用未作任何表态。不过他确实承认,一些Azure客户已经表示有兴趣使用CrystalNet来防止自己的网络出现故障。在微软开始考虑将CrystalNet卖给其他人之前,它极有可能会先与Azure云整合起来。

 “客户打心眼里对CrystalNet感兴趣,这促使我们与Azure工程师不断合作,完善这项技术。”