BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Facebook使用ZTP扩展网络配置自动化

| 作者 Hrishikesh Barua 关注 14 他的粉丝 ,译者 盖磊 关注 2 他的粉丝 发布于 2018年6月29日. 估计阅读时间: 5 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

Facebook遍布全球的网络是由广域主干网和边缘入网点(PoP,Points-of-Presence)组成的,后者用于支持面向终端用户的请求和内部流量。主干网和PoP均在快速发展中。为满足对网络配置和维护的需求,Facebook的网络工程团队构建了一种使用ZTP(零接触配置,Zero Touch Provisioning)方法的工作流框架,称为VM(Vending Machine)。VM通过运行代码执行各种类型的网络设备配置。

ZTP提供的机制支持无需任何人工介入,从设备的出厂默认状态开始配置交换机等网络设备。ZTP已得到了多家网络设备提供商支持。ZTP包括在设备启动时发送请求(通常通过DHCP)、获取中央服务器的位置、从中央服务器下载并应用配置等,此外还可添加一些自动化工具,例如Chef和Puppet等。网络设备以往通常由运维人员手工使用CLI配置,现在可以通过ZTP实现自动配置。鉴于交换机设备厂商已经开始使用DHCP支持ZTP,Facebook团队正与IP路由器和光交换设备厂商一起致力于实现对类似特性的支持。Facebook团队现已完成重用基于DHCP的自动配置自动化工作。

Facebook过去曾经构建了一些网络自动化工具,但大部分网络配置是通过MOP(规程做法,Method of Procedure)实现的。MOP事实上就是文档化,例如runbooks等,工程人员必须遵章操作。随着部署需求的日益增加,导致企业需要雇佣更多的工程师运行MOP,事情变得更为复杂和易于出错。Facebook最初的配置系统源自于以控制台为基础的系统。但是历经数年的发展,其中已经添加了不少新的角色、路径和平台,这使得基于MOP的系统更难以使用。VM(Vending Machine)框架正是应此需求而生。据文章介绍,VM以“设备角色、定位和平台”为输入,返回“最新配置的网络设备,以及准备好交付的生产流量”为输出。

Facebook工程师在一次演讲中,介绍了企业构建VM的动机:

设备响应DHCPDISCOVER消息,之后或是给出一个配置文件,或是提供一个可在网络设备上执行的配置脚本。对于后者而言,脚本如何执行,以及脚本是否适合,取决于不同的设备厂商(目前为止如此)和网络角色。设备通常会在完成自身的配置后重启。现实中,在设备发布到生产环境之前,工程人员通常会有其它事情在做。因此配置不能先于物理安装设备而生成。但是如果配置没有预先生成,那么如何使用配置文件响应DHCP请求?这一问题促使我们去开发一个工作流自动化系统,实现对ZIP机制的包裹(wrap)。

演讲中指出,Facebook必须改进其DHCP栈。构建VM时,Facebook的DHCP栈基于ISC的开源DHCP服务器的。VM工作流的起始点是一块特定的Python代码,该代码将通过标准ZTP方法下载到网络设备上。Python代理从VM服务器下载指令、配置、固件和补丁到网络设备,进行安装,并返回输出日志和退出状态给VM。

图片来源:https://code.facebook.com/posts/166812063987311/scaling-the-facebook-backbone-through-zero-touch-provisioning/

在VM工作流模型中,工程团队可使用一系列运行任何语言代码的标准步骤。任一步骤如果发生失败,将会重新排入到队列中,进而在将来得以重新执行。每一个步骤中可以包括一个单独二进制程序。需要注意的是,各个步骤可以使用任何编程语言编写。团队正逐步从MOP中迁移出来,已开发了越来越多的VM步骤替代MOP。通过确定其中可独立的步骤,进而实现这些步骤的并行运行,VM进一步加速了配置过程。

在VM的未来路线图中还包括VM任务组的编排、Facebook全球网络中Plane的完全自动化重新构建。VM是近期在网络中应用DevOps原则这一浪潮的一个实例。

查看英文原文: Scaling Network Automation at Facebook Using Zero-Touch Provisioning

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT