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

还没有读者喜欢这个。
A person holding on to clouds that look like balloons

Opensource.com

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

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

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

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

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

开源在桌面和移动设备上取得了成功

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

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

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

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

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

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

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

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

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

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

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

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

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

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

问题在于托管。

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

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

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

没有开源网络应用程序可以运行的地方。

我们正在使去中心化托管变得可行

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

我们经常谈论隐私、安全和控制,但在我看来,这些一直是 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 实际上确实使用了它。

> 并且登录页面需要 javascript,原因尚不清楚。

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

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

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

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

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

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

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

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

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

回复 ,作者 amoose (未验证)

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

祝你的 Indiegogo 活动好运!

© . All rights reserved.