从“云”到“雾”:云计算将死亡,取而代之的是分布式的点对点网络

在云计算发展一片火热的时候,英国数字咨询公司 Red Badger 的技术主管 Viktor Charypar 却在 VentureBeat 上发文表示,云服务将会迎来末日。并指出点对点网络将会是将来的发展方向。

声明|本文转载自 36氪,授权请联系原创

云将会走向终结。一直以来,都有这样的一个传统观点:运行服务器的应用程序,无论是 Web 应用还是移动应用的后台,未来都会在云端。亚马逊、谷歌和微软在他们的云服务中添加了多种工具,让运行的软件服务变得越来越简单方便,因此,在 AWS 、GCP 或 Azure 上托管代码是你能到的最好的事情 —— 它方便、便宜、容易实现自动化,你可以灵活地控制规模。

那么,为什么我要预测这一切都会结束呢?有这么几个原因:

它无法满足长期的扩展要求

构建一个可扩展、可靠、高可用性的 Web 应用程序,即使是在云中也相当困难。如果你做得不错,那么庞大的规模将会耗尽你的金钱和精力,最终会达到云计算的极限:计算机的计算速度和存储容量的增长速度超过了网络的带宽。

这之所以是一个问题,主要是因为我们组织网络的方式。有许多用户想要获得内容和使用程序,而只有相对较少的服务器拥有这些。比如当我在 Slack 上看到一张搞笑的照片时,想向坐在我身边的 20 个人分享,但他们都必须从托管服务的服务器上下载,服务器需要发送 20 次这个照片。

随着服务器转移到云端,这需要有巨大的吞吐量来处理这些数据。此外,还必须有大量的硬盘来存储 CPU 数据,再通过网络将数据传输给每一个想要的人。

它是集中而脆弱的

集中存储数据和程序的另一个问题是可用性和持久性。我们通常通过将数据存储在多个位置来缓解这个问题,但这需要更多的数据中心。虽然这样可能会大大降低意外损失的风险,但你非常关心的数据又该怎么办呢?

婚礼视频、孩子的照片、或重要的信息来源,所有这些信息都存储在云端( Facebook、Google Drive 等),即使它们不会发展到停止运营这一步,但也会限制你访问自己数据的方式,你和你的朋友必须去使用它们的服务。

它需要信任,但没法提供保障

使用云服务,你要让朋友相信他们得到的数据是你发送的,而且这个数据是通过值得信任的中间人传递过来的。在大多数情况下,这都能够良性运转,但我们使用的网站和网络必须要注册才能合法运营,监管部门有权力强迫它们做很多事情。

这是一件好事,可以用来帮助解决犯罪或从网络上删除非法内容,但也有很多情况下,这种权力被滥用。

它让我们的数据更容易遭受攻击

互联网真正可怕的一面是个人数据的集中化。那些为我们提供服务的大公司都有大量的数据 —— 这些数据包含了足够的信息,可以预测你将要购买什么,你会投票给谁,你可能会买房子,甚至你可能会有多少孩子。这些信息足以用你的名义去办理一张信用卡、一笔贷款,甚至是用你的名字买一所房子。

今年早些时候,信用报告机构 Equifax 丢失了 1.4 亿名客户的数据,这是历史上最大的数据泄露事件之一。真正阻止这类事件再发生的唯一办法是:一开始就不收集这么大规模的数据。

什么将取代云?

在这个领域,我已经阅读了大量的文献,并且已经非常确信点对点是我们未来的发展方向。点对点技术是用协议和策略来取代我们所知道的网络构建模块,解决我上面提到的大部分问题。目标是完全分布式的,永久冗余的数据存储,每个参与网络的用户都在存储其中一些可用数据的副本。

如果你听说过 BitTorrent(比特流),那么下面这些内容听起来应该会很熟悉。在 BitTorrent 上,要下载一个文件,你只需要一个”内容指纹“就行了。然后你的 BitTorrent 客户端将会按照”内容指纹“找到那些拥有文件片段的用户,并从他们那里把一个个文件片段下载下来。

一个有趣的点是如何去匹配用户。BitTorrent 使用了名为 Kademlia 的协议。在 Kademlia 里,网络上的每个对等点都有唯一的 ID 号,其长度与唯一的块 ID 相同。不过,块 ID 并不需要随机选择,而是使用一种加密散列,能够保证用户不可能下载原始的数据之外的其他数据。

另一个有趣的特性是,通过将一个块的 ID 嵌入到另一个块的内容中,你可以将二者以一种不会被篡改的方式连接在一起。如果链接块的内容发生变化,它的 ID 将会改变,链接也会被破坏。如果修改了嵌入式链接,那么包含块的 ID 也会随之改变。

