Sandstorm是 由前谷歌工程师Kenton Varda开发的一个开源的个人云平台项目,Sandstorm允许开发者在自己的服务器上通过一个类似App Store的界面来安装自己的应用。它的目标是帮助用户快速简单的在自己的服务器上安装并运行Web应用。近日,Kenton发表了一篇名为《为什么Sandstorm不能运行Docker应用》的文章。 文章首先指 出,虽然Sandstorm和Docker的底层技术都是一样的(都是基于相同的Linux内核特性),但它们是两个完全不同的平台。关于 Standstorm为什么不能运行Docker应用的问题就像为什么Android不能运行Linux桌面应用的问题一样,它们本身的出发点就不一样。 Docker是设计用来在容器内安装并运行现有的服务器软件包,站在应用的角度来看,Docker其实就是Linux;站在用户的角度来看,Docker 更像是传统的虚拟机,只不过它性能更好。而Sandstorm做的事情完全不一样,Sandstorm的目标用户并不是开发人员或者管理员,他们可能不知 道如何使用数据库或者命令行,Standstorm支持的应用有以下几个特点:
文章接着解释 了为什么Standstorm不直接使用Docker而是自己开发容器。其实Sandstorm使用了很多和Docker相同的技术,比如 namespaces、cgroups。但是当涉及到用户空间的工具时,Standstorm发现他们并不需要Docker,Docker工具被设计用来 运行Linux软件,而Sandstorm上的应用必须为Sandstorm环境量身定制,所以Standstorm需要提供尽可能少的配置以保证核心系 统简单。设置一个Sandstorm sandbox,基于Linux系统的一些函数,可能只需要几百行的代码,但是如果使用Docker,取而代之的是几百行的配置,并且增加了额外的依赖以 及维护,另外Docker的也不能满足Sandstorm的一些个性需求。 文章最后也表示Docker很强大,Sandstorm在开发中也使用了Docker,他们很希望看到Docker能替代传统的IaaS解决方案。 |