SDN的设计初衷是希望从网络资源用户的角度出发改进网络,通过对网络的抽象推动更快速的业务创新,而SDN应用层是体现这一观点的关键。与传统的网络应用相比,SDN应用将具有更强的智能性、动态控制性和可编程性,控制器可与SDN业务应用交互,根据业务的网络需求及时动态调整网络资源能力的交付。可以说,SDN的开放和可编程能力让“网络感知应用,应用控制网络”成为现实。
从SDN架构来看,控制和转发层解决了控制功能与设备解耦的问题,但以openflow为代表的SDN 转发机制并没有涉及传统网络更高层信息的识别和处理,因此如果要推动网络的智能化,还必须在SDN的应用层对4-7层的网络功能进行完善,进而驱动底层网络资源的调配,使基于SDN的上层业务可自动、便捷地按需调用底层网络能力。
应用层位于SDN架构最上层,它基于控制器提供的API接口可实现和网络业务相关的管理、安全等应用,还能根据用户需求定制其他网络业务。目前SDN应用主要包括3种类型:
资源管理平台:主要是面向云计算资源统一管理和调度的平台,其目标是实现池化的计算、存储、网络等资源的灵活交付,按需满足云计算的业务资源需求。
软件定义的应用交付:基于SDN理念改造负债均衡、访问控制、应用加速等应用交付技术,使之能替换或者扩展此前在传统网络中需要利用专用硬件实现的功能。
创新网络业务:主要是指在传统的静态化网络中难以实现,但在SDN环境下能够获得良好支持的新兴业务,这类应用具有非常大的创新,将来成为SDN应用未来发展的主流。
这3类主流的SDN应用,资源管理平台和软件定义的应用交付为基础,他们通过一般直接调用SDN控制器提供的北向接口API,他们可根据应用需求直接驱动控制器调用底层的SDN网络能力。同时,这两类SDN应用还会在扩展和封装控制器北向接口的基础上,为多样化的创新网络业务(例如云计算的虚拟主机资源分配、多租户按需组网等服务)提供功能更全面,更易于使用的应用编程接口,供他们便捷调用网络能力。当然创新网络业务也可以直接调用控制器的北向接口API,以提高业务的执行效率。
虽然目前业界对SDN创新应用没有很全面的解释,但基于SDN网络控制能力的云资源平台,利用SDN技术改造传统的网络交付技术等应用已经出现相关案例。
资源管理平台
资源管理平台强调的是资源管理能力,即在整合SDN网络控制能力的前提下,实现对计算、存储、网络等多类型资源的统一管控,以满足云计算等业务场景中的资源按需交付需求。
资源管理平台中整合SDN交付的网络控制能力,是为了满足云计算资源调配自动化的需求。云计算具有的按需提供服务的特点和服务在交付过程中
本质上讲,在资源管理平台中整合SDN交付的网络控制能力,是为了满足云计算资源调配自动化的需求,云计算具有的按需提供服务的特点对服务在交付过程中的动态性、扩展性提出了非常高的要求,特别是当云服务承载于具有复杂结构的基础设施上时,相关的资源和服务配置都务必做到精确。而如果这些大量繁杂的工作全凭人工完成,无论是较低的工作效率,还是更容易出现的人为失误,都将是不足以支持高效可靠的云计算服务交付的重要原因。
对于资源管理平台而言,那些由标准步骤构成的工作流程通常是适合自动化实现的,例如网络的配置与变更管理,虚拟机生命周期管理、中间件和数据库管理、路由器和交换机的交付与管理,以及其他一些会在多个业务流程实例中反复出现的元素等。对于这类流程的自动化实现,资源管理者可以采用开发专用脚本的方式,将流程操作相关的手工输入过程进行整理并进行自动重放;同时,他们也可以利用商业化的工具,实现SDN、DHCP、IP地址管理等网络服务,以及VLAN划分等管理过程的自动化,而SDN的提出和引入则能够更好地改善资源管理平台对网络资源的控制,实现管理的自动化。
SDN架构将控制平面从分散部署的网络设备中抽取出来,并以集中化的控制器的方式对全网进行控制。控制器能够从全局上检测SDN网络的资源容量和网络需求,网络的配置信息、连接方式甚至分配社么样的功能和容量都能够被动态控制。资源管理平台只需要通过调用控制器的北向接口,以软件程序的方式自动实现网络资源的调度和分配,进而将网络资源与计算资源、存储资源一起分解成克消耗的资源配置交付给云计算服务即可。
资源管理平台的核心在于基于SDN控制器北向接口编排资源管理流程,使得它能够及时有效地将上层云计算业务的资源需求反馈给控制器并对网络设备和链路进行调配。考虑到云计算等典型业务通常需要计算、存储、网络等多种类型资源的协同交付,因此对SDN控制能力的调用需要被封装为独立组件,并与相应计算资源控制组件、存储资源控制组件,以及其他一些功能组件共同工作。当前云计算业务普遍是以计算资源为核心的服务,随着网络资源管理灵活性和便利性的提升,日后势必会有越来越多以网络资源为核心的云计算服务被提出和应用。
在资源管理平台的主要功能中,对SDN架构底层网络设备的配置控制是一个重要方面,同时它还需要具备更完善的管理功能,例如性能管理、故障管理、安全管理等,他们都将是单独的流程,需要在合适的地方调用SDN控制器的北向接口。一般而言,资源管理平台的网络管控组件通过远程调用基于REST API的控制器接口,在架构上实现与控制器的松耦合,使系统部署更方便,使系统部署更方便,更具有扩展性。
最后,需要说明的是,面向云计算服务的资源管理平台除了可以支持基于开放协议(例如OpenFlow)的SDN实现模型外,还可以根据业务的实际需求,为基于叠加网络和基于专用接口的SDN实现方式提供相应的支持,例如VMware的云计算管理瓶体就支持了基于叠加网络的SDN实现,其中包括有利用VXLAN协议隧道搭建叠加网络的方案,同时在其产品中还整合了Nicira NVP网络虚拟化平台解决方案。这主要是因为在以云主机为代表的云计算服务中,多租户共享资源等业务需要突破传统VLAN的数量限制,并需要虚拟机跨数据中心迁移等支持,而基于叠加网络的SDN实现能够很好地满足这些需求。