拥有个人云对开源运动意味着什么

目前还没有读者喜欢这篇文章。
A person holding on to clouds that look like balloons

Opensource.com

Sandstorm.io 是一个从根本上更简便的方式来运行 Web 应用程序的个人实例。它允许你拥有自己的个人服务器,并通过应用商店界面像在手机上安装应用一样轻松地向其安装应用。 在 Sandstorm, 我们经常谈论隐私、安全和控制你的云数据的必要性。让我告诉你一个秘密:这些并不是 Sandstorm,我们的个人云平台(目前正在 Indiegogo 上接受 Indiegogo 上的资助)的原因。它们只是令人愉快的副作用。

Sandstorm 的真正动机是,并且一直以来都是,使开源和独立开发者能够构建成功的 Web 应用程序。

在当今流行的软件即服务模式中,独立开发根本不可行。人们 仍然这样做,但他们的软件大众无法访问。为了使低预算软件能够成功,并且为了使开源有任何意义,用户必须能够运行他们自己的软件实例,而无需开发者付费。我们在桌面和移动设备上一直都拥有这种能力。当涉及到服务器端应用程序时,托管必须是去中心化的

但是今天,个人托管仅对那些有时间、金钱和专业知识来维护服务器的人开放。即使大多数技术人员也不愿意这样做,因为它很麻烦。Sandstorm 的存在就是为了解决这个问题,使个人托管对每个人都变得容易访问。

“唯一的解决方案是确保每个人都拥有一个服务器,他们可以在其中安装任何他们想要的软件。”

开源在桌面和移动设备上已经奏效

在我的桌面上,我运行 Debian Linux。我的系统由数千个软件包组成。我有浏览器、文本编辑器、IDE、聊天客户端、办公套件、开发工具、照片编辑器和媒体播放器。值得注意的是,所有这些都是开源的。更值得注意的是,我已经不记得上次我感到需要使用非开源桌面应用程序是什么时候了。

我不是狂热分子。我不会将开源强加于自己,也不会强加于他人。我会使用专有软件,只要它能完成工作,而且我过去也曾花大量时间作为 Windows 用户和 Mac 用户,但如今我在 Linux 系统上最快乐。那是我的个人偏好,并不适合所有人,但考虑到十五年前的情况,我可以做出这个选择,并且可以无痛地运行全开源桌面,这真是太棒了。

即使是 Windows 和 Mac 用户,如今也使用大量的开源软件。据某些衡量标准,现在大多数人使用开源浏览器。VLC、BitTorrent 和其他“独立”开源桌面应用程序即使在非技术人员中也得到广泛使用。移动设备似乎更加充满了开源和低预算的独立应用程序,因为各种移动应用商店使小型开发者能够极其容易地接触到大量受众。

然而,不知何故,今天的网络几乎完全没有开源软件。我每天都使用 Gmail、Facebook、Twitter、Feedly 等应用程序。这些都不是开源的。诚然,这些应用程序通常运行在开源基础设施之上,但这有所不同。大多数专有桌面应用程序都使用开源组件和工具。但是网络应用程序,正如用户所见,几乎总是专有的。

为什么我的所有 Web 应用程序都是专有的?

开源 Web 应用程序是存在的。例如,像 SquirrelMailRoundCube 这样的 Webmail 应用程序已经存在一段时间了。如果你仔细寻找,你可以找到开源的在线文档编辑器、RSS 阅读器,甚至还有一些社交网络。但即使在技术人员中,似乎也很少有人使用这些,可能是因为它们都需要运行自己的服务器,而很少有人有时间、耐心和专业知识来做到这一点。

也有一些成功案例。WordPress 是开源的,并且被广泛用于博客。但这似乎是例外而不是规则。而且这也很值得怀疑:大多数使用 WordPress 的人实际上无法编辑代码,因为他们是通过 WordPress 托管服务使用它,并且只能使用该主机提供的 WordPress 版本。自然,所有主机都可能只使用“官方”版本。因此在实践中,它几乎不是真正的“开源”,而是“可见源代码”——你可以看到代码并请求更改,但只有当你的更改被正式采纳时,你才能使用它们。

