facebook搞了个万级的网络自动化,用的是robotron

你听说没?Facebook搞了个万级的网络自动化,用的是Robotron。Facebook早就意识到手工配置太不靠谱了,所以就把意图抽象成对象,建了一个叫FBNet的中央大脑。这个FBNet就像Facebook的网络之脑,控制着全球好多服务器、数据中心还有边缘POP。 传统方式真的不行,配置粒度太粗,供应商差异也大,Cisco、Juniper还有Arista各有各的命令系统。版本控制也不好用,每次升级工程师得在多台电脑上操作。 那Robotron是怎么解决这些问题的呢?他们用了三步:设计、生成、部署还有监控。首先工程师在白板上画个草图,系统就会自动生成FBNet对象,把机架、交换机、电路、IP地址都给记录下来。这样设计就有了唯一的身份证。 接下来是配置生成阶段。不同的供应商有不同的命令格式,Robotron用模板库把对象状态自动映射成命令文本。平均一条电路的配置生成时间从15分钟降到了30秒。 然后是安全部署阶段。新配置下发前先在5%的设备上做灰度验证,通过后才推送到其他节点。整个过程对业务完全透明,部署时间最长不超过4小时。 最后是实时监控阶段。所有在线电路每15秒上报一次流量、丢包和邻居状态,Robotron用时间序列数据库把这些指标聚合起来。一旦发现设计意图和实际状态不一致,系统就会在5分钟内发出告警并自动回滚。 Facebook的FBNet也经历了好几次变形呢。最初版本只是一个存IP和环回地址的简陋仓库。后来他们规范化了语法,避免了供应商专有的麻烦。还加入了版本控制和智能审计功能,让大家操作起来更安全。 Robotron的部分组件已经开放给开源社区了呢!比如fbpush这个工具就专门用来多供应商批量部署。Facebook希望更多的运营商能用这个“顶向下”的思路扩容网络,别再去写那些麻烦的脚本了。