微信号:infoqchina

介绍:有内容的技术社区媒体

【工具】为什么Sandstorm不能运行Docker应用

2014-08-22 22:04 InfoQ

Sandstorm是由前谷歌工程师Kenton Varda开发的一个开源的个人云平台项目,Sandstorm允许开发者在自己的服务器上通过一个类似App Store的界面来安装自己的应用。它的目标是帮助用户快速简单的在自己的服务器上安装并运行Web应用。近日,Kenton发表了一篇名为《为什么Sandstorm不能运行Docker应用》的文章。

文章首先指出,虽然Sandstorm和Docker的底层技术都是一样的(都是基于相同的Linux内核特性),但它们是两个完全不同的平台。关于Standstorm为什么不能运行Docker应用的问题就像为什么Android不能运行Linux桌面应用的问题一样,它们本身的出发点就不一样。Docker是设计用来在容器内安装并运行现有的服务器软件包,站在应用的角度来看,Docker其实就是Linux;站在用户的角度来看,Docker更像是传统的虚拟机,只不过它性能更好。而Sandstorm做的事情完全不一样,Sandstorm的目标用户并不是开发人员或者管理员,他们可能不知道如何使用数据库或者命令行,Standstorm支持的应用有以下几个特点:

  1. 每个应用都必须有用户界面,用户可以在界面中完成所有的配置选项。

  2. 应用必须能够独立安装并管理数据库。

  3. 应用需要和Sandstorm统一的登录系统相集成。

  4. 用户不需要为不同的应用管理不同的共享模式,Sandstorm支持细粒度的容器,以保证每一个文件都可以在一个单独的容器中。

  5. 授权操作需要通过一种用户可以理解的方式来展现。

  6. 可以一键或者自动完成应用的更新。

  7. 用户会不时地安装恶意程序,Sandstorm需要保证系统的安全。

文章接着解释了为什么Standstorm不直接使用Docker而是自己开发容器。其实Sandstorm使用了很多和Docker相同的技术,比如namespaces、cgroups。但是当涉及到用户空间的工具时,Standstorm发现他们并不需要Docker,Docker工具被设计用来运行Linux软件,而Sandstorm上的应用必须为Sandstorm环境量身定制,所以Standstorm需要提供尽可能少的配置以保证核心系统简单。设置一个Sandstormsandbox,基于Linux系统的一些函数,可能只需要几百行的代码,但是如果使用Docker,取而代之的是几百行的配置,并且增加了额外的依赖以及维护,另外Docker的也不能满足Sandstorm的一些个性需求。

文章最后也表示Docker很强大,Sandstorm在开发中也使用了Docker,他们很希望看到Docker能替代传统的IaaS解决方案。


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 PyTips 0x10 - Python 的堆与优先队列 如何写好数据分析师简历 写作的本源 最新版合集,让你赚更多积分哦! 雅安芦山地震