软件定义网络是否会终结命令行界面的命运


自从思科在上世纪80年代推出第一款路由器以来,大多数网络工程师都依赖于CLI(命令行界面)来进行配置、管理和故障排除一切事物,包括从小型办公室局域网到广域运营商网络。思科的CLI并不是唯一的CLI,但从该公司在网络领域的统治地位来看,其CLI已经成为业界的标准,其他厂商都在纷纷效仿思科的CLI。

同时,CLI也成为无数网络专家发展其事业的关键,特别是对于那些CCNA认证思科网络工程师而言。根据该公司统计,网络管理专家以及较高水平CCIE认证的互联网专家和其他思科认证的专家已经超过200万,为整个行业带来了训练有素的专家队伍。

CLI是通过输入命令行来与软件交互的一种简单的方式,同PC用户在DOS时代所做的一样。基于思科CLI和其他效仿界面,工程师通常会通过向设备(例如路由器和交换机)发出命令来设置和管理网络。

SDN以及更广泛的网络自动化趋势,正以更抽象的方式使用较高层软件来控制网络。无论是通过OpenFlow、思科的ONE(开放网络环境)架构,还是其他框架,这些新的系统将网络的控制层从转发层(转发层由推动数据包的设备组成)隔离,管理网络的工程师是与应用而不是端口进行交互的。

思科首席战略官Padmasree Warrior表示:“以前的网络是通过CLI或者命令行界面来编程的,而现在我们正在开发一个编程界面。”

SDN是否会扼杀网络工程师在其整个职业生涯习惯使用的工具呢?

根据Gartner分析师Joe Skorupa表示,在Gartner采访的一些企业中,有些网络工程师反应激烈。他说:“我们已经看到很多CCIE在尽一切努力来试图阻止SDN在其企业的部署。”有些企业则在评估SDN时故意避开这样的员工。

并不是所有人都认为CLI的日子已经屈指可数了。F5 Networks的高级架构师Alan Mimm表示,SDN并没有足够深入地来分析和修复网络中的每一个漏洞。他认为CLI并没有完全过时。例如,在任何给定ACL(访问控制列表)组中的一些应用程序总是会出现一些问题,而且这些应用程序只在ACL组部署和使用之后才能出现,而网络工程师仍然将需要使用CLI来诊断和解决这些问题。

然而,SDN将会削减CLI许多日常的任务。只知道使用CLI的网络工程师将会像是手工劳动者一样,被自动化机器取代,一些网络工作很有可能将被取缔。

服务供应商Telus公司技术战略主管Walter Miron表示,这并不是第一次出现CLI的替代品。用来管理网络的图形用户界面已存在多年,但它们并没有受到热烈的欢迎,工程师总是愿意转向CLI。

Tail-F Systems公司技术副总裁Carl Moberg表示,即使是网络初创公司也需要提供思科的CLI给他们的客户,使其客户的工程师知道如何管理产品。自2005年以来,Tail-F一直是反对现行趋势的公司之一。该公司开始推出ConfD—用来配置网络设备的图形工具,思科和其他主要供应商也都将其配置到自己的设备中。随后,该公司添加了 NCS(网络控制系统)--用于整体管理网络的软件平台。为了保持互操作性,NCS可以向思科的CLI和其他厂商的管理系统提供界面。

Moberg指出,CLI扎根于互联网的根基之中。互联网工程任务组(负责IP)的做法是找到可用的解决方案来解决问题,这种细致化的“自下而上”的方法与蜂窝网络的设计方式不同。3GPP(开发了大多数蜂窝运营商使用的GSM标准)修订了其整个架构。

IETF的方法是手动,并对每个设备进行管理,但随着网络变得更加复杂,这种技术遇到瓶颈。现在对网络的更改更加频繁和复杂,更有可能出现人为的错误,并且,错误的成本也更高。

Moberg说道:“即使是最铁杆的思科工程师也会厌倦一遍又一遍地输入相同的命令。”尽管CLI将继续存在,但是它将成为在极端情况下专门调试的工具。

