一个适用于 Windows 的容器:Spoon

阅读数:3609 2014 年 12 月 11 日

话题:Windows语言 & 开发架构

Spoon 是一个适用于 Windows 平台的容器服务,也是目前唯一对 Windows 台式机和服务器应用都提供本地支持的容器平台。开发者现在可以在 Spoon 容器内安装和运行 Windows 应用程序,并用 Spoon.net. Hub 共享镜像和容器。Spoon 与 Docker 不同,它主要应用于 Windows 平台的容器服务,且未开源。

和 Docker 一样,Spoon.net.Hub 可以提供包括数百个预建镜像,适用于通行的框架、语言、服务器和工具的中央存储库。组织可以使用组账户在团队成员和外部用户之间即时分享容器。例如,开发人员可以容器来部署.NET 和基于 Java 的应用,包括桌面客户端软件、浏览器和插件,而无需安装.NET 和 Java。测试人员可以在独立虚拟网络的一台设备上测试并行应用程序。

不同于 Docker 的是,Spoon 有一套自建的虚拟化系统,而并不利用 Windows 内部的虚拟化技术。这样的好处就是能够减少对操作系统的依赖,因此 Spoon 容器可以支持所有主要的桌面和服务器版本的 Windows,甚至包括 Windows XP,而且不需要管理员权限,设备驱动程序或服务器基础设施。Spoon 应用程序可以直接从网络上使用浏览器小插件打开,通过传统的开始菜单界面,或者命令行脚本。还有一点不同于 Docker,Spoon 可以与 VMware ThinApp 行为相同地通过网络流容器应用程序。

Spoon 能对容器进行颗粒级别的隔离。对比 Docker 来看,Spoon 默认向网络开放容器,这样可以更容易对容器封仓,然后选择性的对网络再开放。开发者声称这样可以允许桌面应用默认运行。

由于容器是建立在 Spoon 的虚拟化引擎之上,而不是简单提供一个支持底层操作系统的容器接口,Spoon 能跨操作系统地容器应用程序,并提供先进的虚拟化原语。例如,Spoon 提供了一个传统的 OS 仿真模式,允许旧版应用程序在 Windows 7 和 8 上运行;允许桌面应用程序与主机设备的外壳和桌面互动的桌面集成和隔离控制;还有一种令人惊叹的新功能,能够通过网络将应用程序状态从一个设备迁移至另一个设备。

Windows 用户迁移到云计算平台,例如微软 Azure,可以用 Spoon 容器支持多租户的台式机和服务器应用程序,还有那些在 Windows 服务器平台上不能正确执行的应用程序执行。

总的来说,开发者利用 Spoon 可以:

  • 在隔离的容器中开发并打包应用程序。包括.NET、Java、SQL 和 MongoDB
  • 用 SpoonHub 自动测试和与 QA、测试用户分享测试环境
  • 简化开发过程,清除 Bug
  • 容器无需安装文件,并且能阻止本地安装的软件的干扰

Spoon 推出以后,得到了媒体和业界的支持。他们都对这款面向 Windows 的容器工具表现出了兴趣。在接受Digital Journal采访时,Spoon 的 CEO Kenji Obata 表示,Spoon 为 Windows 平台带来容器化服务是一件值得兴奋的事情。Lemonde Infomatique 撰文介绍了 Spoon 的情况,并预测了其与 Docker 的竞争。golem.de的文章也介绍了 Spoon 的基本情况,并且对 Spoon 的前景十分看好。包括 Autodesk 和 Intuit 公司领先的供应商都采用 Spoon 技术,让他们的测试版应用程序的隔离执行去测试用户。消费类网站如 ForeSee、Lending Club 和 WestJet 用 Spoon 来进行多浏览器和 Web 服务器测试。


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。