举例来说,Facebook在过去十年就打造了一个包含15个大型数据中心以及数百边缘网络站点的全球性网络,负责运作服务数亿用户、数以千计的软件程序,而且每两个小时就有一次软件更新。该公司工程与基础建设主管Jay Parikh表示:“当你正在打造的分布式系统每天会影响数十亿人,真的很酷…也很吓人。”
举例来说,Facebook在过去十年就打造了一个包含15个大型数据中心以及数百边缘网络站点的全球性网络,负责运作服务数亿用户、数以千计的软件程序,而且每两个小时就有一次软件更新。该公司工程与基础建设主管Jay Parikh表示:“当你正在打造的分布式系统每天会影响数十亿人,真的很酷…也很吓人。”
Parikhy在该公司首度于美国加州总部举行的大型分布式软件系统研讨会上,对台下约200名软件工程师与来宾表示:“我们处理的所有事情都是分布式系统问题,这在过去的扩展式(scaled)环境中是从未做过的…包括自己布建海底电缆──都是这个产业以往不曾处理过的。”
他指出,计算机与网络硬件遭遇的挑战,还有在硬件中执行的数据库与其他软件“会相互影响,衍生出关于效率、文化、预算编列…等等问题,所有事情都会互相连结。”
这场活动还邀请到了来自亚马逊云端服务(Amazon Web Services)、Google、共乘服务业者Lyft,以及电商平台Shopify等公司的程序设计师,分享最新的技术,以及探讨利用包括管理全球性分布式数据库、系统除错,还有如何在系统中断时加速复原等议题。
Facebook讨论了两项开放源码分布式软件系统工作的进展,一是能快速将配置变化推送到数以百万计服务器的架构,另一项是处理操作系统用户空间中内存失序问题的程序。
它们是Facebook为了支持旗下四大被广泛使用之应用程序──News Feed、Instagram、Messenger与WhatsApp──以及用户族群规模较小的Oculus软件,所打造之广大云端运算软件平台的一部分。
一个Facebook数据中心的概念图,包含两个60MW数据中心(前面)和三个30MW建筑物。 (图片来源:Facebook)
Facebook一直在慢慢将网络架构中的现成商用软硬件以自家开发的软件或硬件方案来取代,并将之转为开源;举例来说,在过去几年,该公司将现成的数据库(MySQL)、储存(Memcached)程序与网络服务语言(PHP),以自家开发的程序代码取代,并释出为开源码。
在总部举行的这场Systems@Scale活动,也是为了要让Facebook的软件工程师能与其他公司的同业相互交流,目标是加速为他们面临之分布式系统挑战寻找通用解决方案的脚步。
在硬件方面,Facebook现在一般都是使用以现成芯片、采用自家规格打造的服务器与交换机,而非来自供应商的商用系统。有业界消息指出,Facebook从今年春天起就一直在招募半导体工程师;该公司发言人婉拒对此发表评论,仅透露可能会在9月举办的一场活动中讨论到关于芯片开发的计划。
Facebook的系统硬件规格通常透过2011年成立的Open Compute Project释出开源码,该公司是否也会在未来将自己设计的芯片规格开放,还有待观察。
Facebook在全球有15座大型数据中心,但其实比起Amazon截至2017年在全球的18个据点仍相形见绌;Amazon的据点各有数量不一的数据中心(黄圈中的数字)
(来源:“Computer Architecture: A Quantitative Approach,” Hennessy/Patterson)
另一个更大的问题是,Facebook与其竞争对手要以疯狂的速度将运算世界的未来带向何方,还有他们可能遭遇的瓶颈为何?
某些美国的立法者认为,Facebook因为在上一次总统大选让外来者利用其自动化系统影响了数以百万计的选民,已经触及了政治上的一道障碍;也有人说他们是在玩弄消费者,那些无辜使用者开心分享的每一项数据都被贩卖,但是到目前为止几乎不受政府监督。
在技术上,这家网络巨擘多年来推动速度更快的铜缆与光学网络,他们同时需要这两种技术来数据中心内连结数量更庞大的服务器以及数据中心本身。
多年来,网络工程师在催生Terabit/sec等级网络的行动上一直有所延迟,Terabit/sec网络的速度超越其他商用需求,在某些程度上甚至超越了摩尔定律或物理定律的极限。无论Facebook等公司不断扩大数据中心规模的趋势将会带来什么结果,显然我们会很快看到。
未来的场景就如同Parikh所言,会“很酷也很吓人”;网络巨擘们正在以前所未见的速度打造、扩充大型自动化系统,数以百亿计的消费者与成千上万的企业,则正在大量吞噬他们运作的各种服务。他表示:“让我振作的第一大动力,就是在稳定的基础建设上快速行动。”
编辑:NIKI
举例来说,Facebook在过去十年就打造了一个包含15个大型数据中心以及数百边缘网络站点的全球性网络,负责运作服务数亿用户、数以千计的软件程序,而且每两个小时就有一次软件更新。该公司工程与基础建设主管Jay Parikh表示:“当你正在打造的分布式系统每天会影响数十亿人,真的很酷…也很吓人。”