Facebook 开源分布式网络软件 Open/R
Open/R是这个知名社交网站和Terragraph无线互联网项目的一个核心部分。
位于北卡罗来纳州弗里斯特城的Facebook数据中心
现在无论你怎么看待Facebook,很难不敬畏它的技术。五年前,情况却远非如此:由于当时系统运行起来踉踉跄跄,时常出现暂时的停顿,大多数用户碰到停运几乎是家常便饭。今非昔比。近几年我发现这个网站唯一带来的问题就是,它浪费了我的太多时间。
考虑到正常显示Facebook页面所必不可少的繁重工作,这是令人印象深刻的成就。而且页面打开的速度还很快。据数字营销公司Zephoria声称,Facebook占到全美页面浏览量(PV)的五分之一,每分钟发布510000条留言。这涉及大量的计算。
它是如何做到的呢?一方面就是借助使用该公司内部开发的一种用途广泛的路由平台:Open/R。
今天这个社交网络开源Open/R,设计需要像Facebook那样高速路由的应用程序的任何人都可以随意使用。它使用“宽松”的麻省理工学院(MIT)许可证来发布,因而它既可以用于开源项目,又可以用于专有项目。此举并不罕见。该公司已开源了大批的软件,如果你希望的话,简直可以用它们来开办一家自己的Facebook山寨公司。这个山寨公司甚至可以在同样的硬件上运行、在类似设计的数据中心中运行,那是由于这些知识产权中大部分也已通过开放计算项目(Open Compute Project)开源。
Open/R平台已经在众多使用场合下得到了证明自身的价值。实际上,它最初不是为了在Facebook本地使用而设计的,而是为Terragraph项目而设计的,这个多节点无线系统旨在把高速互联网引入到密集的城市地区。Terragraph最初计划落实于加州圣何塞,该市最近进入了测试阶段。
圣何塞市主管民间创新的副经理基普•哈克尼斯(Kip Harkness)告诉IT外媒TechTarget的物联网议程(IoTAgenda)栏目:“我们刚完成了把50个设备装到整个城市核心地区的电线杆和交通信号灯上的工作,目前我们正在进行工程测试,以测试网络及其处理流量的能力。如果该系统按照我们希望的来运作,那么你只要在市中心,就可以在笔记本电脑上观看4K高清影片,四处走动也根本不会遇到问题。”
为了做到这一点,Facebook设计了Open/R这个分布式网络平台在Terragraph网络上运行,以应对庞大规模和迅速变化,同时又便于快速扩展。
该项目最初主要引起了负责无线技术的网络人员的兴趣,不过Facebook的工程师认为,它有望解决该社交网站的骨干网即核心网络中的一些问题。
该公司在今天发表的博文中写道:“虽然从网络的角度来看,骨干网与城域无线网状网完全属于不同的领域(骨干网有数千英里长的光纤横跨大陆、穿越海洋、环绕地球),但是它也面临类似的问题。我们新的快速骨干网(Express Backbone)需要控制许多大不一样的路径上的流量和路由,还需要快速响应故障。”
从那时起,Facebook发现了另一个用途:可用在其数据中心fabric上。这提供了与其他用途大不相同的测试场地,这回是在一种高度统一、密集网状网的环境下,有许多可能的路径需要考虑和利用。
换句话说,Open/R已在众多场合下久经考验,适合有需要的开发人员。
它还在积极开发之中,功能特性越来越丰富:
IPv6优先,利用IPv6链路本地地址来实现零接触配置。不需要特殊的网络配置。
需要时支持本地IPv4路由。
通过更庞大的聚合前缀,为网络中的节点实行Ad hoc网络前缀分配和IP配置。
优雅的重启,能够在不干扰流量转发的情况下实现软件实时更新。
支持节点和链路的耗尽(draining)和未耗尽(undraining)。
利用主动式探针,计算和平滑动态链路RTT度量指标。
能够静态或动态地设置自定义度量值。
借助智能退避定时器(back-offtimer),实现快速的网络融合,以查找链路或节点故障。
通过实时可达性探测,持续地检查网络健康状况。
与集中式控制器整合的API。
与所有主要的Open/R进程交互的Python库。
能够扩展平台以传播各种各样的额外信息,甚至可以对路径计算逻辑加以改善或改变。
Open/R的架构示意图
Facebook表示:“虽然传统的路由协议对于技术在过去几十年的进步起到了重要作用,但我们在临近网络需要更快速地发展的时间点。Open/R是一种开放的平台,易于在大规模环境下快速地测试和落实新想法,从而使我们的网络更高效、更快部署、更易管理。”
所有这一切还是免费的,源代码已放在GitHub(https://github.com/facebook/openr)上。真是莫大的福利!
相关阅读:
Facebook AI 将“早安”翻译成“攻击他们”,导致无辜男子被捕!
嘿,大厂商:Oracle、苹果、谷歌、亚马逊和Facebook将更多的钱砸在了游说上!
Facebook 会使用 Apollo 取代 MySQL 数据库吗?
Facebook开源LogDevice:一种用于日志的分布式数据存储系统
为了方便收购和抄袭,Facebook搞了个预警系统“早鸟”发现新科技
Facebook 运行在 AWS 上 1 年成本约为 59.7 亿美元!
Facebook开源捕捉代码缺陷的自家工具:OneWorld、Jupiter、AL
Facebook是如何存储每天20亿张照片的——Cold Storage系统揭秘