一提到数据中心网络,很多人脑海里立马会显示出各种设备操作命令。与Linux系统类似,网络设备的交互方式也是命令行,通过向网络设备输入各种设备识别的命令,达到运维和部署网络的目的。数据中心进入了新一代的网络世界,这些传统的网络设备操作方式也要随之改变,网络的可编程时代到来了。可编程是将网络设备配置平面从嵌入式节点独立出来到软件平台,由软件驱动的中央控制节点自动化控制网络架构,它以开放软件的模式替代传统基于嵌入、不够灵活的控制平面,其中SDN技术是可编程方面的具体体现。
说到SDN,它并不能代表可编程网络的全部,但的确是可编程网络的重要组成部分。SDN并不是一种具体技术,它是一种网络设计理念,规划了网络的软件、硬件、转发面和控制面及相互之间的互动关系,重新定位了网络体系架构,将网络分为:转发层、控制层、业务编排层和应用层。我们常说的SDN控制器,就是指的控制层软件,通过Openflow向转发层下发流表,以此来指导流量的转发行为。控制器就是整个网络运转的大脑,通过大脑控制着整个网络。显然,SDN中还有更高级的业务编排和应用层,这些部分可以直接对控制器进行可编程设计,实现对网络控制,也可以跨过控制器,直接对转发层设备进行可编程,使用转发层设备识别的编程语言进行操作和设计,这样不仅实现网络流量转发控制,还实现了运维、管理和排障的可编程自动化管理。其实,SDN控制器将转发流表下发到硬件网络设备上,工作就已完成了大半,更多的可编程工作还是要交给业务编排和应用层。所以,在很多的云网络中,除了SDN控制器之外,还会有可编程的运维、管理和排障软件,这些软件有各种各样丰富的软件编程接口,比如:RESTful、SOAP、C、Java、XML.这些编程语言当然还不能直接控制转发层设备,要通过业务编排转换成为转发层设备可识别的语言,向转发层设备下发就可以了。比如:VCC、CLI、TCL、Python、Netconf等等,设备接受的基本都是这些脚本语言,这些语言执行效率高,基本可以和汇编语言媲美了。这些脚本语言按照设备识别的格式,将要执行的信息结合到脚本当中,实现对网络设备的控制。比如:配置下发、业务部署、故障诊断和日常网络监控等等都可以通过这些脚本语言实现,这些才是可编程网络的关键部分。
可编程网络除了SDN,还有网络虚拟化NV、网络功能虚拟化NFV.NV是在现有网络中建立隧道来连接两个域,运维的人员不必再在物理连接每一个新的域,尤其是对于创建虚拟机。这样运维的人员不用更改已经部署好的网络,在现有的网络架构之上进行更改。NV运行在高性能X86平台上,在不改变网络配置的基础上,实现虚拟机迁移,NV适用于任何在使用虚拟机技术的组织。NFV是虚拟化第四到七层功能,使用最佳实践作为不同网络元素的基础策略和配置。NFV也运行在高性能的x86平台上,其目的是允许人们为虚拟机或流量创建服务配置文件,并在网络上构建抽象,然后在那个特定的逻辑环境搭建虚拟服务。NFV跟SDN最明显的区别是:NFV处理的是4-7,SDN处理的是网络模型中的2-3层,SDN优化网络基础设施架构,比如以太网交换机,路由器和无线网络等,NFV则主要是优化网络的功能,比如负载均衡,防火墙,WAN网优化控制器等。
其实,往前追溯几十年,在网络诞生之初就有可编程网络概念了,通过SNMP网管协议实现对网络设备的管理和监控,通过WEB实现对网络设备的可视化操作,这些都是网络可编程的体现,再往后还可以通过简单的脚本语言实现较为复杂的网络行为,通过可编程技术替代一部分人工作。不过,这几十年可编程网络并未得到人们足够的重视,直到最近几年,可编程网络才真正火了,这是因为人们将可编程技术运用到了网络转发层面,这个几十年不曾被人改变的封闭领域。从此,可编程技术在网络里的应用一发不可收拾,在网络技术的各个方面都有渗透和实践应用。可编程技术在网络领域终于生根发芽,迎来了飞速的发展时期。如今的数据中心已经开始将网络部分纳入云平台中进行监管,在云平台上有SDN的控制器,有网络流量监控软件,也有自动化下发网络配置的软件等等,云平台接管了网络部分的一切活动,这也是数据中心纷纷建设网络云平台的根本原因,是可编程网络淋漓尽致的体现。
数字化引发的根本性变革导致“可编程经济”业务协议的生成,并使新业务的开发成为可能。“可编程经济”就是数字化新环境下资产交换协议和行为的货币化,不仅仅在数据中心网络部分产生深远影响,早已触及到其它技术行业。可编程式网络是数据中心云化重要的体现。根据Gartner的定义,“可编程经济”是智能技术与区块链的分布式计算资源相结合的结果,“可编程经济”代表着对全球经济系统的大规模改造,可编程正在悄然地改变着整个世界,让网络技术更加灵活、更加适合数据中心业务发展需要。可编程的技术本质是把原先一体化的硬件设施打破,将基础硬件虚拟化并提供标准化的基本功能,然后通过可编程软件技术,实现控制其基本功能,并提供更开放、灵活、智能的管控服务。简单讲就是“硬件资源虚拟化,管理功能可编程”。未来的数据中心网络必将是可编程的,未来的数据中心也将是可编程的。