Google揭露“仙女座”虚拟网络,及分散和集中架构之辩

2023-10-13 07:18

本文主要是介绍Google揭露“仙女座”虚拟网络,及分散和集中架构之辩,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转摘自  http://www.csdn.net/article/2014-04-14/2819289-google-finds-centralized-control-distributed-data-architectu


【编者按】在软件体系结构上,分散和集中的使用一直存在着争议。同时,随着网络带宽、硬件成本、内存的容量变大,分散式似乎大有可为。然而,从创新不断的Google身上,我们似乎看到了一些别的东西。下面我们一起看HighScalability创始人TodHoff的报道,以下为原文:


在软件体系结构趋势中,分散式服务的理念与集中式服务带来的能力及实用性之间一直存在分歧。然而现在看来,集中服务,至少在管理和控制平面层更胜一筹。Google不仅赞同这种模式(他们一直以来都是这种模式的狂热采纳者),还在你意想不到的地方投入使用。

这里摘抄Timothy Morgan一篇非常棒的博文——《谷歌掀开“仙女座(Andromeda)”虚拟网络的神秘面纱》,其中还引用了Google杰出的工程师和网络技术负责人Armin Vahdat的话:

“像Google创建的其他多数服务一样,Andromeda网络采用的是集中控制。顺便提一下, GFS整个数据处理平台(Hadoop启发系统),BigTable(为市面上大量NoSQL模仿),甚至B4WAN网络及Spanner这样尚未被模仿的系统都使用集中控制。

我们可以看到,一个带有P2P数据平面且逻辑集中的分级控制层服务完胜全分散式服务。Vahdat在他的keynote中写道,“这一切都冲击着传统的思想,”他继续说道:“除了上述项目,所有人都会对Google早在2002建立的大型存储系统GFS而感到震撼。对于这个设计模式,我们是非常有信心的。我们通过审慎利用集权而不是以对等且分散的管理方式,从根本上建立一个更高效的系统。”

文章的背景是谷歌的令人印象深刻的自主研发SDN系统,它使用了集中控制而不是互联网的Autonomous System,其将互联网看作一座孤立的岛屿,通过路由协议与“外界”联系。GrregFerro解释道,SDN完全改变了传统的模式:

SDN和传统网络之间的主要区别在于:SDN是基于控制器的网络模型。软件定义网络的集中控制器涵盖了整个网络端到端的视图,它将所有的网络路径和设备能力信息保存在一个应用程序中。因此,控制器可以基于源地址和目的地址计算它们之间的路径;针对不同流量类型决定不同的网络路径;并快速响应不断变化的网络环境。

除了提供这些特性之外,该控制器还可作为一个可配置节点。SDN最有价值的一方面就是:它可以通过这个单一配置节点控制整个网络并编程以实现自动化。

所以,集中控制器知道并能看到一切,它可直接编程实现硬连线的路由。以前,当发现错误后带来的BGP收敛时间会损耗性能。现在,您硬件上有了SDN,那么故障响应会非常迅速,因为集中控制器将会按照会预先计算出的可替代路由来编码路由。这也是当下云系统能具有高可用性、低延时连接,甚至跨越广域网的一个主要原因。

那么,这是否就意味着该控制器是一个单一的过程呢?也不尽然。它只是在逻辑上集中,同样可以像任何的典型服务体系结构一样,在众多的机器中(物理上)实现可分布式。这就是它扩展的方式。除下规模达到了非常大的程度,而想要采用完全分散式的架构显然是不明智的(即使在这个硬件便宜,内存和网络带宽飞速发展的时代)。

就互联网规模而言,逻辑和物理上分散式的 Autonomous System 模型仍然有所作为,它有良好的扩展性,虽然以极高的协调成本和缓慢的响应为代价。然而,在过去,这是可行的,但对于今天的网络需求,已经不再有优势。

谷歌玩的不只是互联网,而是具有特定需求的特殊网络合集。那么,他们为什么会对完全不同的需求使用一个通用的技术?

集中式赢在其构造出的产品广受欢迎

电子邮件和NNTP,都是分散式服务的代表,但是已经让位给了集中式服务,如Twitter,Facebook,G+和WhatsApp等推送服务。

