Sandstorm.io 的下一个目标就是使人们在运行个人Web App上变得更加简单。它允许用户有自己的服务器,通过一个类似App Store的界面进入,用户可以安装自己的App,就像在你的手机上安装App一样。关于 Sandstorm 我们经常会谈论隐私、安全、控制等方面的问题。告诉你一个秘密:所谓的隐私和安全其实不是 Sandstorm 存在的主要原因,它们只是副产品而已。
作为一个私有云平台,创建 Sandstorm 的真正动力在于帮助开源组织和独立开发者打造属于他们自己的Web应用。
在今天较为流行的SaaS模型中,独立开发者不借助外力是不可能取得成功的。尽管这些百折不挠的人们还是在继续开发,但是有一个问题就是:他们开发出来的软件根本不可能到达广大用户的手中。为了使低预算的软件能够成功,也为了推进开源运动的发展,用户需要在不依赖开发者的前提下运行软件,这在桌面端和智能手机上很容易实现。但是对服务端的应用来说,这很难实现,因为不是所有人都有自己的服务器。
如今的社会状况就是,只有那些有时间、金钱和相关技术的人才能拥有自己的个人主机。甚至许多技术人员都没有,因为从创建主机到管理主机是一件痛苦的事。
Sandstorm 的出现正是为了解决这个问题——人人都能轻松拥有自己的个人主机。
“唯一的解决之道在于人人都能拥有自己的服务器,在服务器上可以安装任何自己喜欢的应用。”
开源软件在桌面端和智能手机端
我使用Debian Linux,它由几千个包组成。系统有浏览器、文本编辑器、各种IDE、聊天客户端、Office套件、开发工具、图片编辑器、多媒体播放器等软件。神奇的是,所有的软件都是开源的。更为神奇的是,我甚至记不起上一次我使用非开源的桌面应用是在什么时候了!
我不是狂热分子。更不会强行让自己使用开源软件,也不会强迫别人使用。当专有软件能够完成工作的时候,我也使用专有软件,过去我也使用过很长一段时间的Windows和Mac,但是使用 Linux的时候是我最快乐的时候。这只是我的偏好,并不适用所有人。想想十五年前的样子,再想想现在,我已经可以轻松的使用一个全开源的桌面,这是一件多么振奋人心的事。
现在,甚至许多Windows和Mac用户也会使用开源软件。VLC、BitTorrent 等独立开源软件甚至在非技术人员中都有广泛使用。在智能手机平台,使用开源软件和低预算独立应用的人更多,因为不同App Stores的存在使用户更容易接触到开源软件。
但是,如今的Web领域几乎没有什么开源软件存在。每天我都使用的应用,像Gmail、Facebook、Twitter、Feedly 等没有一个是开源的。尽管这些应用授权运行在开源架构之上,但这毕竟不是开源。大部分的专有桌面应用使用开源组件和工具。但是Web应用,当用户看见它们的时候,几乎无一例外都是专有应用。
为什么所有的Web应用都是专有的?
开源Web应用的确存在,比如说 Webmail 应用 SquirrelMail 和 RoundCube。如果你足够仔细,或许还能找到开源的在线文档编辑器,RSS阅读器,甚至开源的社交网络应用。但是,即使是科技人员,也没有几个人使用这些产品,出现这种局面很有可能是因为这些应用需要用户有自己的服务器,显然只有极少的人有时间、耐心和技术去搞定这个问题。
还是有几个成功的例子。比如说WordPress,这是一个被广泛使用的开源博客。但WordPress似乎是一个例外而不是普遍现象。并且WordPress的用户并不能真正修改它的代码,因为他们自己并没有主机,他们使用的其实是别人主机上面提供的 WordPress 服务,别人的主机提供哪个版本的WordPress,用户就只能使用这个版本。所以,实际上这并不是开源,而是可见源——你可以看见源代码,也可以提出建议,但是你自己不能按照建议去修改源代码,只有你的建议被官方接受之后,建议才可能成为现实。
为什么没人使用独立的Web应用?
即使是在Windows平台,人们也会经常安装一些小的开源应用。需要标记一些MP3音乐吗?需要使用一个客户端连接多个聊天网络吗?需要解压一个奇怪的压缩文件吗?当你有这些需求的时候,你可能会想到开源应用。有时候,围绕一个小众需求去创建一个商业软件是很不明智的,但是开发者们在他们空闲时间编写的小应用十分丰富,说不定这些小应用就能满足你的需求。但是在Web端,事情不是这样。任何有意义的服务,只要是它需要服务器,因为资金的限制,这项服务必定只能由公司提供。
下面我们来描述一个案例:我认识一个多产的程序员,他叫Brad Fitzpatrick。他是LiveJournal,Camlistore,memcached,OpenID等作品的作者,这些软件你或许早已知道。但是下面我说的这个项目你极有可能听都没听过。
ScanningCabinet 是帮你管理 Paper Mail 的一个小应用。你把你的一个 Paper Mail 放到扫描仪下,ScanningCabinet 扫描邮件内容并把内容存储到云端,然后你就可以标记、访问或者查找邮件。几年前的一个周末,Brad 完成了这个项目并托管到GitHub 上。
可以说,每个人都可能用到这个产品。不幸的是,没有人能真正使用它。为了安装这个应用,你需要配置服务器(在这里就是App Engine),然后将代码部署到服务器上。即使是知道怎么配置、怎么部署的我,还是不想去做这件事,原因是太麻烦。
在如今流行的软件即服务的模型之下,如果Brad想让广大群众都能使用这个应用,他需要把它作为一项服务运行。需要建立多用户支持,保证安全性,部署,还要监视它是不是在正常运行。更糟糕的是,他还要为此付出金钱的代价,这意味着他必须要向用户收费,而收费又意味着投放广告,或者是设立账单。Brad显然不想这么做。
再退一步说,即使他这样做了,谁会用呢?你想把自己的Paper Mail 上传到互联网上某个不知名的人建立的服务器吗?反正我是不会,如果信息泄露了怎么办。
主机是最关键的问题
说到这里问题就很明确了:开源Web软件要想崛起,用户必须要有自己的服务器。把软件即服务和开源放在一起没有任何意义。如果不能修改代码,那就不是真正的开源,Web应用的高壁垒阻碍了兴趣项目和任何不想获利的项目进入这个领域。
唯一的解决办法就是保证每个人都能有一个自己的服务器,可以在服务其上安装任何喜欢的软件。用户不需要自己管理服务器,服务器可以由朋友或者是其他组织管理,但是用户一定要能随意安装自己喜欢的软件。还有软件必须在沙盒中运行以保证安全,即使是安装了有Bug的软件或者恶意软件,也不会影响到服务器的其他部分。
现在,这还仅仅只是一种设想。建立服务器需要时间和技术,而一站式托管服务又只允许运行固定数量的软件。
现在开源Web应用还没有一个立足之地。
我们的解决方案——分布式托管
Sandstorm 是一个Web应用托管平台,它允许非技术人员安装、运行任意的软件。应用可能是从App Store下载,然后一键安装到Sandstorm,就像在你的手机上安装应用一样。每个应用服务器运行在一个安全沙盒之内,其他的应用在没有获得授权的前提下不可能影响到它。
我们谈论了许多关于隐私、安全、控制方面的问题,但是对我来说,这些都是 Sandstorm 模型的副产品。开始这个项目的初衷一直是促进开源软件,兴趣项目,小众应用,独立应用的发展。尽管单个应用和 Gmail,Facebook 比起来微不足道,但是所有的这些应用加在一起的价值却是不可小觑的。大公司不感兴趣的小众领域需要开源软件来填补。我们需要不经允许就能修改的软件,以此为基础尝试新鲜事物。现如今我们还没有这样的软件,这让我觉得很荒唐。
写在最后
我们已经走过很长一段路。现在已经有一个Demo,这个Demo能够满足上面我说到的大部分需求。但是现在我们遇到了资金上的困难。我们能够使Sandstorm成为一个产品,但是我们需要你的帮助。