由于每月有10亿多活跃用户,不难想象在Facebook网络上传输的大多数数据是向终端用户传送照片、更新状态和“赞”等数据,但是还远远不止这些。
Facebook几位高管周三称,Facebook内部数据中心的服务器之间传送的数据量是这些服务器向终端用户传送的数据量的1000倍。Facebook高管谈论了这种情况给Facebook带来的挑战以及Facebook为了克服这些挑战正在开发的网络技术。
Facebook负责基础设施工程的副总裁Jay Parikh在旧金山召开的GigaOm结构会议上接受采访时说,我们的机器之间的通讯流量远远超过了机器与终端用户之间的通讯流量。
那是因为Facebook在后台做的全部处理工作是要搞清楚它需要把什么数据发送给终端用户。这个系统通过分析数据、排名结果以及执行多项其它任务来生成Facebook提供给用户智能手机和网络浏览器的网页。
这个问题是,Facebook现在使用的是为不同时代设计的网络设备和协议。这些设备和协议是为互联网服务提供商设计的,而不是为Facebook这样的公司设计的。互联网服务提供商的主要任务是为终端用户提供链接服务,Facebook则是向用户大量地提供应用和内容。
Facebook负责网络运营的主管Najam Ahmad说,有一种结果就是数据瓶颈,Facebook同时面临着骤发洪水、梗阻点和各种各样的情况。Ahmad在GigaOm结构会议上也提到了同样的问题。Ahmad说,我们的一项服务每秒处理25亿项操作,也就是在线路上发送许多数据包。
另一个问题是网络技术对于Facebook正在运行的各种类型的应用还不够智能也不够灵活。目前的应用程序和网络之间还没有办法进行沟通。应用程序只是把数据放在网络上,希望数据发送到另一端。
Ahmad称,我们将推出一些技术,让应用程序更好地理解网络正在做什么:网络在什么地方拥有容量,在什么地方存在问题 … 以及你能在什么地方找到更好的路径。
它将以许多方式解决网络难题。一个方式是通过OCP(开放计算计划,Open Compute Project)计划设计一种新的交换机硬件。OCP是是一家跨业公司为互联网规模数据中心制造新型设备的成果。OCP计划于今年5月宣布其初始目标是设计一种不与任何操作系统捆绑的架顶式交换机。
此外,Parikh周三说,Facebook正在开发一种网络“结构”,实际上,这是Facebook自己的软件定义网络。软件定义网络是指一套技术,这种技术把网络控制功能从专用交换机和路由器转移到能够在各种标准硬件上运行的软件。
对于Facebook来说,这种新的结构应该意味着降低运行成本且更迅速地提供新服务的能力。对于终端用户来说,它应该意味着更好更快的运行服务。
网络过去使用一种三层结构,其设计主要是从存储系统提取数据,通过服务器传送给终端用户。Ahmad说,Facebook需要一种更好的架构,这种架构可以更适合在机器之间传送数据。
Ahmad说,如果你能够建造一个每个机柜、每个机架都在相同水平上的架构,并且任何两台机器之间的连接都是一致的,那么,你就有更好的机会管理这些应用程序。且这个构造可以比我们目前拥有的物理层次建立系统更合乎逻辑。
这个软件层将允许Facebook更快地向网络添加一些功能。目前,在Facebook应用中正在发生的技术创新比在网络中发生的技术创新快许多。这里存在着巨大的不匹配问题。我们如何让网络开发进展的更快一些?这就是软件定义网络解决的问题。
五个Facebook用户中就有四个不是在美国的,运营自己的网络能够让Facebook降低成本,并且允许Facebook在需求增长时更迅速地提高网络容量。Ahmad说,我们谈论的是在几秒钟或者几分钟之内提高网络的容量,而不是像现在这样用几个星期或者几个月的时间提高网络容量。
Facebook并非唯一的一家开发新技术以支持自己提供的独特服务的在线公司。谷歌也有其独到之处就是通过自己设计的服务器硬件,使其数据中心更节能。谷歌开发的分析大型数据集的MapReduce软件最终成为了Hadoop的基础。