集中化使得很多事情变得更加容易,例如搜索。如果你想要一个非常棒的搜索,那么你就需要在一个地方得到所有的数据,这就是为什么谷歌抓取网页并存储起来的原因。集中化最大优点就是保持一致性,例如追踪清单、关联、A / B测试、频繁推送、反复设计、欺诈检测、DDoS攻击防护、深度学习,以及创建具有高附加值的任何类型功能。

另外,如果你将一个不在控制下的远程实体作为产品的一个重要组成部分,必会导致一个长延迟和失败的用户体验,这并不是你在服务中想得到的东西,端到端控制才是创造良好用户体验的关键。因此,特性或可扩展性上全分散式架构毫无优势。

全分散式有时也是一种政治选择

例如,使用分散或 federated的方式创建Twitter,虽然这在技术上是可行的,却没有被普遍采用。原因很简单,集中式有效且能达到用户的要求,这个是最主要的原因。次要原因,如安全、拥有自己的数据、应变能力、言论自由等,虽然对于有些公司来说比较重要,但是通常情况下对许多公司都没有影响。

Doc Searls在像“逃出集中式的黑洞”这样的文章中提到一个分散式涉到人权和个人主权问题的例子,干预1个由大型匿名公司控制的全分散式且P2P加密的聊天系统要比1个集中式服务难得多。

那么开发者究竟该如何选择

如果是出于个人主权的考虑,或者是基于网络或跨地理位置,或者必须自主运行的,那么federated将会是你最好的选择。

如果您的系统非常小,那么完全集中式架构还是相当有吸引力的。

同时,对于处于广大中间地带的朋友们,谷歌已经证明:结合分布式数据并集中管理和控制基本已成为现在的规范架构。不要试图使一切工作都分布式,构建难度会让你望而却步。

原文连接: Google Finds: Centralized Control, Distributed Data Architectures Work Better than Fully Decentralized Architectures(翻译/陶星 责编/仲浩 )



这篇关于Google揭露“仙女座”虚拟网络,及分散和集中架构之辩的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201618

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

【Altium】查找PCB上未连接的网络

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标: PCB设计后期检查中找出没有连接的网络 应用场景:PCB设计后期,需要检查是否所有网络都已连接布线。虽然未连接的网络会有飞线显示,但是由于布线后期整板布线密度较高,虚连,断连的网络用肉眼难以轻易发现。用DRC检查也可以找出未连接的网络,如果PCB中DRC问题较多,查找起来就不是很方便。使用PCB Filter面板来达成目的相比DRC

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

VirtualBox中,虚拟系统文件VDI移动或者复制

在安装virtualbox以后有时需要复制,移动虚拟磁盘等操作,这些操作在vmware的虚拟机下面可以直接操作虚拟磁盘即可使用,但是在virtualbox环境 下每个VDI 文件都有一个唯一的uuid,而VirtualBox 不允许注册重复的uuid,所以直接复制的VDI文件是不能拿来使用的,我们就需要使用到virtualbox自带的管理命令来克隆一个VDI,这样通过命令克隆的VDI文件会重

响应式架构

介绍 响应式架构(Reactive Architecture)是一种面向服务和事件的系统设计方法,旨在提高系统的可扩展性、弹性和容错能力。它适用于构建分布式系统,特别是在云环境和微服务架构中。响应式架构的核心理念是通过事件驱动和数据流来实现各个组件之间的解耦,从而提高整个系统的响应能力和可靠性。 响应式架构的主要特点包括: 响应性:系统能够快速响应外部事件和内部变化,确保在各种负载和故障情

大型网站架构演化(六)——使用反向代理和CDN加速网站响应

随着网站业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问网站时,速度差别也极大。有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开。为了提供更好的用户体验,留住用户,网站需要加速网站访问速度。      主要手段:使用CDN和反向代理。如图。     使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速

大型网站架构演化(五)——数据库读写分离

网站在使用缓存后,使绝大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过大而成为网站的瓶颈。      目前豆粉的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站利用数据库的这一功能,

大型网站架构演化(四)——使用应用服务器集群改善网站的并发能力

使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去更换更强大的服务器,对大型服务器而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。 对网站架构而言,只要能通过增加一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统

大型网站架构演化(二)——应用服务和数据服务分离

随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这时就需要将应用和数据分离。应用和数据分离后整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器,如图。              这三台服务器对硬件资源的要求各不相同: 应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU;