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