Facebook 开源分布式网络软件 Open/R

2017 年 11 月 16 日 云头条

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)上。真是莫大的福利!


相关阅读:

中高端IT圈人群,欢迎加入!

赏金制:欢迎来爆料!长期有效!

Facebook AI 将“早安”翻译成“攻击他们”,导致无辜男子被捕!

嘿,大厂商:Oracle、苹果、谷歌、亚马逊和Facebook将更多的钱砸在了游说上!

Facebook 会使用 Apollo 取代 MySQL 数据库吗?

Facebook开源LogDevice:一种用于日志的分布式数据存储系统

为了方便收购和抄袭,Facebook搞了个预警系统“早鸟”发现新科技

Facebook 运行在 AWS 上 1 年成本约为 59.7 亿美元!

Facebook开源捕捉代码缺陷的自家工具:OneWorld、Jupiter、AL

Facebook是如何存储每天20亿张照片的——Cold Storage系统揭秘



登录查看更多
0

相关内容

Facebook 是一个社交网络服务网站,于 2004 年 2 月 4 日上线。从 2006 年 9 月到 2007 年 9 月间,该网站在全美网站中的排名由第 60 名上升至第 7 名。同时 Facebook 是美国排名第一的照片分享站点。 2012年 2 月 1 日,Facebook向美国证券交易委员会提交集资规模为 50 亿美元的上市申请。
异质信息网络分析与应用综述,软件学报-北京邮电大学
专知会员服务
80+阅读 · 2020年6月20日
【干货书】现代数据平台架构,636页pdf
专知会员服务
253+阅读 · 2020年6月15日
【Facebook AI】低资源机器翻译,74页ppt
专知会员服务
29+阅读 · 2020年4月8日
专知会员服务
123+阅读 · 2020年3月26日
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
最新版本开源情报工具和资源手册(一)
黑白之道
9+阅读 · 2019年6月23日
无人驾驶仿真软件
智能交通技术
21+阅读 · 2019年5月9日
分布式入门,怎样用PyTorch实现多GPU分布式训练
机器之心
7+阅读 · 2019年5月3日
开源神经网络框架Caffe2全介绍
人工智能学家
3+阅读 · 2017年12月11日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
资源 | 适合AI新手的9款人工智能开源软件
AI100
3+阅读 · 2017年11月13日
33款可用来抓数据的开源爬虫软件工具 (推荐收藏)
数据科学浅谈
7+阅读 · 2017年7月29日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Arxiv
35+阅读 · 2019年11月7日
Arxiv
6+阅读 · 2019年8月22日
Relational recurrent neural networks
Arxiv
8+阅读 · 2018年6月28日
Arxiv
6+阅读 · 2018年3月25日
Arxiv
6+阅读 · 2016年1月15日
VIP会员
相关VIP内容
相关资讯
21个必须知道的机器学习开源工具!
AI100
13+阅读 · 2019年9月13日
最新版本开源情报工具和资源手册(一)
黑白之道
9+阅读 · 2019年6月23日
无人驾驶仿真软件
智能交通技术
21+阅读 · 2019年5月9日
分布式入门,怎样用PyTorch实现多GPU分布式训练
机器之心
7+阅读 · 2019年5月3日
开源神经网络框架Caffe2全介绍
人工智能学家
3+阅读 · 2017年12月11日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
资源 | 适合AI新手的9款人工智能开源软件
AI100
3+阅读 · 2017年11月13日
33款可用来抓数据的开源爬虫软件工具 (推荐收藏)
数据科学浅谈
7+阅读 · 2017年7月29日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
相关论文
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Arxiv
35+阅读 · 2019年11月7日
Arxiv
6+阅读 · 2019年8月22日
Relational recurrent neural networks
Arxiv
8+阅读 · 2018年6月28日
Arxiv
6+阅读 · 2018年3月25日
Arxiv
6+阅读 · 2016年1月15日
Top
微信扫码咨询专知VIP会员