网络自动化编排技术浅析
本文通过阐述网络编排的概念和实现技术,让读者了解网络编排在驱动网络实现自动化过程中的核心作用和机制,能够帮助客户解决IT业务部署和调整时,因网络操作的复杂性而引入的耗时、低效、重复、易错等问题,实现网络自动化。
一、什么是网络编排?
编排(Orchestration),最早出现于艺术领域,指的是按照一定的目的对各种音乐、舞蹈元素进行排列,以期达到最好的效果。引申到IT网络管理范畴,指的是以用户需求为目的,将各种网络服务单元进行有序的安排和组织,使网络各个组成部分平衡协调,生成能够满足用户要求的服务。网络编排实际上是用网络抽象语言定义一个从用户到业务服务的网络管道的过程。编排后得到的、能满足自动化部署要求的网络服务需要具有快速部署、动态调整、重复使用的能力。(如图1所示)
网络服务编排
二、为什么需要网络编排?
在云计算时代,IT管理人员面临着各种各样的难题(如图2所示)。这些难题给网络服务带来了怎样的影响,该如何看待网络编排?
服务的三个困境
以某企业IT业务常规的部署为例,其要部署一个Exchange邮件服务器,并为市场部门提供服务。首先系统管理员进行计算资源的部署,然后网络管理员根据要求配置接入交换机的网络资源,并根据需要对汇聚以及更上层节点进行网络调配。考虑到市场部门人员使用该服务时,可能从公司内部、分支办事处、外出移动办公等不同地点采用LAN、VPN等方式接入,还需要在路由器网关、防火墙等节点进行网络调配。(如图3所示)。
IT业务常规部署模式
在这个操作过程中,计算资源的自动化交付因为服务器虚拟化技术的广泛应用而比较容易实现,系统管理员可以以自助的方式申请VM资源服务并部署Exchange VM image.相对于计算资源的点状结构,网络由于其更为复杂的网状和层次结构,实现完全自动化部署比较困难;常规模式下的手工操作或借助于管理工具的操作,需要对网络实时状况非常了解(比如拓扑),涉及到的网络节点范围可能会非常多,非常容易出错。
同时服务并不是一成不变的(比如服务扩容、服务器虚拟化所引入的VM迁移等),要求网络配置随之动态调整,常规模式下的手工网络操作将引起业务服务的长时间中断,已经不能满足当前业务的要求。
如果还需要为其他部门建立一个类似的Exchange服务时,从设计到实施,所有的工作都需要重新开始。无法从已有的服务中复用现有的基础架构和劳动成果。
当通过网络编排能力交付网络服务后,我们可以把实现一个业务网络部署的预期时间,缩短到仅仅几分钟的时间,从而实现网络自动化部署能力(如图4所示)。
使用网络服务编排之后的IT业务部署模式
三、网络编排对象的设计
网络编排的过程,可以简单理解为对抽象网络对象的组织和调配,包含网络资源的分配调度等。对网络对象的抽象设计可以拆分如下几个方面。
1.对网络设备功能进行抽象
在当前技术环境下,IT管理员所面对的不再是一成不变的设备环境,基础设施可能随着需求而快速增长。这种增长既包括数量上的增长,也包含厂商、设备型号的增加。为了屏蔽不同厂商、不同型号设备的差异,使IT管理员的精力聚焦在服务本身,必须要做到对网络设备业务功能的抽象。
从实现技术上看,对网络/设备功能的抽象有两种(如图5所示)。
1)基于SDN相关的技术对网络/设备功能的抽象。SDN的核心是对网络的行为进行集中编程控制,就必然首先要对网络设备的行为和能力进行抽象。如OpenFlow技术就是将网络抽象为简单的基于流的转发控制能力。在此基础之上,可以抽象基于流的ACL、QwS、VLAN、VPN等功能。
2)基于传统网络技术(比如SNMP/CLI等管理协议)实现对设备/网络功能的抽象。
网络
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核心/汇聚节点。
编排时根据网络模型对网络服务单元进行组织和配置,网络模型的复杂度决定了服务编排的复杂性。
同时对用户的真实物理网络也要按相应的网络模型进行资源管理,为后面所述的服务实例化过程中,服务单元和物理设备的绑定关系计算提供辅助。
- 关于网络安全的几项关键性技术 (01-09)
- 黑客实例讲解木马的分析方法! (01-16)
- 使用Web交换机为网络防火墙解忧(01-16)
- 功能划分 高性能硬件防火墙导购(03-02)
- 合理配置防火墙是网络安全的关键(03-06)
- 网络安全的七大误解(04-14)