这种将一个区块的 ID 嵌入到另一个区块的机制,使得创建这样的区块链成为可能甚至是更复杂的结构,通常被称为有向无环图( Directed Acyclic Graphs ),简称 DAG 。

Merkle DAG 的一个常见例子就是 Git 存储库。Git 将提交历史和所有目录和文件都保存在一个巨大的 Merkle DAG 中,在这个新网络上,每一张独一无二的图片都只存在一次。

像 Kademlia 、Merkle 链和 Merkle DAG 这样的协议,给我们提供了建模文件层次和修订时间线的工具,并在一个大型的 P2P 网络中分享它们。目前已经有一些协议使用这些技术来构建符合我们需求的分布式存储,看起来很有希望的是 IPFS 。

名称和共享问题

通过以上这些技术,我们可以解决我在开始时提出的问题,这些设备可以记录文件的历史,并在需要的时候保留所有版本。这几乎解决了可用性、容量、持久性和内容验证问题,甚至还解决了带宽问题。

所以现在我在 Slack 上看到的图片可以来自我旁边的同事,而不是来自 Slack 的服务器。不过,如果要发布一张照片,我需要更新一个通道( channel ),这个听起来相当简单的事情却是整个体系中最难的部分。

最困难的部分:实时更新

一个实体的概念会随着时间的推移而改变,这实际上只是人类专属的想法,让世界在我们的头脑中拥有秩序感和稳定。我们还可以把这样的实体看作是一个身份或名称,随着时间的推移,它会呈现出一系列不同的价值。在电脑中模拟信息是一种更自然的方式,会产生更自然的结果。

在中心化的系统中,几乎所有的 Web 应用程序都有一个中央实体来决定这个结果,并对事件进行序列化。然而在一个分布式系统中,每个人都是平等的,因此需要有一种机制来确保网络上能够达成共识。

对于一个真正的分布式网络来说,要想解决这个问题,最困难的问题就是我们今天正在使用的所有应用。它不仅会影响并发更新,还会影响其他需要“实时”更新的更新 —— 随着时间的推移,“真相的单一来源”正在发生变化。这个问题对于数据库来说尤其困难,它也会影响到其他关键服务,比如 DNS 。

公共文件网络中的隐私问题

需要解决的一个明显问题是:如何在不公开的情况下将内容存储在分布式的集群中。本质上我们有三个层次的隐私:公共的、隐藏的和私密的。

依赖加密技术一开始可能听起来很冒险,但实际上并没有比我们今天做的更糟糕。如果我们转而以一种本质上是公开的方式来存储私人数据,那么我们就不得不保护它,这样对任何获得访问权限的人来说都是不好的。

这一领域有趣的挑战是:在一群需要随时间推移而改变的人群中,建立一个能够验证身份并共享私有数据的良好系统。

从云到雾

尽管要解决一些难题,我们从云计算中迁移出去,将会是一个非常令人兴奋的未来。

首先,在技术方面,我们应该从点对点网络中获得相当多的改进。内容可寻址存储、可以在不受信任的授权情况下,提供对内容本身的加密验证,并进行永久的托管。在某个时候,甚至连数据中心都可能成为历史。

对于运行 Web 应用程序的企业来说,这一变化将会节省巨大的成本。企业也将能够减少对宕机风险的关注,更多地关注增加客户价值,让所有人受益。我们仍然需要云托管服务器,但它们只是众多同类服务器中的一种。

对企业和客户来说,另一个巨大的好处是对客户数据的处理。当不再需要集中存储大量的客户信息时,丢失这些数据的风险就会降低。软件工程界的领导者们一直认为:在互联网上,客户向企业的程序发送数据的设计是一种退化,企业应该向客户发送程序,以让他们能够执行私人的数据,而这些数据不会被直接共享。这样的模式似乎更安全,并且也不会以任何方式阻止企业收集他们所需的有用的用户指标。

这种类型的应用程序架构似乎是一种更自然的方式,来提供大规模计算和软件服务,而且也更接近于开放信息交换的想法,任何人都可以方便地向他人转发内容,并控制可以发布和访问的内容,而不是由拥有服务器的私有实体来控制。

对我来说,这是非常令人兴奋的。这就是为什么我想要组建一个小团队,在几周内用上面提到的一些技术来构建一个简单的移动应用来证明概念,并展示可以通过点对点网络来做些什么。

目前我所拥有的唯一一个足够小的想法,能够相对快速、足够有趣,足以证明这种方法的特性是一个点对点的、真正无服务器的克隆版 Twitter ,但这并不特别令人兴奋。

原文链接:https://venturebeat.com/2017/11/07/amazons-audible-launches-audiobooks-for-chinese-speakers-living-abroad/

责任编辑:刘海星


相关文章

相关标签/搜索