微软正开展多方面的工作以提高旗下Azure数据中心的弹性。Azure的首席技术官Mark Russinovich在上周的微软构建(Build)大会2019上做了题为“Inside Azure datacenter architecture”(Azure数据中心架构一瞥https://www.youtube.com/watch?v=S2zguwKvlQk)的演讲,他概述了微软关注的一些具体可靠性领域。
Russinovich描述的其中一项工作是“Tardigrade项目”。Russinovich向与会者解释了Tardigrade的意思,Tardigrade(一种微动物,也被称为“水熊”或“苔藓猪仔” https://en.wikipedia.org/wiki/Tardigrade)是目前发现的生命力最强的生物之一。Tardigrade可以在外太空和极端温度下存活。
微软的目标是利用Tardigrade项目令云应用程序能够在平台故障发生时保存下来。
Russinovich表示,“我们希望我们的服务器像Tardigrade一样顽强”糟糕的事情出现时,我们不必重启虚拟机(VM)。Tardigrade可以“令VM冻结在RAM内存里,VM的状态得以保留下来”。如此操作系统可以在新服务器上恢复。
Russinovich没有提供关于何时推出这项技术的任何细节,但他在构建大会上的演讲里演示了Tardigrade的工作过程。
更新(5月14日):网上可以找到一个名为Tardigrade的微软研究项目。这份2015年5月的研究报告(https://www.microsoft.com/en-us/research/publication/tardigrade-leveraging-lightweight-virtual-machines-to-easily-and-efficiently-construct-fault-tolerant-services/)详细描述了微软对于Tardigrade的观点,即“利用轻量级虚拟机轻松高效地构建容错服务”。微软在5月14日晚些时候联系了笔者,称两个Tardigrades没有关系。
微软研究院的 Tardigrade研究论文摘要:
“Tardigrade是个将现存的、未经修改的二进制文件部署为容错服务的系统。Tardigrade在多台机器上复制服务,因而即使其中一些机器出现故障时也能继续运行。而Tardigrade的服务状态保持同步,因此客户端看到强烈一致的结果。“
微软研究人员概述的Tardigrade使用“轻量级虚拟机的进程沙盒,因此它的外部依赖关系被完全封装,令其可以跨机器迁移。为了让未经修改的二进制文件能在这样的沙箱中运行,沙箱还包含了提供预期所需API的库操作系统。“
是个库操作系统吗?是的,似乎Tardigrade其实是源于微软做的与“Drawbridge”相关的工作。
Drawbridge曾是微软研究院的一个项目,旨在为应用程序沙盒提供一种新的虚拟化形式。微软研究人员对其的描述是,Drawbridge依赖于Picoprocesses(一个具有最小内核的基于进程的隔离容器)和一个库操作系统,或者说是个重构为能在应用程序里作为一组库运行的操作系统。Microsoft靠着Drawbridge概念将SQL Server引入了Linux及将Windows子系统Linux引入了Windows 10。
微软发言人表示,微软研究院的Tardigrade与Azure项目的Tardigrade没有任何关系,尽管二者名字相同(而且对于笔者而言潜在的焦点听起来也类似)。该发言人表示,Azure 的Tardigrade项目是一项全新的计划。
Russinovich上周接受Geekwire时表示,微软也希望通过在全球推出更多可用区域(Availability Zones)来提高旗下数据中心的可靠性。可用区域旨在帮助保护客户免受数据中心层次故障的影响。这些区域位于Azure区域内,提供独立的电源、网络和冷却系统。启用的Azure区域里至少有三个分隔的区域位置。
虽然微软官员经常声称微软在全球拥有的云区域比任何云提供商都多,但支持可用区域的Azure区域却相对较少。AWS在这一块则将“区域”定义AWS运营可用区域群集的地理位置。 AWS目前在21个地区拥有64个可用区域。