【翻译】Google发现:集中控制,分布式数据架构,比完全分布式的架构工作的更好

  • A+
所属分类:操作系统

原文地址:Google Finds: Centralized Control, Distributed Data Architectures Work Better than Fully Decentralized Architectures
初次翻译,如有错误请指出。

 

多年以来,在软件构技术领域中,分布式服务和集中式服务一直在争论。集中式构架,至少在管理和控制层面是赢家。而且,Google不仅仅统一,他们还是这个模型的忠实支持者,即时在那些你认为不适合工作的地方。
这是一个摘录,来自Google的Lifts Veil在“Andromeda”虚拟网络。一篇来自Timothy Morgan的优秀文章。它包括一个报价,来自money quote,一个杰出工程师以及Google的网络技术主管。

像许多Google创造的大规模服务,Andromeda网络进行了集中控制。顺便提一下,正如是Google文件系统和MapReduce调度系统被模仿时,导致了Hadoop的诞生。BigTable NoSQL数据存储也是如此,它们催生了许多类似的复制品。甚至是尚未被克隆的B4 WAN和Spanner分布式文件系统。
“我们看到的是逻辑上的集中。分层次的控制层面与一个对等网络数据层面的节奏上完全分散。”Vahdat在他的演讲上解释道。“所有在这些层面上飞翔的传统智慧。”他继续说道,提到以上所有的项目,并补充说在2002年,Google让所有人吃了一惊,例如,建立一个大规模存储系统像GFS来集中控制。“此时,我们在设计模式上相当有信心。我们能建立一个本质上更高效的系统通过谨慎利用集中化而不是通过一个对等网络来管理”

这个文章的环境是Google令人影响深刻的家酿啤酒,SDN(软件定义网络)系统,它使用一个集中式控制构架而不是互联网式分散自治系统模型,互联网像使用路由协议链接的个体岛屿。

SDN完全改变了模型,Greg Ferro如此解释道:

SDN和传统网络的主要区别在于基础控制网络的模型。在软件定义网络,一个集中控制有一个完整的端到端视图关于整个网络,以及关于所有网络路径和装置功能驻留在单个应用程序中。因此,控制器可以计算路径,基于源地址和目的地址。正对不同的网络流量状况使用不同的网络路径,以及快速响应改变网络条件。

除了提供这些特性,控制服务还作为单点配置。这使得整个网络在单一的一个节点具有完全的可编程性,最终使网络自动化,这是SDN最有价值的方面。
所以,一个集中式控制器知道所有,看到所有,通过直接编程路由器固定线路。有一句老话说,慢的BGP(边界网关协议)收敛时间在错误之后会杀死性能。使用你自己的SDN在你的硬件错误时立即作出反应。集中式控制器会编程路由,使用一个可能预先计划好的代替路线。这对于今天的云基础系统是一个关键特性,高可用性需求,低延迟链接,即时在广域网。
控制器是一个单一的过程意味着什么?没什么,这是逻辑上的集中,但是可能是分布在许多机器上比如一个典型的服务器构架。这就是它如何扩展。考虑到今天的大型机,大内存和高速网络,对于除特大问题外的大多数问题,为性能原因而采用完全去中心化的架构是不具有说服力的。

 

在互联网规模,自治系统模型在逻辑上和物理上分布式依然是赢家。它的规模惊人,但是在协调成本上的高代价,以及缓慢的反应时间,在过去是很好的构架,但是并不适合现在的网络工作需要。

Google并不在互联网上运行,它运行在自己的专用特殊网络上,针对自己的特殊需要来组合。为什么他们使用一个在广义技术上却为了完全不同的目的。
我们能看到集中化在服务中赢得了用户

Enamil和NNTP,都是分布式服务,虽然没有消亡,但已经让位给了集中式服务,像Twitter,facebook,G++,WhatsApp以及推送通知。虽然分布式在后台几乎每个软件服务中都扮演了一个很重要的角色,但是这些服务本身在逻辑上是集中地。
集中式使得很多事情变得容易,搜索,打个比方,如果你搜索你需要的所有数据在某个地方。这就是为什么Google爬行网页以及存储他们在一个十分巨大的口袋里。身份是一个最好的集中。等事情遵循一个流程,加入,配置,A/B测试,平凡的推送,迭代设计,欺诈检测,DDoS防御,深入学习,以及几乎任何高价值的你想创建的添加特征。
而且,有一个远程尸体并没有在你的控制,像一个你的产品中的关键组件出现了引人注目的高延迟,以及改变用户体验由于一个失败。这不是你想要的服务,端到端的控制是创造一个体验的关键。

所以,当你认为一个完全分散的构架很难有这样的功能或者可伸缩性,你就需要去看看其它的了。

分布式也是一个政治选择
尝试去家里一个分散,或者联合Twitter服务,打个比方,虽然技术上可行,还没有爆炸式被常规的采用。很简单的原因即时集中工作以及作为一个用户,你想要的就是你工作的。这是最主要的,第二性质就像安全性,拥有自己的数据,弹性,自由言论,等等。除了更重视些,几乎没有什么已知的更多问题。
但是对于另一些,第二特性正式他们的最佳奖项。Doc Searls的作品中《 Escaping the Black Holes of Centralization 》,用这个分散化的例子,说明人权和政治自由的重要性。一个完全分布式和一个加密的P2P聊天系统难以向由一个不知名的大公司运营的集中式服务妥协。
当你思考你自己的系统构架时

如果这是个人使用的,或者它运营于互联网或者有行星般网络的规模,或者它必须在其它方面自主操作,那么联合是你的朋友。

如果你的系统是小的,那么一个完整的集中式构架依然很有吸引力。

对于广阔的中间立场,谷歌已经显示了集中管理以及控制结合分布式数据已经成了现在规范化的构架。不要试图让一切工作分布式,你可能并不需要它,而且,这真的很难很难。
不过,话又说回来大洋洲一直和东亚处于战争中。

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: