陈慧光,李欢
(中国电信股份有限公司研究院,北京 102209)
在SDN/NFV技术时代,各大运营商都有各自的技术演进计划,其中一个重要目标是通过新技术、新网络体系实现新型网络业务的快速自动开通,在业务层面提供客户自主定义网络业务的功能,在配置层面实现业务对应的网络配置自动化、网络资源按需指配。在业界的技术发展中,给负责实现业务层面自动配置功能的子系统命名为“编排器”。从2015年Linux基金会成立了针对编排器的开源项目Open-O开始,后续吸引了更多的运营商、设备厂商、芯片厂商加入,共同推动编排器的演进。
新一代网络运营系统,是面向CTNet2025的全新架构业务实现系统,其软件架构设计立足于当前网络状况,基于智能网管体系演进,整合现有运营支撑系统(operation support system,OSS)和网管系统,面向CTNet2025的目标网络业务实现需求,形成统一的新一代网络运营系统。该系统针对SDN/NFV网络管理,同时包含了SDN/NFV体系架构中的编排与控制功能,是网络软件化的必要组成部分,其特征如下。
(1)一级架构、能力开放
打破现有系统的封闭性与烟囱式,采用一级架构,支持数据、网络及面向客户的能力开放。
(2)数据动态、分层解耦
实现全网动静态数据统一管理,数据与应用解耦,数据可视,自主建模,自主管理。
(3)灵活编排、自动开通
实现网络(原子)能力的灵活编排,支持端到端业务自动化开通和快速上线。
(4)虚实网络、统一管理
实现对SDN、NFV网络与业务的统一管理。
(5)闭环自动、大数据注智
实现网络智能保障、网络自愈及优化调整,先于用户发现问题。
(6)核心掌控、研发运营一体化
以开源开放的设计理念,充分吸纳业界所长,增强自主掌控力,开发态与运行态一体化建设。
本文基于新一代网络运营系统的业务编排需求,提出了一种智能专线业务编排系统架构,通过开发和现网部署应用,验证本文提出的方案基本满足业务需求和运维管理需求。
在新一代网络运营系统架构体系中,业务编排系统作为核心功能组件,决定业务能力和业务形态,为业务运营单位提供业务编排手段,决定业务编排操作难易度。对编排系统来说,业务是一系列相关事务,事务对应串行的配置动作,这些动作全部有序配置成功即完成一个业务功能,有一个配置动作没有成功即视为业务配置失败,其他配置动作全部回滚。从系统设计角度来说,编排器是对业务进行理解的“大脑”,真正被上层软件定义的关键在编排这一层。整个运营系统的架构设计中,要求编排器和控制器严格按照业务模型和功能模型进行划分,控制器不做业务层面的组织工作,只向编排器提供单纯的、细颗粒度的网络配置能力,有利于编排器根据业务需求进行灵活的业务功能编排,业务编排在系统架构中的位置如图1所示。
图1 业务编排在系统中的位置
业务编排承担着业务设计、开发/实现、上线、开通、变更、关闭、下线整个生命周期的管理职责,在业务的生命周期中,编排器需要满足业务的灵活设计与快速上线要求,为业务编排设计人员(通常为网络运维人员)提供用户友好的设计工具,满足业务定义的直观、准确、可测试等特性;业务编排将接收客户订购的请求,并将其分解为预定义的工作流程,在流程中通过调用已有的原子能力实现每一个步骤。例如其中涉及配置相关的步骤,需要调用与控制器相对应的原子能力,通过控制北向接口将配置指令下达控制器,并由控制器负责最终的执行。在业务开通流程中力求无人工参与,从而大幅缩短开通时限。
本文提出的智能专线业务编排系统,在设计时,除了满足业务编排设计的基础要求外,创新性地提出了如下设计方案。
(1)层次化的服务架构
创新性地提出面向层次化的服务架构,将功能型与业务型原子能力进行分层隔离,易于业务的灵活设计与加载。
(2)编排引擎优化控制
现有的通用流程引擎主要采用BPMN语言描述流程,功能完整但是很复杂,采用集中的逻辑控制,可扩展性差。本文提出的智能专线业务编排系统,针对通用流程引擎存在的问题,进行了可扩展性、易用性和鲁棒性的优化。对编排引擎进行抽象和封装,对外提供统一接口。内部流程引擎可更换,不影响其他组件。优化编排引擎建模,使其支持分支合并执行,并对原子能力出入参数进行统一的模型定义,简化编排设计。面向商用要求实现错误重试和自动回滚功能, 保证工单执行失败后数据的一致性和完整性。
(3)模型驱动,支持多厂商、多协议的灵活适配
在适配层统一了控制器的接口和数据模型,从而实现多厂商控制器的接口适配,同时支持协议转换与模型转换中的统一管理、出错处理、回滚操作等。
按照各功能松耦合、灵活部署的特点,编排器系统架构分为3层,分别为业务入口层、网络服务层和适配层。其中,业务入口层实现的功能包括提供工单型API,负责处理北向业务系统传送的工单,匹配相应编排模板,控制、监控编排工作流执行。网络服务层实现的功能包括网络服务功能,按照原子功能颗粒度,构建多个配置下发与管理的微服务,各微服务彼此独立,提供REST接口,供北向层按照特定次序调用;编排引擎功能,负责将网络服务按照业务需求自动化执行与网络服务能力调用。适配层实现的功能包括将网络微服务层的抽象模型,适配到厂商的控制器或网管接口。编排器系统整体架构如图2所示。
图2 编排器系统整体架构
业务编排器设计的目标应包含如下3个方面。
• 快速上线:支持业务/网络能力的快速组合、流程及业务的快速设计,从而实现业务快速加载与迭代。
• 自动开通:实现业务自动化的流转、网络能力的自动跟踪与配置的自动下发。
• 智能运维:支持网络从采集、分析、策略、配置下发的闭环自动化。
编排器北向层是业务入口。该层关注的是编排流程,即基于资源和业务配置的依赖关系,按照一定的时序和逻辑,将上游系统下发的业务需求(例如工单)对应的配置功能下发到底层云网系统。北向层是通过工单管理+工作流引擎方式实现,此方式是新一代运营系统中要实现的目标解决方案。其工作原理是将编排工作分为开发和运行两态,开发态通过可视化手段构建编排流程和模板,运行态通过工单管理,将业务映射为开发态输出的模板,实例化该流程模板后,由工作流引擎执行流程完成配置。以智能专线政企网关PON接入云专线场景为例,北向层实现的功能是将微服务层的能力组织起来形成业务,编排器业务入口层流程配置如图3所示。
图3 编排器业务入口层流程配置
编排器统一使用下一代运营系统的微服务框架构建,为了解决单体大应用迭代开发与升级部署遇到的困难,需要对应用进行解耦和切分,通过合理的设计将单体大应用划分为多个微服务,有效提升软件迭代研发的敏捷性,微服务的划分原则可总结如下。
• 功能职责单一,一个微服务应该只负责一件事情。
• 功能内聚,如果多个功能都是面向同一种数据的操作,这些相关功能可以划分在一个微服务中实现。
• 松耦合,功能分布在不同的微服务中,微服务之间原则上只能通过接口进行交互,不能有数据层共享。
• 独立打包,快速部署,每一个微服务都可以单独进行构建、发布、部署。
根据上述划分原则,微服务层提供多个功能独立、相互隔离的原子服务服务库,服务库成为业务入口层可视化编排的基础。即编排引擎从服务库读取可用的服务并将其串联,形成一个业务操作。智能专线编排器微服务层的原子能力服务库如图4所示。
图4 编排器微服务层的原子能力服务库
该层具有如下4个特征:
• 微服务架构,每个原子能力为一个微服务,由统一的微服务框架管理;
• 抽象建模,对每个原子化的功能,使用建模语言(YANG/Swagger)进行抽象建模,这种抽象面向通用业务能力,与具体厂商、设备无关;
• 接口REST化,微服务提供RESTful接口,供北向层调用,接口参数采用上述抽象建模;
• 按需扩展,每个微服务可以部署为单独的集群,并可根据业务流量动态扩展。
适配层负责将微服务层所有功能模块产生的抽象配置模型,转换为具体厂商的接口模型,实现配置的落地下发。适配层实现的功能如下。
• 支持对从上述功能模块接收配置请求,识别配置内容和设备型号,根据设备属性,将配置分发到相应的控制器或设备。
• 能够将抽象模型,映射为具体厂商的接口,厂商间模块完全隔离,可平滑扩展。
• 南向适配支持RESTful、RESTconf、NETconf和CLI,传输协议支持Telnet、SSH、HTTP以及 HTTPS。
• 具备模型驱动功能,能够将厂商提供的YANG、Swagger 建模文件导入,生成相关接口功能。
微服务层在需要给设备下发配置时,使用抽象模型。这个抽象模型在各个厂商的驱动模块中,被适配为厂商需要的接口和模型。当微服务层调用驱动层的某个接口时,无论在请求体中携带特定的模型对象,抑或是在URL中包含query参数,总是包含dev_id。驱动层根据dev_id,找出目标设备的相关属性(主要是 dev_vendor和dev_model),借此找到对应的驱动模块,并调用对应接口。同时,部分厂商设备针对不同的设备(如交换机、路由器)也有不同的配置方法。针对设备的适配,在厂商驱动模块内部实现。
北向接口统一按照异步工单模式设计,上游系统与编排器的调用关系见表1。
表1 上游系统和编排器的调用关系
编排器采用微服务架构,微服务之间的内部调用接口为面向资源的REST风格接口。接口调用路径设计规则为:/服务名/版本/一级资源/二级资源等。接口方法和参数见表2。
表2 编排器接口调用方法和参数说明
编排器系统采用Python3语言、Tornado 异步框架和MySQL数据库作为基础框架实现。微服务框架采用SpringCloud,内部模型统一采用Swagger建模。通过Supervisor和Keepalived工具实现进程监控和热备份管理。采用Ansible自动化部署工具进行部署。编排器软件实现图5所示。
图5 编排器系统软件实现
编排器工作流程包括业务准备流程和业务下发流程两部分。编排器业务准备流程主要确保业务需要的资源,具体分为两个方面,一是软资源的预配置,主要包括IP地址池资源、虚拟局域网(virtual local area network,VLAN)资源、VNI分配规则、设备能力模板等资源的预配置,通常 通过管理员视图或数据库表录入完成。二是硬件资源准备,通常是设备(包括VNF)的纳管和信息同步。典型的交互流程如图6所示。
图6 编排器业务准备流程交互
流程说明如下。
(1)若业务涉及VNF网元,编排器北向层发起VNF请求。在准备流程启动VNF是为了提前准备VNF资源,后续业务开通时无须再等待VNF实例化,减少业务等待时间。若不涉及VNF业务,则直接跳至(6)。
(2)微服务层进行资源核查,包括VNFM是否就位,计算节点是否就位。
(3)微服务层调用驱动层,进行VNF拉起请求。
(4)驱动层根据VNF请求对应的厂商/控制器进行分发,调用相应的具体驱动模块请求VNFM做VNF实例化。
(5)微服务层启动轮询任务,对VNF的状态进行轮询,轮询请求亦通过驱动层分发,调用厂商VNFM完成,微服务轮询到确定结果(active或error)后,保存状态,停止轮询。
(6)VNF就位或仍有物理设备需要纳管,北向发起设备控制器纳管请求。
(7)微服务层保存设备信息,将设备状态置为pending,而后向驱动层发起纳管请求。
(8)驱动层根据设备厂商/型号以及控制器ID, 将请求分发至具体驱动模块,调用厂商控制器进行设备(VNF或实体设备)纳管。
(9)微服务层启动轮询任务,对设备的状态进行轮询。轮询请求亦通过驱动层分发,调用厂商控制器完成,微服务轮询到确定结果(active或error)后,保存状态。
(10)若设备状态为active,微服务向驱动层发起获取设备接口请求,同样经过驱动分发后,从控制器侧读出设备可用接口(主要是物理接口),作为后续业务下发基础。
编排器业务下发流程由到达北向的工单触发。每个工单根据其字段取值,可以对应一个执行流程。即北向层按照一定时序,发起配置请求,所有配置均使用抽象微服务实现。典型流程如图7所示。
图7 编排器业务下发流程交互
流程说明如下。
(1)工单到达北向层。北向层首先对工单的基本参数进行校验(例如数据有效性、必选字段是否携带、是否与已有业务有冲突等)。若基本校验通过,则向上游系统返回临时应答(accepted)。
(2)北向层启动后台任务,开始按照工单的要求,执行编排。
(3)北向层请求下发第一个配置 (可能是图4中微服务涉及的任何配置)。
(4)微服务层进行资源校验(例如涉及的设备是否可用,剩余转发能力是否足够等),若缺少相应资源,可以在准备流程进行。
(5)微服务保存配置,向驱动层发出配置请求。
(6)驱动层根据设备设备厂商/型号以及控制器ID,将请求分发至具体驱动模块,调用厂商控制器进行配置下发。
(7)微服务层收到驱动层返回的配置结果,更新配置数据状态。
(8)北向持续下发配置请求,按步骤(2)~步骤(7)的过程重复执行,直到所有流程环节执行完毕(执行完毕,可包括正确执行完毕或中途出错回滚完毕)。
(9)北向层向上游系统回单,报告订单执行最终状态。
智能专线产品是基于某运营商的随选网络,面向中小企业客户提供的集上网、上云、智能服务于一体的云网融合型产品。网络服务编排系统是实现智能专线业务快速开通、业务快速上线的核心模块,负责overlay网络端到端的业务自动化配置与开通,产品整体系统组成如 图8所示。
图8 智能专线产品整体系统组成
智能专线应用部署和实施包含集团8个系统和全国31省区市多个系统的部署、接口注册、单接口联调、端到端业务自动化配置与验证。智能专线业务验证目标是通过集团客户关系管理(customer relationship management,CRM)系统下单完成智能专线测试环境的开通、变更、拆机业务的自动化配置。以开通为例,步骤如下。
(1)集团CRM发单。
(2)服务开通系统接收CRM单子,拆单分别进行underlay工单下发、云调工单下发、虚拟交换网关(virtual switch gateway,VSGW)间虚拟扩展局域网(virtual extensible local area network,VxLAN)配置下发、网关外线施工工单下发、A8C(政企网关)配置下发。
(3)省服务开通系统接收underlay工单。
(4)云调接收工单下发并进行正常回单。
(5)编排器接收VSGW间VxLAN配置下发工单并进行正常回单。
(6)集团服务开通系统下发外线施工单,ITMS+(增强型终端综合管理系统)通过省服务开通系统(省EOP)新装上报事件通知集团服开触发A8C配置下发。
(7)编排器接收A8C配置下发工单。
(8)集团服务开通系统向ITMS+获取网关IP地址并发起ping测试。
(9)集团服务开通系统向各系统发起报竣,政企CRM向网分交维客户订单信息,集团服务开通向网分交维电路开通资源信息。
(10)省服务维护界面通过网分接口查询展示相关信息。
为了验证本文提出的智能专线业务编排系统是否符合业务需求及系统灵活部署、业务快速上线标准,在配置成功的订单中,随机选取100个装机订单和100个拆机订单,记录装机和拆机业务执行完成的时间,装机订单执行时间统计和拆机订单执行时间统计分别见表3和表4。
从表3可以看出,一半左右的订单在3天内完成,全部订单在7天内完成。装机耗时主要在省内外线施工阶段,因为省内需要上门给客户安装设备,对于客户地址不支持专线配置的区域,还要进行其他基础设施建设,耗时无法避免。而3~7天的耗时,对于开通专线的企业来说,是可以满足客户需求的。从表4可以看出,拆机订单一半以上可以在1天内完成专线拆机操作,大部分订单可以在2天内完成拆机操作。从表3和表4可以看出,本文设计的智能专线业务编排系统,可以满足业务快速上线的要求。
表3 装机订单执行时间统计
表4 拆机订单执行时间统计
智能专线业务编排系统自2020年年初上线以来,一直稳定运行,截至2020年年底,累计完成2 699条专线的配置,订单执行情况如图9所示。其中,成功的订单数为2 032条,占专线总数的75.3%,在途订单数为536条,占专线总数的19.9%,异常订单数为131条,占专线总数的4.8%。所以,本文设计的智能专线业务编排系统与周围系统配合稳定,足以支撑31省区市的专线业务配置。
图9 智能专线2020年订单配置情况统计
本文提出的业务编排系统在架构设计上参考了国际标准最新进展及业界网络运营系统的实践,在框架搭建上参考了当前流行且比较稳定的开源框架,在研发实现、部署等组件选型上调研了多种开源组件,结合编排系统自身的特点,选定了适合业务编排的组件。通过面向工作流的编排引擎,将网络服务层提供松耦合的各能力进行编排组合,形成业务能力。通过模板化的业务流程和统一的业务建模语言,规范研发实现,提高系统的可维护和可扩展能力。通过构建开发和运营的双态系统,业务需求迅速转化为系统能力,满足不断扩充业务场景,实现自身的迭代演进的需求。未来该系统将面向下一代网络智能化融合发展的目标,在业务产品承载运行中根据需求持续优化,支持智能专线业务形态分步分阶段的演进,并通过设计、现网验证和持续演进优化相结合的方式,为新一代运营系统的设计提供实践性的参考。