为什么没有人使用“独立” Web 应用程序?

即使在 Windows 上,人们也经常安装一些小的开源应用程序来完成工作。需要标记一些 mp3 文件?想要使用一个客户端连接到多个聊天网络?需要解压缩奇怪的存档格式?你可能会使用开源应用程序。有时很难围绕小众目的建立商业案例,但随机的人在业余时间编写的小应用程序却很丰富。但在网络上,情况似乎并非如此。任何具有服务器端组件的重要服务实际上只能由有资金支持的公司运行。

让我描述一个具体的例子:我认识一位名叫 Brad Fitzpatrick 的多产程序员。你可能知道他是 LiveJournalCamlistorememcachedOpenID 和其他项目的作者。但我想谈谈他一个你可能没听说过的项目。

scanningcabinet 是一个小型的 Web 应用程序,它可以帮助你整理纸质邮件。你将邮件放入扫描仪,应用程序会扫描它并将其上传到“云端”,在那里你可以稍后访问、标记和搜索它。Brad 在几年前的一个周末编写了这个程序,并将代码上传到了 GitHub。

这个应用程序可能对几乎任何人都有用。但可悲的是,没有人真正可以使用它。要设置它,你必须配置一个服务器(在本例中是 App Engine)并将代码部署到它上面。即使对于像我这样知道如何做到这一点的人来说,这也不是我真正想做的事情。

按照今天的模式,如果 Brad 想要使这个应用程序大众化,他就必须将其作为服务运行。他必须构建多用户支持,确保其安全,部署它并监控它。更糟糕的是,他必须为此付费,这意味着他必须将其货币化,这可能意味着他必须开始分析人们的邮件以建立广告档案,或者设置计费。Brad 显然不想做任何这些事情。

即使他这样做了,谁会使用它呢?你想将你的纸质邮件上传到由互联网上的某个人运行的服务器吗?我当然不会将我的个人数据信任给任何至少没有可识别的组织支持的服务,如果它搞砸了,这个组织会损失一些东西。

问题在于托管。

到目前为止,问题变得很清楚:为了使开源软件有意义,用户必须运行他们自己的实例。软件即服务和开源根本不合拍。如果你无法运行修改后的代码,那就不算是真正的开源,而高门槛则将业余项目或任何不愿被货币化的东西拒之门外。

唯一的解决方案是确保每个人都拥有一个服务器,他们可以在其中安装任何他们想要的软件。他们不一定需要管理该服务器——它可以由朋友或服务运行——但每个用户必须能够安装任意软件。并且该软件必须被安全地沙箱化,以防止有缺陷或恶意软件损害服务器的其余部分。

今天,这在任何实际形式中都不存在。服务器的设置需要时间和技术专长,而交钥匙托管服务只允许你运行固定的软件集。

没有地方可以运行开源 Web 应用程序。

我们正在使去中心化托管成为可能

Sandstorm 是一个 Web 应用程序托管平台,它使非技术终端用户能够安装和运行任意软件。应用程序可以从应用商店下载并一键安装,就像在手机上安装应用程序一样。每个应用程序服务器都在一个安全的沙箱中运行,未经许可,它无法干扰其他应用程序。

我们经常谈论隐私、安全和控制,但在我看来,这些一直是 Sandstorm 模式令人愉快的副作用。我启动这个项目的主要动机一直都是为了支持开源软件、业余项目、小众应用程序和独立开发者。即使与 Gmail 或 Facebook 相比,此类别中的每个单独的应用程序最终的影响都很小,但通过不为这些应用程序提供平台而损失的集体价值是巨大的。我们需要开源软件来填补大公司不感兴趣的利基市场,并推动他们认为风险太大的边界。我们需要可以未经许可进行调整的软件,以便在不从头开始的情况下尝试新事物。坦率地说,在我看来,今天我们在网络上没有真正做到这一点是荒谬的。

帮助我们实现目标

我们已经走了很长一段路。我们有一个演示,它已经实现了我们正在谈论的大部分内容。但我们正接近我们自筹资金能力的极限。我们可以将 Sandstorm 投入生产,但我们需要你的帮助。

请查看我们在 Indiegogo 上的众筹活动,并广而告之。

