【IT168 编译】众所周知,谷歌对其数据中心一直实行着严格的保密,不过同属著名科技公司的Facebook却不是这样。近日,这家社交媒体巨头以开源的方式发布了两款重要工具——而这两款工具曾只在其内部使用。
其一是Katran,这个负载均衡器的作用是使该公司的数据中心不会过载,它是GNU通用公共许可证v2.0下的开放源码,可以从GitHub上获得。除了Katran之外,该公司还提供了关于Zero Touch Provisioning tool的详细信息,该工具用于帮助工程师自动化其构建主干网络时所需的大部分工作。
这并不是Facebook第一次尝试开源软件。上个月,该公司开放了PyTorch的源代码,这是一款用于人工智能(AI)和机器学习项目的软件。PyTorch是一个基于python的包,用于编写张量计算和使用GPU加速的深度神经网络。
这类软件包是Facebook必须自主开发的,尽管市面上有很多现成的软件产品,但并没有哪一款是为一家拥有20亿用户的全球社交媒体公司开发的。
Facebook负载均衡工具的详细信息
这则消息来自Facebook的生产工程师Nikita Shirokov和软件工程师Ranjeeth Dasineni的博客。两人表示,该公司此前曾开发过自己的负载平衡软件,主要基于开源软件。四年来,它提供了很好的服务,但随着时间的流逝,也开始显示出它的局限性。
他们写道,负载均衡器必须满足四个标准:必须在普通的Linux服务器上运行;与给定服务器上的其他服务共存,消除对专用负载平衡服务器的需求;允许low-disruption维护;仪器安装和调试简单。
Shirokov和Dasineni说,他们的第一个软件定义的负载均衡器称为第四层负载均衡器(Layer 4 load balancer或简称L4LB),在与其他服务标准(特别是后端)共存时出现了不足。
“在第二个迭代中,我们利用了eXpress Data Path (XDP)框架和新的BPF虚拟机(eBPF)来运行软件负载均衡器,以及大量机器上的后端。”他们写道。
Facebook的零接触服务开通工具的详细信息
Facebook的零接触服务开通(ZTP,Zero Touch Provisioning) 工具背后的细节也来自大约三周前Facebook的一些工程师写的一篇博文。ZTP允许你自动地在你的网络中提供新的交换机和路由器,不需要人工干预。
对于像Facebook这样规模的公司来说,必须建立自己的网络,这就是它需要一个ZTP工具的原因。与负载平衡一样,该公司发现现有的ZTP工具不足以处理Facebook运行的业务规模。
“最终,这些挑战促使Facebook的网络工程师去开发一种全新的网络部署工作流方法。”博客作者说。
因此,它创建了一个名为Vending Machine(“自动售货机”)的新框架,只是在这里,输入的是设备角色、位置和平台,而不是投进去硬币然后得到一瓶饮料。ZTP仍在发展中,Facebook也在增加新的功能和功能。
Facebook尚未披露ZTP的许可证。就像Katran一样,如果你决定使用这些工具,一切只能靠自己。一个“善良”的Facebook工程师也许会帮助回答一些使用中遇到的问题,但官方也许不会提供支持文档之类的。所以,笔者也很好奇谁会真正使用这些软件,因为它们并不是中小型企业的“菜”。它看起来是为大型企业设计的,而且多数大型企业都有自己的平台。当然,这个只是一面之词,不是绝对的。