MirageOS是啥东东?为什么它很重要?

在云端运行的应用程序大多数并不是针对在云端运行而经过优化的。它们本身假设需要依附底层操作系统,其中包括安全漏洞和臃肿软件。将大型服务器分隔成一个个小型虚拟机让许多新的公司得以成功创办起来、实现规模化。这对新服务来说是好事,可是那些虚拟机有许多是单一用途的,不过含有基本上整个操作系统,这种操作系统本身像Web服务器那样运行应用程序。这就意味着,占用的一大部分资源没有被使用,也没有必要,这不仅导致成本高昂,还带来了安全风险(归因于更大的攻击面)。

MirageOS俨然是一种新的方法:只包含操作系统的必要组件,连同应用程序一起编译到单一内核(unikernel)。这带来了非常高效、极其精简的软件设备(appliance),同时攻击面要小得多。这种软件设备可以直接部署到云端和嵌入式设备,好处就是降低了成本,提高了安全性和可扩展性。

MirageOS的工作原理如何?

MirageOS是一种“库操作系统”,可用于跨众多云计算平台和移动平台,构建安全的、高性能的网络应用程序。其工作原理如下,将Xen虚拟机管理程序当成一个稳定的硬件平台,让我们可以专注于实施高性能协议,没必要为支持传统操作系统里面的成千上万个设备驱动程序而操心。

可以在Linux或Mac OS X之类的桌面操作系统上使用高级函数式编程语言(OCaml)来开发代码,然后编译到一个完全独立的专用单一内核中。这种单一内核直接在Xen虚拟机管理程序API上运行。由于Xen支持大多数公有云,比如亚马逊EC2、Rackspace云及其他许多云,MirageOS让你的服务器可以在任何基于 Xen的云或托管服务上运行,成本更低、安全性更高、速度更快。

MirageOS基于OCaml这门语言,在编译用于部署到生产环境时,其语法扩展和50多个代码库可以直接映射到操作系统构件。正因为如此,MirageOS包括使用函数式编程全新实施诸多协议的技术,从TCP/IP、DNS、SSH、Openflow(交换机/控制器)、HTTP、 XMPP到Xen虚拟机之间的传输协议,不一而足。

MirageOS在哪些地方很有用?

目前的MirageOS软件设备的一个例子就是这个网站建设,它完全是一个自托管网站,部署在公有云上,直接在Xen虚拟机管理程序上(这里是亚马逊 EC2上)运行。这类软件设备可以自动配置,并直接部署到公有云(比如Rackspace或亚马逊EC2),也可以推送到嵌入式设备。其不同的MirageOS软件设备被用来演示会议所用的幻灯片。这两个情况表明了眼下MirageOS在如何得到应用,而下面这几个例子表明了我们在未来可以用MirageOS来做什么。

可自扩展的架构

我们可以创建可自扩展的Web服务器,而且占用的资源非常少。由于体积小巧,这种服务器运行起来其成本低于当前的解决方案,但同时又具有高度弹性。如果流量出现突然激增的情况,Web服务器可以配置成自动创建和部署Web服务器副本,以处理需求。这种自扩展非常迅速地完成,以至于入站连接就能触发新服务器的创建,然后新服务器就能在连接超时中断(大约几毫秒)之前处理该请求。需求再次下降后,这些Web服务器又能自动关闭。由于这些机器启动速度快,我们就能变得更有弹性,可以增减计算容量,毫厘不差地满足要求,因而只有在确实需要计算容量时,才添置实际需要的那部分容量。

部署到嵌入式设备

如果使用MirageOS,我们还能创建可以在嵌入式设备上运行的软件设备。这类软件设备可以部署到家里多个角落的小设备中,比如用来测量湿度的花盆或冰箱里面可以告诉究竟什么食品变质的化学传感器。你可以通过一种Web服务器软件设备,访问来自这些传感器的数据,该软件设备也可以本地部署在家里,部署到Raspberry Pi之类的硬件设备上。将额外的应用程序安装到Raspberry Pi软件设备上是很简单的操作,只要轻松点击一下,你就可以共享你的数据或者比较别人的数据。构建这样一个家庭网络,可以确保你不受到任何上游连接问题的影响,数据仍然在你的控制之下。

同样这个场景可以应用到企业环境:建筑物四周的传感器可以监测环境条件、调整灯光及其他许多工作参数。需要额外的计算资源时,就能在云服务提供商的平台上自动创建更多的软件设备,以满足短期需要。

总的来说,MirageOS在提高效率和安全方面具有显著的好处,用来部署到公有云和嵌入式设备上再理想不过了。结合Irmin和Signpost,MirageOS成为了Nymote/MISO工具箱的一个核心部件,有望支持即将涌现的一大批物联网设备。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