最初发布在 Sandstorm 新闻博客上。经许可转载。

标签
User profile image.
Kenton Varda | 我编写开源软件。我曾在 Google 工作了 7.5 年,在此期间我从事基础设施和安全方面的工作,但最出名的是开源了 Protocol Buffers,Google 的内部数据交换协议。

5 条评论

我试用了演示,它真是太棒了。Sandstorm 似乎是解决一个紧迫(正如你在此处令人信服地指出的)问题的优雅解决方案。我祝愿你在继续推进它时一切顺利。

这确实非常棒!在不到一分钟的时间里,我在演示实例上安装了 mailpile 应用程序并成功发送了邮件

回复 的评论,作者是 bbehrens

你好,

我刚刚快速试用了你的 shell 和 ghost 演示。似乎可以工作,这是一个好的开始。

一些技术要点

* 你的演示登录页面在没有 Cookie 的情况下无限循环,并且登录页面需要 Javascript,原因不明。
* 看起来你绑定了 Google 的 ajax 代码,所以如果他们撤销它,是的,你的网站就会崩溃。

从更社交的角度来看,我不确定你的解决方案真的解决了你声称要解决的任何问题。拥有用户可以使用的服务器并不能克服 Gmail 和其他公司利用的网络效应。它也没有解决首先必须提供域名的问题(这对任何人来说都足够麻烦)。我没有看到从你陈述的问题到你开发的解决方案的清晰路径。

恕我直言,一个好的分布式网络库,加上托管备份(类似于 torrent 中的 tracker),对于你描述的问题来说,会是一个更清晰的解决方案(每个人都喜欢手机/电脑/任何东西上的原生代码的感觉)。更好的可扩展性,并且不需要调用域名。

另一方面,这似乎是对在线托管的一次认真尝试。如果你能澄清你为什么要这样做,那就太好了!

> 你的演示登录页面在没有 Cookie 的情况下无限循环,

抱歉,我认为这一定是 CloudFlare 的原因,因为我实际上自己不使用 Cookie,但我知道 CloudFlare 引入了一个 Cookie。但我认为在这种情况下,所有启用 CloudFlare 的网站都会受到影响,这在互联网上占了相当大的比例。你发现很多网站都有这个问题吗?

或者你是否也禁用了 localStorage 以及 Cookie?Sandstorm 实际上确实使用了 localStorage。

> 并且登录页面需要 Javascript,原因不明。

登录站点是 Meteor 应用程序的一部分。Meteor 应用程序几乎完全是 Javascript。这种设计使得在应用程序的页面之间浏览成为可能,而无需等待缓慢的页面重新加载;如今,避免 Javascript 的应用程序感觉非常缓慢和过时。

> 看起来你绑定了 Google 的 ajax 代码,所以如果他们撤销它,是的,你的网站就会崩溃。

嗯?据我所知,Sandstorm 不依赖任何外部资源。

Sandstorm 网站(不是 Sandstorm 本身)使用分析和社交按钮,但它们都是可选的;即使它们失败,它仍然可以工作。

> 拥有用户可以使用的服务器并不能克服网络效应

并非所有应用程序都具有网络效应。例如,文档编辑器没有太大的网络效应。我认为电子邮件应用程序也没有太大的网络效应,因为电子邮件是一个开放标准。显然,网络效应仍然是联邦社交网络的一个问题,但至少通过消除一个单独的主要问题(托管),我们正在接近目标。

> 恕我直言,一个好的分布式网络库...

不。原生客户端很棒(Sandstorm 将会支持它们),但对于任何社交或协作的东西,你仍然需要一个服务器。例如,为了拥有一个实时的协作文档编辑器,你需要一个服务器来托管规范副本并协调编辑。

此外,你所描述的需要重写我们所有的应用程序。能够用现有应用程序来启动 Sandstorm 对于引导启动非常重要。

回复 的评论,作者是 amoose (未验证)

这绝对是一个有趣的项目。很高兴看到一个一键安装程序,其中包含 1) 仅 FLOSS,以及 2) 我实际会使用的应用程序。

祝你的 Indiegogo 众筹活动好运!

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.