随着技术的不断进步和复杂化,网络设计也日益复杂,这导致越来越多的网络开始采用自动化和可编程性功能。网络工程师的角色包括网络操作员、设计师、架构师、对等协调员和网络工具/自动化工程师等。对于一些人来说,这些功能正在取代传统网络工程师的角色,甚至可能导致他们失业;而包括作者在内的其他人则认为这是工作的自然演变。那么 Cloudflare 使用了哪些自动化工具呢?Cloudflare 拥有一个庞大的分布式任意播网络,包括超过 150 个全球节点(PoP)、500 个转接/对等交换端口、500 个网络设备组件和 20,000 个 eBGP(外部 BGP)会话。管理如此庞大的网络没有自动化是难以想象的,Cloudflare 已经使用自动化技术多年,其中包括 Salt 和 NAPALM。
Salt 和 NAPALM 的网络自动化
Salt 是一个开源的通用自动化工具,用于管理系统和设备。它自带多种功能,如 REST API、实时作业、高可用性、原生加密、即使在运行时也能使用外部数据、作业调度、选择性缓存等。Salt 可能是可扩展性最好的框架之一,在大公司中有许多已知的部署,使用 Salt 管理数十万台设备。Salt 的供应商无关特性通过一个名为 NAPALM(网络自动化和可编程性抽象层,支持多供应商)的第三方库得到利用,NAPALM 是一个社区维护的网络自动化平台。
Cloudflare 的自动化实践
Cloudflare 实施自动化的一种方式是监控和解决全球转接提供商的稳定性问题。该系统设计得非常智能,可以自动操纵生产流量。它可以通过受影响的转接提供商丢弃流量,在受影响的 PoP 上丢弃所有流量,并根据设置的严重程度阈值和时间框架恢复生产流量,所有这些操作都不需要工程师的干预。例如,图 2 展示了一个自动化仪表板,显示了良好和糟糕一天中 PoP 之间的数据包丢失百分比。在糟糕的一天,手动调试和识别如此大量的受影响 PoP 和转接,然后修复它们将需要大量时间。
自动化对网络工程师的实际意义
自动化对于网络工程师的实际意义在于,它能够显著提高工作效率,减少人为错误,并使工程师能够专注于更高层次的网络设计和策略规划。随着网络规模的不断扩大和复杂性的增加,自动化和可编程性将成为网络工程师不可或缺的工具。通过使用 Salt 和 NAPALM 等工具,网络工程师可以更好地管理大型网络,确保网络的稳定性和可靠性。
原文: APNIC Blog(2018-10-03)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog