一、 什么是网络编排?
编排(Orchestration),最早出现于艺术领域,指的是按照一定的目的对各种音乐、舞蹈元素进行排列,以期达到最好的效果。引申到IT网络管理范畴,指的是以用户需求为目的,将各种网络服务单元进行有序的安排和组织,使网络各个组成部分平衡协调,生成能够满足用户要求的服务。网络编排实际上是用网络抽象语言定义一个从用户到业务服务的网络管道的过程。编排后得到的、能满足自动化部署要求的网络服务需要具有快速部署、动态调整、重复使用的能力。(如图1所示)
图1 网络服务编排
二、 为什么需要网络编排?
在云计算时代,IT管理人员面临着各种各样的难题(如图2所示)。这些难题给网络服务带来了怎样的影响,该如何看待网络编排?
图2 服务的三个困境
以某企业IT业务常规的部署为例,其要部署一个Exchange邮件服务器,并为市场部门提供服务。首先系统管理员进行计算资源的部署,然后网络管理员根据要求配置接入交换机的网络资源,并根据需要对汇聚以及更上层节点进行网络调配。考虑到市场部门人员使用该服务时,可能从公司内部、分支办事处、外出移动办公等不同地点采用LAN、VPN等方式接入,还需要在路由器网关、防火墙等节点进行网络调配。(如图3所示)。
图3 IT业务常规部署模式
在这个操作过程中,计算资源的自动化交付因为服务器虚拟化技术的广泛应用而比较容易实现,系统管理员可以以自助的方式申请VM资源服务并部署Exchange VM image。相对于计算资源的点状结构,网络由于其更为复杂的网状和层次结构,实现完全自动化部署比较困难;常规模式下的手工操作或借助于管理工具的操作,需要对网络实时状况非常了解(比如拓扑),涉及到的网络节点范围可能会非常多,非常容易出错。
同时服务并不是一成不变的(比如服务扩容、服务器虚拟化所引入的VM迁移等),要求网络配置随之动态调整,常规模式下的手工网络操作将引起业务服务的长时间中断,已经不能满足当前业务的要求。
如果还需要为其他部门建立一个类似的Exchange服务时,从设计到实施,所有的工作都需要重新开始。无法从已有的服务中复用现有的基础架构和劳动成果。
当通过网络编排能力交付网络服务后,我们可以把实现一个业务网络部署的预期时间,缩短到仅仅几分钟的时间,从而实现网络自动化部署能力(如图4所示)。
图4 使用网络服务编排之后的IT业务部署模式
三、 网络编排对象的设计
网络编排的过程,可以简单理解为对抽象网络对象的组织和调配,包含网络资源的分配调度等。对网络对象的抽象设计可以拆分如下几个方面。
1. 对网络设备功能进行抽象
在当前技术环境下,IT管理员所面对的不再是一成不变的设备环境,基础设施可能随着需求而快速增长。这种增长既包括数量上的增长,也包含厂商、设备型号的增加。为了屏蔽不同厂商、不同型号设备的差异,使IT管理员的精力聚焦在服务本身,必须要做到对网络设备业务功能的抽象。
从实现技术上看,对网络/设备功能的抽象有两种(如图5所示)。
1) 基于SDN相关的技术对网络/设备功能的抽象。SDN的核心是对网络的行为进行集中编程控制,就必然首先要对网络设备的行为和能力进行抽象。如OpenFlow技术就是将网络抽象为简单的基于流的转发控制能力。在此基础之上,可以抽象基于流的ACL、QwS、VLAN、VPN等功能。
2) 基于传统网络技术(比如SNMP/CLI等管理协议)实现对设备/网络功能的抽象。
图5 网络&设备功能抽象
2.对网络服务的最小单元进行抽象
基于网络设备功能的抽象,从表义性角度出发设计可编排的最小单元作为网络服务单元(网络对象),包含设备(虚拟/物理)、Port(虚拟/物理)、Link(End-End link、Net-Net link、End-Net link)、Network(L2/L3/flow-based)、IP服务(DHCP/DNS/NAT)、 安全服务(FW/LB/IPS)。
作为网络对象,每个网络服务单元都会占用一定的网络资源(如交换机端口、带宽、VLAN、IP地址池、队列等),同时网络对象还会有其他的网络属性,无法作为资源进行统一分配(如优先级、时延要求、有线/无线类型等等)。
每个网络服务单元都具有各自对应的网络/设备功能(对应上面小节的抽象能力)。网络服务单元(网络对象)作为后续编排的基本元素,为什么不直接采用抽象出来的网络设备功能进行编排呢?事实上,这是目前一些编排软件的做法,但这要求服务管理员具有非常丰富的专业知识和经验,对每个网络功能和技术细节非常了解。这就使得服务的建立成为一个很大的技术壁垒,使得服务编排变得比较困难。因此这种编排能力仅适合于非常专业的用户。
采用抽象层次更高的网络服务单元(服务对象)进行编排,将为服务管理员提供更接近自然语言的设计能力,与直接采用网络设备功能的编排对比,就相当于面向对象编程和结构化编程的区别,高级语言和汇编语言的区别。同时在服务编排定义过程中,服务对象和具体物理网络设备的关联绑定不是必须的,为网络服务复用性提供了可能。
3.对网络模型进行抽象
从用户对服务的访问路径分析出发,可以抽象各类物理网络的组网模型。例如:用户从分支访问远程数据中心的完整路径,其网络模式可以分为用户接入网络、WAN网络、DC核心、DC汇聚、DC接入、虚拟服务器等几个区域;网络比较简单时,可以只有用户接入网络、WAN网络、DC网络。设计者可以根据实际网络设计目的抽象成不同网络模型。比如只关注用户接入和应用服务器接入的控制,在设计网络模型时,就可以不必关注WAN网络、DC核心/汇聚节点。
编排时根据网络模型对网络服务单元进行组织和配置,网络模型的复杂度决定了服务编排的复杂性。
同时对用户的真实物理网络也要按相应的网络模型进行资源管理,为后面所述的服务实例化过程中,服务单元和物理设备的绑定关系计算提供辅助。
四、 网络服务的编排
1.基于网络模型对服务单元进行排列组织
根据实际网络组网需求,首先选择使用的网络模型。然后使用预先抽象设计的网络服务单元(网络对象)作为编排的基本元素,在所选择的网络模型中,将这些网络服务单元按照一定的排列方式进行组合、编排、连接,形成一条端到端的网络服务管道。
图6 网络服务编排GUI举例
2.对网络服务单元的功能参数赋值,形成可分发的网络服务
对编排的网络服务管道上的每个服务单元,根据需要设定具体的参数,为之分配网络资源(IP地址、路由、VLAN ID、ACL配置及用户认证配置等),最终形成可分发使用的网络服务(如图7所示)。
其中网络服务单元和实际物理设备节点的绑定关系可以在编排时静态指定,或在服务实例化时/部署时动态绑定(比如VM接入网络的物理端口可能动态变化的)。
网络模型不仅仅为方便编排的设计和规划过程,因为用户在设计网络模型时,同时考虑了用户的真实物理网络组网结构,所以在动态绑定服务单元和物理网络节点的计算环节中,网络模型也有非常重要的作用。
图7 网络服务的形成
五、 网络编排的关键技术
根据网络服务编排End to End的要求,用户接入、网络管道、应用接入是网络服务的三个关键位置。由于计算虚拟化技术的使用,应用接入位置可能是动态迁移变化的;同时用户访问方式的多样性,其接入位置也可能是动态的,使得中间的网络管道也有一定的动态性。网络编排服务是否有效,这三个位置的跟踪和计算能力是非常关键的。
1.应用服务器/VM的接入位置。要求精确定位和跟踪VM到网络接入交换机的端口,并将编排的网络服务动态部署/迁移到接入端口上。传统的技术主要是拓扑计算能力,除了要求全网设备支持LLDP等二层邻居发现协议,管理软件能还要有效跟踪全网MAC表变化,这便存在着实时性和准确性的问题。目前802.1Qbg协议很好的解决了这个问题,(如图8所示)通过服务器和交换机的VDP交互,实时感知虚拟计算资源的迁移和部署,通过和管理软件的协同,实现网络服务的自动化部署和调整,从而实现网络资源的动态迁移。
图8 基于802.1Qbg实现VM的网络接入位置动态定位
2. 用户接入位置。可以基于各种终端跟踪技术(如用户接入身份认证、BYOD方案等),从而支持本地LAN接入、WLAN接入、远程VPN接入、移动SSL VPN接入等各种接入方式的用户位置跟踪和定位。
3、网络管道路径分析。主要是基于网络拓扑技术,必须有完整、准确的拓扑,才能实现编排服务的有效部署和动态调整。该技术分为以下两个方向。
1)HopByHop的网络控制方式,要求全网(特别是广播域内)的拓扑必须完整和准确。基于拓扑计算网络服务的管道路径,逐点部署网络服务配置,连接用户和应用。如在SDN模式下,管理员可以基于现网拓扑,静态指定网络管道,或根据策略动态选择网络路径。
2)Overlay的网络tunnel管道控制方式,如VPN、VXLAN、NVGRE等技术,可以直接在用户和应用之间建立一个三层网络管道,网络仅仅提供一个透明的管道,部署和动态调整相对简单的多。
六、 结束语
利用网络服务编排,IT部门可以真正快速便捷的实现服务建立与部署,真正的进入网络自动化的时代。通过评估模型的建立与配置,服务使用者可以直观并快捷的实现对服务的综合评价与监控。由此,IT管理员将彻底从云服务建立、调整、扩容等繁杂的配置工作任务中解脱出来,而将主要精力聚焦于为客户提供高效率、高质量、高保障的服务上来,并真实的体会到技术的进步所带来的效率提升。同时SDN技术在网络领域是非常符合服务编排的一个基础架构。可以基于SDN的抽象网络接口设计网络服务单元,进而实现网络服务的编排能力。