匹兹堡大学医学中心的技术服务副总裁Bill Hanna表示:“一定程度的CLI的将会永远存在。”在今年早些时候Nuage Networks推出SDN系统Virtualized Services Platform(虚拟化服务平台)时,Hanna表示VSP等系统中所涉及的代码行数非常惊人,所以他希望SDN能够取代CLI。

微软总经理Vijay Gill表示,在具有10万端口的网络架构中,光是查看这个端口列表可能就要一整天。Gill表示:“系统的规模正变得非常大,以至于你无法手动进行。”现在,管理员不得不操作软件代码,然后扩展这些命令到端口。

面对这些变化,网络管理员也将形成三个群体:

第一组将会接受并欢迎SDN,因为这可以让他们不再半夜起来排除路由器的故障。他们愿意与其他IT和业务经理合作来解决更广泛的企业问题。第二组可能刚开始没有做好准备,但将会逐渐提高其技能,并最终在一个新的领域中找到他们的位置。

第三组则永远不会接受SDN带来的改变。他们将面临与电信管理员相同的命运,电信管理员的工作价值在于他们能够辨别地知道TDM(时分复用)电话系统中模糊的命令。当电路交换语音转移到VoIP(通过互联网协议的语音)再到局域网上时,他们的工作就失去意义了。对于抵制变革的IP网络工程师而言,这很残酷并且带有一定的讽刺性,SDN的到来也让他们遭遇了同那些电信管理员同样的命运。

ZK Research公司分析师Zeus Kerravala表示,但SDN并不绝对会导致失业,至少对于那些愿意扩展其视野的CLI工程师来说不会。

“网络工程师的作用比以往任何时候都更重要,”Kerravala表示,“云计算和移动计算都是以网络为中心的计算模式。”数据中心可能仍需要更多的人力,但是随着网络虚拟化趋势不断发展,网络、服务器和存储工程师的工作逐渐模糊,且这些部分将逐渐趋于相互依存相互影响。

所以观察家认为,要适应这种趋势,第一步应该学会编程。

应用定义网络初创公司Lyatiss创始人兼首席执行官Pascale Vicat-Blanc 表示:“习惯使用CLI的人们将需要学习脚本以及更高级别的语言来进行网络编程或优化网络。”

微软的Gill建议网络工程师学习Python、C#和Powershell等语言。

对于Facebook来说,则需要比其他企业采取更多手动的方法。Facebook的基础设施技术操作主管Najam Ahmad说:“如果你看看Facebook的网络工程团队,几乎每个人都在写代码。” 网络工程师过去使用CLI是因为他们手头只有它,Ahmad指出:“我认为我们低估了他们的能力。”

Learning@Cisco(负责对思科工程师的教育、考试和培训)产品管理主管Tejas Vashi表示,思科正在整装待发来帮助其认证工程师满足新兴的网络要求。

CLI不会放弃网络自动化,但很多网络功能将通过应用程序来执行,而不是手动配置。因此,网络设计师、网络工程师和支持工程师的工作都会有所变化,并在新的形势中产生一个新的工作职位。

在这个新世界中,网络工程师能够发现网络需求并知道如何满足这些需求,然后利用这些经验来定义网络应用程序的规格。编写这些应用程序的工作将落在新型网络工作人员的身上,也就是Learning@Cisco所谓的软件自动化开发人员。这些开发人员将具有关于网络的背景知识,以及通用编程语言(例如 Java、Python和C)的技能。在软件编好后,将由网络工程师和支持工程师对软件进行安装和故障排除。

所有人都需要在一定程度上提高自己的技能,思科计划推出一个涉及软件自动化的新的认证,但还没有公布具体时间。尽管网络和工作都出现了变数,但多年来的命令行编写经验对于那些可以提升技能的人来说仍然是有用的。

“你需要了解基本信息,”Vashi表示,“如果你不知道网络基础设施如何运作的,就算你有关于软件自动化的所有背景知识,你还是不知道你在网络这一领域该做什么。”

相关内容