掌桥专利:专业的专利平台
掌桥专利
首页

一种控制器设备、方法及计算机可读存储介质

文献发布时间:2023-06-19 12:02:28


一种控制器设备、方法及计算机可读存储介质

技术领域

本公开涉及计算机网络,并且更具体地,涉及网络设备的管理。

背景技术

计算机网络是能够交换数据和共享资源的互连计算设备的集合。各种设备进行操作以促进计算设备之间的通信。例如,计算机网络可以包括路由器、交换机、网关、防火墙、以及其他设备,以提供和促进网络通信。

通常,这些网络设备包括用于本地化或远程配置设备的诸如管理接口等机制。通过与管理界面交互,客户端能够执行配置任务以及执行采集和查看被管理设备的操作数据的操作命令。例如,客户端可以配置设备的接口卡、调整所支持的网络协议的参数、指定设备内的物理部件、修改由路由器保存的路由信息、访问软件模块及驻留在设备上的其他资源、并且执行其他配置任务。此外,客户端可以允许用户查看当前操作参数、系统日志、与网络连接有关的信息、网络活动、或来自设备的其他状态信息、以及查看并且对从设备接收的事件信息做出反应。

网络配置服务可以由多个截然不同的设备执行,例如具有服务卡的路由器和/或专用服务设备。该服务包括诸如三层虚拟专用网(L3VPN)、虚拟专用局域网服务(VPLS)、以及对等(P2P)服务等连接服务。其他服务包括诸如Dot1q VLAN服务等网络配置服务。网络管理系统(NMS)及NMS设备(也被称为控制器或控制器设备)可以支持这些服务,以使得管理员能够易于创建并且管理这些高层网络配置服务。

具体地,可以将设备的用户配置称为“策略意图”或简称为“意图”或“策略”。基于意图的联网系统使得管理员描述预期的网络/计算/存储状态。用户意图可以分类为业务策略或无状态意图。可以基于网络的当前状态来解决业务策略或有状态意图。无状态意图可以是描述意图网络/计算/存储状态的完全声明方式,而无需关注当前网络状态。

可以将意图表示成意图数据模型,即,使用统一图形进行建模。可以将意图数据模型表示成连接图形,以使得能够跨意图数据模型实现业务策略。例如,可以使用具有顶点与自有边(has-edges)和参考(ref)边连接的连接图形表示数据模型。控制器设备可以将意图数据模型建模成统一图形,以使得能够将意图模型表示为已连接。如此,能够跨意图数据模型实现业务策略。当使用统一图形模型对意图进行建模时,扩展新的意图支持需要对图形模型和编译逻辑进行扩展。

为了配置设备以执行意图,用户(诸如管理员等)可以编写将高级配置指令(例如,根据意图数据模型(可以表达为统一图形模型)的指令)转换成低级配置指令(例如,根据设备配置模型的指令)的转换程序。作为配置服务支持的一部分,用户/管理员可以提供意图数据模型以及意图数据模型与设备配置模型之间的映射。

为了简化对用户的映射定义,控制器设备可以被设计为提供以简单的方式对映射进行定义的能力。例如,一些控制器设备提供使用速度模板和/或可扩展样式表语言转换(XSLT)。此类转换器包含从意图数据模型至低级设备配置模型的转换或映射逻辑。通常,意图数据模型中的相对少量的变化影响跨设备配置的相对大量的特性。当从意图数据模型创建、更新和删除服务时,可以使用不同的转换器。

发明内容

大体上,本公开描述了用于管理网络设备的技术。网络管理系统(NMS)设备,此处也被称为控制器设备,可以使用低级(例如,设备级)配置数据配置网络设备。而且,控制器设备可以基于网络设备的低级配置数据管理网络设备。根据本公开的技术,控制器设备可以被配置为确定软件应用的站点级使用。在本实例中,控制器设备可以被配置为基于软件应用的站点级使用为对站点应用低级配置数据进行优先级排序。以这种方式,在对不可能使用软件应用的低级配置数据的站点处的网络设备应用低级配置数据之前,控制器设备可以对可能使用软件应用的站点处的网络设备应用软件应用的低级配置数据。

此处描述的技术可以帮助改善网络性能。例如,控制器设备可以被配置为基于在相应站点软件应用的站点级使用确定多个站点中的每个相应站点的优先级索引。在本实例中,控制器设备可以基于每个相应站点的优先级索引确定站点的排序列表。按照由排序列表指定的顺序配置站点处的网络设备可以致使网络比不使用站点的排序列表的系统更快地对网络中的网络设备进行有效地配置。

在一个实例中,一种方法包括:通过管理布置在多个站点的多个网络设备的控制器设备确定用于管理在多个网络设备的软件应用并且由图形模型表示的有状态意图;通过控制器设备将有状态意图转换成用于配置多个网络设备的低级配置数据;由控制器设备基于软件应用在相应站点处的站点级使用确定多个站点中的每个相应站点的优先级索引;由控制器设备基于多个站点中的每个相应站点的优先级索引确定多个站点的排序列表;以及由控制器设备针对多个站点中的每个相应站点并且按照由多个站点的排序列表指定的顺序而根据低级配置数据配置布置在相应站点的多个网络设备中的一个或多个网络设备。

在另一实例中,一种控制器设备,管理布置在多个站点的多个网络设备,该控制器设备包括在线路中实现的一个或多个处理单元,并且一个或多个处理单元被配置为:确定用于管理在多个网络设备的软件应用并且由图形模型表示的有状态意图;将有状态意图转换成用于配置多个网络设备的低级配置数据;基于软件应用在相应站点处的站点级使用确定多个站点中的每个相应站点的优先级索引;基于多个站点中的每个相应站点的优先级索引确定多个站点的排序列表;以及针对多个站点中的每个相应站点并且按照由多个站点的排序列表指定的顺序而根据低级配置数据配置布置在相应站点的多个网络设备中的一个或多个网络设备。

在一个实例中,一种计算机可读存储介质,其上存储有指令,当执行该指令时,致使管理布置在多个站点的多个网络设备的控制器设备中的一个或多个处理单元:确定用于管理在多个网络设备的软件应用并且由图形模型表示的有状态意图;将有状态意图转换成用于配置多个网络设备的低级配置数据;基于软件应用在相应站点处的站点级使用确定多个站点中的每个相应站点的优先级索引;基于多个站点中的每个相应站点的优先级索引确定多个站点的排序列表;以及针对多个站点中的每个相应站点并且按照由多个站点的排序列表指定的顺序而根据低级配置数据配置布置在相应站点的多个网络设备中的一个或多个网络设备。

在所附附图及下列描述中阐述了一个或多个实例的细节。从描述及附图、以及权利要求中,其他特征、目标、以及优点将变得显而易见。

附图说明

图1是示出包括使用管理设备进行管理的企业网络的元件的实例的框图。

图2是示出图1中的管理设备的一组示例性部件的框图。

图3是示出意图数据模型的示例性统一图形模型的概念图。

图4是示出根据本公开的技术的诸如图1和图2中的控制器设备等控制器设备的部件的示例性模型的概念图。

图5是示出根据本公开的技术的诸如图1和图2中的控制器设备等控制器设备的部件的第一示例性工作流的概念图。

图6是示出根据本公开的技术的诸如图1和图2中的控制器设备等控制器设备的部件的第二示例性工作流的概念图。

图7是示出根据本公开的技术的特定应用的历史数据的示例性曲线图的概念图。

图8是示出根据本公开的技术的图8中的特定应用的历史数据的曲线图的示例性最佳拟合线的概念图。

图9是示出根据本公开的技术的表示软件应用的使用随着时间推移而增加的示例性最佳拟合线的概念图。

图10是示出根据本公开的技术的表示软件应用的使用随着时间推移恒定的示例性最佳拟合线的概念图。

图11是示出根据本公开的技术的表示软件应用的使用随着时间推移而减少的示例性最佳拟合线的概念图。

图12是示出根据本公开的技术的表示第一站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。

图13是示出根据本公开的技术的表示第二站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。

图14是示出根据本公开的技术的表示第三站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。

图15是示出根据本公开的技术的表示第四站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。

图16是示出根据本公开的技术的表示第五站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。

图17是示出根据本公开的技术的表示第六站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。

图18是示出根据本公开的技术的表示第七站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。

图19是示出根据本公开的技术的表示第八站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。

图20是示出根据本公开的技术的可由策略映射器和/或调度器执行的用于对策略更新进行优先级排序以调度部署作业的示例性过程的流程图。

图21是示出根据本公开的技术的可由策略映射器和/或调度器执行的用于对策略更新进行优先级排序以确定部署作业的优先级顺序的示例性过程的流程图。

图22是示出根据本公开的技术的用于确定多个站点的排序列表以对意图更新进行优先级排序的示例性过程的流程图。

具体实施方式

在一些控制器设备中,例如,可以将诸如软件定义的广域网(SD-WAN)或防火墙等意图策略同时部署至多个站点上。当涉及相对大量的站点时,该控制器设备可以批量部署意图策略。例如,如果存在1000个站点,则该控制器设备将1000个站点划分成20个站点的批次。在本实例中,如果每批最多划分3至4分钟来部署意图策略,则该控制器设备可能要花费数小时才能在所有1000个站点上完成部署。在一些应用中,控制器设备可以被配置为支持超7500个站点。因此,在对所有站点应用意图策略时,可能存在明显的延迟。

然而,此类控制器设备可以将意图策略应用在非关键站点上,或在可能会从立即应用的策略中受益的关键站点上对部署的策略没有太大影响的站点上。在示例性的网络中,1000个站点中只有10个站点(例如,1%的使用率)可能正在使用特定的软件应用。在本示例性的网络中,使用特定应用对10个站点进行优先化可以有助于改善示例性网络的用户体验。例如,如果管理员希望立即在所有站点上拒绝某个特定应用或改变任意特定软件应用的流量控制配置文件,则此类控制器设备可能会花费的宝贵的时间和资源将策略意图部署在不太可能使用的站点上,并且延迟在使用特定软件应用的概率较高的站点上的部署。此外,如果存在优先级低并且对控制器设备的响应延迟的任意站点,控制器设备则可能由于基础网络设备响应于控制器设备所产生的延迟响应而花费相当大量的时间重新尝试失败的部署。

根据本公开的技术,控制器设备可以被配置为“学习”应用的站点级使用。例如,控制器设备可以被配置为使用在一时间段内累积的网络日志(例如,syslog)和/或应用日志(例如,AppTrack日志)的历史记录来确定软件应用在不同的时间戳和频率下的站点使用。利用每个站点的这种可用的历史流量数据和详细信息,控制器设备可以基于所选择的应用和作业的计划时间,而针对策略意图部署动态地对站点进行重新布置和优先级排序。

此处描述的技术可以通过例如对应用配置变化的网络设备的站点进行优先级排序和排序而帮助客户面对规模性和性能问题。在一些实例中,控制器设备可以被配置为持续地学习并且关联从网络分析的数据。因此,控制器设备可以被配置为按照必须基于流量趋势的变化完成部署的顺序动态地对站点进行优先级排序。例如,控制器设备可以被配置为按照必须基于区域指定应用和/或威胁完成部署的顺序对动态地站点进行优先级排序。在一些实例中,控制器设备可以被配置为按照必须基于应用关键补丁和/或策略的时区指定维护窗口完成部署的顺序对站点动态地进行优先级排序。控制器设备可以被配置为对其他功能应用相似的技术,诸如但不限于,网络设备的磁盘镜像升级或另一功能。

图1是示出包括使用控制器设备10管理的企业网络2中的元件的实例的框图。企业网络2中的被管理元件14A–14G(统称“元件14”)包括经由通信链路互连而形成通信拓扑结构的网络设备,以交换资源和信息。例如,元件14(通常也被称为“网络设备”或“远程网络设备”)可以包括路由器、交换机、网关、电桥、集线器、服务器、防火墙、或其他入侵检测系统(IDS)、或入侵预防系统(IDP)、计算设备、计算终端、打印机、其他网络设备、或该设备的组合。尽管在本公开中被描述为发送、传送、或通过其他方式支持分组,然而,企业网络2可以根据诸如由异步传输模式(ATM)协议定义的信元或由用户数据报协议(UDP)定义的数据报等由任意其他协议定义的任意其他离散数据单元而发送数据。互连元件14的通信链路可以是物理链路(例如,光学、铜等)、无线、或其任意组合。

企业网络2被示出为经由通信链路耦合至公共网络18(例如,互联网)。例如,公共网络18可以包括一个或多个客户端计算设备。公共网络18可以提供对网页服务器、应用服务器、公共数据库、媒体服务器、端用户设备、以及其他类型的网络资源设备和内容的访问。

控制器设备10经由企业网络2通信地耦合至元件14。在一些实例中,尽管出于图1中的实例之目的而仅示出设备管理系统中的一个设备,然而,控制器设备10构成设备管理系统的一部分。控制器设备10可以直接或间接地耦合至各个元件14。一旦部署并且激活元件14,管理员12则使用控制器设备10(或多个该管理设备)来管理使用设备管理协议的网络设备。一个示例性的设备协议是允许控制器设备10对管理信息库(MIB)进行遍历和修改的简单网络管理协议(SNMP),管理信息库将配置数据存储在各个管理元件14内。在http://tools.ietf.org/html/rfc3411可获得的Harrington等人的RFC 3411“An Architecturefor Describing Simple Network Management Protocol(SNMP)ManagementFrameworks,”Network Working Group,the Internet Engineering Task Force draft中能够找到SNMP协议的进一步细节,通过引用将其全部内容结合于此。

元件14可以布置在站点13A–13C(统称“站点13”)中。例如,元件14A和14B可以布置在站点13A处。元件14C–14E可以布置在站点13B处。在一些实例中,元件14F和14G可以布置在站点13C处。尽管图1中的实例仅示出了三个站点(例如,站点13A–13C),然而,其他实例可以包括两个站点、三个以上站点。在一些实例中,站点可以仅具有一个元件或可以包括四个以上元件。

控制器设备10(也被称为网络管理系统(NMS)或NMS设备)和元件14可以由企业的IT组集中维护。管理员12可以与控制器设备10交互以远程监测和配置元件14。例如,管理员12可以从控制器设备10接收关于任意元件14的警报、查看元件14的配置数据、修改元件14的配置数据、将新的网络设备添加至企业网络2、移除企业网网络2中的已有网络设备、或通过其他方式操纵企业网络2及其中的网络设备。尽管针对企业网络进行了描述,然而,本公开的技术适用于其他网络类型的公共和私有网,包括LAN、VLAN、VPN等。

在一些实例中,管理员12使用控制器设备10或本地工作站14例如通过远程网、安全壳(SSH)、或其他该等通信会话与元件直接交互。即,元件14通常提供用于直接交互的接口,诸如命令行接口(CLI)、基于网页的接口、图形用户界面(GUI)等,用户通过接口能够与设备交互,以直接发送基于文本的命令。例如,这些接口通常允许用户例如通过远程网、安全壳(SSH)、超文本传输协议(HTTP)、或其他网络会话与设备直接交互,以根据所定义的语法输入文本而将命令提交至管理元件。在一些实例中,用户使用控制器设备10发起与元件14之一(例如,元件14F)的SSH会话15,以直接配置元件14F。如此,用户能够通过直接运行的格式将命令提供至元件14。

进一步地,管理员12还能够创建可由控制器设备10提交至任意或全部元件14的脚本。例如,除CLI接口之外,元件14还提供用于接收根据脚本语言指定命令的脚本的接口。在某种意义上,脚本可以由控制器设备10输出,以自动调用管理元件14上的对应远程过程调用(RPC)。脚本可以符合例如可扩展标记语言(XML)或另一数据描述语言。

管理员12可以使用控制器设备10配置元件14,以指定管理员12的进一步目标的特定操作特性。例如,管理员12可以为元件14指定关于安全性、设备访问性、流量工程、服务质量(QoS)、网络地址转换(NAT)、分组滤波、分组转发、速率限制的具体操作策略、或其他策略。控制器设备10使用针对管理网络元件14内的配置数据的管理而设计的一个或多个网络管理协议(诸如SNMP协议或网络配置协议(NETCONF)协议或其派生协议(诸如Juniper设备管理接口等))来执行配置。通常,NETCONF提供用于配置网络设备的机制,并且对配置数据(可以包括策略数据)使用基于可扩展标记语言(XML)的数据编码。在tools.ietf.org/html/rfc4741可获得的Enns“NETCONF Configuration Protocol”Network WorkingGroup,RFC 4741,Dec.2006中对NETCONF进行了描述。控制器设备10可以与一个或多个元件14建立NETCONF会话。

控制器设备10可以被配置为将新的意图数据模型与已有(或旧的)意图数据模型进行比较、确定新的意图数据模型与已有意图数据模型之间的差异、并且对新的意图数据模型与旧的意图数据模型之间的差异应用反应性映射器。具体地,控制器设备10可以确定新的一组配置数据相对于旧的意图数据模型是否包括任意额外的配置参数、以及新的一组配置数据是否修改或省略了旧的意图数据模型中所包括的任意配置参数。

意图数据模型可以是统一图形模型(此处也被简称为“图形模型”),而低级配置数据可以符合各个元件14支持的命令语言。例如,元件14A的低级配置数据可以是元件14A支持的第一供应商指定语言,元件14B的低级配置数据可以是元件14B支持、而非元件14A支持的第二供应商指定语言等。在一些实例中,可以通过在tools.ietf.org/html/rfc6020可获得的Bjorklund“YANG—A Data Modeling Language for the Network ConfigurationProtocol(NETCONF)”Internet Engineering Task Force,RFC6020,Oct.2010中描述的YAML Ain’t标记语言(YAML)或YANG来表示意图数据模型。控制器设备10可以包括用于对意图数据模型差异进行转换的各种反应性映射器。这些功能被配置为接受意图数据模型(例如,根据YANG或YAML可被表示成结构输入参数)。功能还被配置为输出低级设备配置数据变化的相应集合,例如,设备配置添加和去除。即,y1=f1(x)、y2=f2(x)、…yN=fN(x)。

控制器设备10可以使用YANG建模用于意图数据模型。该数据可以包括YANG实体之间的关系,例如,列表项和容器等。在一些实例中,控制器设备可能不支持实时配置管理功能。如下面更为详细讨论的,控制器设备10可以将YANG数据模型转换成数据库模型,并且将YANG验证转换成数据验证。在于2017年3月17日提交的美国专利申请号15/462,465的“CONFIGURING AND MANAGING NETWORK DEVICES USING PROGRAM OVERLAY ON YANG-BASEDGRAPH DATABASE”中描述了使用高级配置数据的图形模型管理网络设备的技术,通过引用将其全部内容结合于此。

控制器设备10可以从一名管理员12接收表示相对于统一意图数据模型的创建、更新、和/或删除动作中的任一个或全部的数据。控制器设备10可以被配置为针对创建、更新、以及删除中的每项使用与应用于图形模型相同的编译逻辑。控制器设备10可以针对意图、低级数据模型、和/或资源使用分层数据模型。控制器设备10可以在YANG、YAML、或另一模型上使用分层数据模型。如上面讨论的,控制器设备10可以将分层数据模型表示成图形。一些系统可以支持简化网络管理的意图。意图可以是声明性的。为了实现意图,控制器设备10可以尝试选择最优的资源。

此处描述的技术可以通过例如对具有应用配置变化的网络设备的站点进行优先级排序和排序而帮助面临规模和性能问题的客户。例如,控制器设备10可以被配置为基于相应站点上软件应用的站点级使用确定多个站点13中的每个相应站点的优先级索引。控制器设备10可以持续地学习并且关联从网络分析的数据。因此,控制器设备10可以被配置为按照必须基于流量趋势的变化完成部署的顺序动态地对站点进行优先级排序。例如,控制器设备10可以被配置为按照必须基于区域指定应用和/或威胁完成部署的顺序动态地对站点进行优先级排序。在一些实例中,控制器设备10可以被配置为按照必须基于应用关键补丁和/或策略的时区指定维护窗口完成部署的顺序动态地对站点进行优先级排序。

控制器设备10可以被配置为管理布置在站点13的元件14。例如,管理员12可以使用控制器设备10来配置元件14,以指定管理员12的进一步目标的特定操作特性。控制器设备10可以确定用于管理元件14处的软件应用并且由图形模型表示的有状态意图。例如,控制器设备10可以确定软件应用的新的一组配置数据相对于旧的意图数据模型是否包括任意额外的配置参数、以及新的一组配置数据是否修改或省略了旧的意图数据模型中所包括的任意配置参数。控制器设备10可以将有状态意图转换成用于配置元件14的低级配置数据。例如,控制器设备10可以将有状态意图转换成以YANG表示的低级配置数据。

控制器设备10可以为基于相应站点上软件应用的站点级使用确定站点13中的每个相应站点的优先级索引。例如,控制器设备10可以基于站点13A的网络日志(例如,syslog)和/或应用日志(例如,AppTrack日志)确定站点13A的第一优先级索引。在本实例中,控制器设备10可以基于站点13B的网络日志(例如,syslog)和/或应用日志(例如,AppTrack日志)确定站点13B的第二优先级索引。控制器设备10可以基于站点13C的网络日志(例如,syslog)和/或应用日志(例如,AppTrack日志)确定站点13C的第三优先级索引。

控制器设备10可以基于多个站点中的每个相应站点的优先级索引确定站点14的排序列表。例如,响应于确定站点14B具有比站点14A和14C更高的优先级索引并且响应于确定站点14C具有比站点14A更高的优先级索引,控制器设备可以确定站点的排序列表为{站点14B、站点14C、以及站点14A}。

控制器设备10可以针对站点13中的每个相应站点并且按照由站点13的排序列表指定的顺序以低级配置数据配置布置在相应站点的元件14中的一个或多个元件。例如,控制器设备10可以以低级配置数据配置布置在站点113B的元件14C–14E。在本实例中,在以低级配置数据配置布置在站点13B的元件14C–14E之后,控制器设备10可以以低级配置数据配置布置在站点13C的元件14F和14G。在根据低级配置数据配置布置在站点13C的元件14F和14G之后,控制器设备10可以根据低级配置数据配置布置在站点13A的元件14A和14B。

如此,此处描述的技术可以动态地对站点13进行进行优先级排序。例如,控制器设备10可以被配置为按照必须基于区域指定应用和/或威胁完成部署的顺序动态地对站点13进行优先级排序。在一些实例中,控制器设备10可以被配置为按照必须基于应用关键补丁和/或策略的时区指定维护窗口完成部署的顺序动态地对站点进行优先级排序。尽管本实例用于应用低级配置数据,然而,在一些实例中,控制器设备10可以被配置为对其他功能应用相似的技术,诸如但不限于,网络设备上的磁盘镜像升级或另一功能。

例如,配置控制器设备10以基于软件应用在相应站点处的站点级使用确定站点13中的每个相应站点的优先级索引,可以帮助改善下面进一步讨论的企业网络2的性能。利用软件应用的站点级使用确定优先级索引可以帮助解决软件应用使用情况的区域变化,从而可以帮助提高优先级索引的准确性。提高优先级索引的准确性可以帮助改善下面进一步讨论的企业网络2的性能。在本实例中,控制器设备10可以基于多个站点中的每个相应站点的优先级索引确定站点13的排序列表。控制器设备10可以针对站点13中的每个相应站点并且按照由站点13的排序列表指定的顺序而根据低级配置数据配置布置在相应站点处的元件14中的一个或多个元件。例如,当仅元件14C–14E正在使用软件应用时,控制器设备10可以针对软件应用以低级配置数据配置站点13A中的元件14C–14E。在本实例中,在对元件14C–14E应用配置数据之后,当仅元件14C–14G正在使用软件应用时,控制器设备10可以针对软件应用以低级配置数据配置站点13C中的元件14F、14G。在对元件14C–14G应用配置数据之后,控制器设备10可以针对软件应用以低级配置数据配置站点13A中的元件14A、14B。如此,可以改善企业网络2的性能,以比不基于站点级使用确定优先级索引的网络更快地对元件14有效地应用配置数据。

图2是示出图1中的控制器设备10的一组示例性部件的框图。在本实例中,控制器设备10包括控制单元22、网络接口34、以及用户接口36。网络接口34可以表示能够使网络设备20通信地耦合至外部设备(例如,图1中的一个元件14)的示例性接口。网络接口34可以表示无线和/或有线接口,例如,以太网接口或被配置为根据诸如一个或多个IEEE 802.11无线网络协议(例如,802.11a/b/g/n等)进行通信的无线电。尽管出于示例性之目的而仅示出了一个网络接口,然而,在各个实例中,控制器设备10可以包括多个网络接口。

控制单元22表示用于实现归属于控制单元22及其组成模块和元件的功能的硬件、软件和/或固件的任意组合。当控制单元22包括软件或固件时,控制单元22可以包括诸如一个或多个处理器或处理单元的用于存储和执行软件或固件的硬件。通常,处理单元可以包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)、或任意其他等效的集成或离散逻辑线路、以及该等部件的任意组合。进一步地,通常使用固定和/或可编程逻辑线路实现处理单元。

用户接口36表示诸如管理员12等(图1)用户与控制器设备10交互(例如,提供输入并且接收输出)的一个或多个接口。例如,用户接口36可以表示监测器、键盘、鼠标、触摸屏、触摸板、触控板、扬声器、摄像头、麦克风等中的一项或多项。进一步地,在本实例中,尽管控制器设备10包括用户接口,然而,管理员12不需要与控制器设备10直接交互,而是可以远程(例如,经由网络接口34)访问控制器设备10。

控制单元22可以包括用户接口模块38、网络接口模块32、以及管理模块24。控制单元22可以执行用户接口模块38,以从用户接口36接收输入和/或向用户接口36提供输出。控制单元22可以执行网络接口模块32,以经由网络接口34发送并且接收数据(例如,网络分组)。用户接口模块38、网络接口模块32、以及管理模块24可以实现为各自的硬件单元、软件、固件、或硬件单元、软件、固件的组合。

控制单元22的功能可以实现为固定或可编程数字逻辑线路中的一个或多个处理单元。例如,该数字逻辑线路可以包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任意其他等同的集成或离散逻辑线路、以及该等部件的任意组合。当实现为可编程逻辑线路时,控制单元22可以进一步包括存储由控制单元22的处理单元执行的硬件或固件指令的一个或多个计算机可读存储介质。

控制单元22可以执行管理模块24,以管理各网络设备,例如,图1中的元件14。例如,管理包括:根据从用户(例如,图1中的管理员12)接收的指令配置网络设备,以及向用户提供提交指令、以配置网络设备的能力。在本实例中,管理模块24进一步包括配置模块26和转换模块28。

管理模块24被配置为从诸如管理员12等用户接收关于一组受管网络设备的意图统一图形建模配置数据。意图统一图形建模的配置数据可以被称为“意图数据模块”。随着时间的推移,用户(例如,图1中所示的管理员12)可以对配置数据进行更新,例如,添加新的服务、移除已有的服务、或修改由管理设备执行的已有服务。统一意图数据模型可以例如根据YANG或YAML构造。图形模型可以包括通过边以分级方式连接的多个顶点。在YANG中,通过“leafref”元素表示图形模型的边。在YAML的情况下,可以通过“ref”边表示该边。同样,能够用“自有(has)”边表示父代至子代的顶点关系。例如,元素A的顶点指使用自有边(has-edge)的元素B的顶点,可以理解为“元素A具有元素B”。在一些实例中,管理模块24还向用户提供提交反应性映射器的能力、转换模块28执行该反应性映射器以将意图数据模型转换成设备专用的低级配置指令。

控制器设备10可以包括配置数据库40。配置数据库40可以包括描述所管理网络设备(例如,元件14)的信息。配置数据库40可以用作意图数据库,意图数据库可以用于保存并且管理意图数据模型的集合。例如,配置数据库40可以包括指示设备标识符(诸如MAC和/或IP地址等)、设备类型、设备厂商、设备种类(例如,路由器、交换机、电桥、集线器等)等的信息。配置数据库40可以存储关于所管理设备(例如,元件14)的当前配置信息(例如,意图数据模型,或在某些情况下,意图数据模型和低级配置信息两者)。配置数据库40可以包括统一意图数据模型。

转换模块28可以基于配置数据库40的信息确定在意图数据模型上执行哪些反应性映射器30,例如,哪些设备即将接收低级配置指令。转换模块28可以执行反应性映射器30中的各个已确定的反应性映射器,从而将意图数据模型(例如,YANG模型)提供至反应性映射器作为输入并且接收低级配置指令(例如,符合各个元件14支持的命令语言)。转换模块28还可以被称为意图转换器,即,包含诸如反应性映射器30等一组映射器的服务。

例如,通过从配置数据库40中检索每个服务的意图数据模型,配置模块26可以为要为其更新配置的设备执行的每个服务确定现有意图数据模型。配置模块26可以将现有意图数据模型(此处也被称为“已部署图形模型”)与新接收的意图数据模型进行比较、并且确定现有意图数据模型与新接收的意图数据模型(也被称为“未部署图形模型”)之间的差异。配置模块26可以将这些变化添加至转换器流,并且反应性映射器30可以将这些变化转换成低级配置信息。变化可以包括在变化集中,变化集可以是包含意图图形顶点及对应版本标识符的列表。管理模块24可以使用变化集来跟踪在意图更新时改变的顶点列表。在提交意图之后,管理模块24可以使用变化集来更新意图图形模型中的顶点状态。配置模块26可以基于新接收到的意图数据模型更新配置数据库40中所记录的现有意图数据模型。

执行更新转换(即,转换统一意图数据模型中的变化,导致低级配置信息的值的更新,而不创建或删除低级配置数据中的元素)的反应性映射器30可以操作如下。在一实例中,执行更新的反应性映射器30可以覆盖单一的元素。例如,这些反应性映射器的执行可能导致元素值的删除,例如通过以新值替换旧的元素值。有时,可以将配置服务模型中的单个值映射至设备配置中的列表。在这些情况下,转换模块28可以发送旧值以及新值。

转换模块28(可以根据反应性映射器30进行配置)可以使用相同的反应性映射器来创建、更新和删除意图数据模型顶点。因为每个顶点具有其自身对应的反应性映射器,所以能够并行执行编译。例如,可以并行执行表示统一意图数据模型的图像模型中的各个顶点的反应性映射器,由此实现并行编译。转换模块28可以被配置为允许仅处理受影响的意图数据模型数据变化(即,意图数据模型中受变化影响的那些元素)。基于反应性映射器30,转换模块28可以推测意图数据模型中的顶点之间的依赖性。当意图数据模型改变时,转换模块28可以基于上面讨论的依赖性图形在转换器流中公布消息。

当上传“创建”模板时(即,相对于现有意图数据模型配置信息,处理意图数据模型配置信息中的新数据的反应性映射器30中的反应性映射器),转换模块28可以使用依赖性图形确定依赖性。当服务改变时,转换模块28可以基于依赖性生成现有意图数据模型配置信息与新的意图数据模型配置信息之间的差异。然后,转换模块28可以使用反应性映射器30中的该反应性映射器来处理差异,由此将意图数据模型配置信息转换成低级配置指令。然后,转换模块28可以将低级配置指令提供至配置模块28。

尽管出于示例性之目的将用户接口36描述为允许管理员12(图1)与控制器设备10交互,然而,在其他实例中,可以使用其他接口。例如,控制器设备10可以包括用作另一设备的接口的代表性状态转移(REST)客户端(未示出),由此,管理员12可以对控制器设备10进行配置。同样,管理员12可以通过REST客户端与控制器设备10交互而配置元件14。

管理模块24可以将配置数据库40建模成表示YANG配置数据元素的图形数据库。YANG指定了各种类型的数据结构,包括列表、叶列表、容器、具有状态的容器以及特征。管理模块24可以将列表、容器、具有状态的容器和特征的容器、以及顶级容器中的每项建模成图形数据库中的顶点。可替代地,配置数据库40可以表示YAML配置数据元素。

在构建图形数据库之后,管理模块24可以对图形数据库中的数据执行操作。例如,管理模块24可以将诸如get-config、具有滤波器的get-config、以及edit-config等基于Netconf的操作映射至诸如Gremlin查询的图形查询语言查询。在gremlindocs.spmallette.documentup.com中的GremlinDocs并且在github.com/tinkerpop/gremlin/wiki中对Gremlin进行了描述。如果条件属性改变,管理模块24则可以执行被映射至图形数据库中的顶点和边的条件。响应于条件,管理模块24可以对额外的变化(作为下面更为详细讨论的功能被处理)进行处理。管理模块24可以对转换语义中的全部变化进行更新。

在从转换模块28接收低级配置指令之后,配置模块28可以访问网络历史数据库54。对于站点13中的每个站点,网络历史数据库54可以包括一个或多个应用日志(例如,AppTrack日志)和/或一个或多个网络日志(例如,syslog)。特定应用和特定站点的每个应用日志可以包括被传输至该站点并且供软件应用用于每个事件的相应数据量。例如,站点13A的视频共享应用的第一应用日志可以指示被传输至站点并且供视频共享应用用于每个事件的特定数据量。在本实例中,站点13A的视频流应用的第二应用日志可以指示被传输至站点并且供视频流应用用于每个事件的特定数据量。

特定应用和特定站点的每个网络日志可以包括向站点传输并且供软件应用使用的数据量的时间。例如,网络日志可以包括对应应用日志中的每个事件的时间戳。例如,站点13A的视频共享应用的应用日志可以指示被传输至站点并且供视频共享应用用于第一事件的特定数据量。在本实例中,站点13A的网络日志可以指示应用日志中的第一事件的特定时间。在一些实例中,配置模块26可以生成表示软件应用的站点级使用的曲线图(见图7),该图表示在一定时间段(例如,一天)内被传输至特定站点并且供特定软件应用用于每个事件的特定数据量。

控制单元22可以被配置为管理布置在站点13处的元件14(图1中所示)。管理模块24可以确定用于管理元件14处的软件应用并且由图形模型表示的有状态意图。例如,管理模块24可以从管理员12接收有状态意图。转换模块28可以将有状态意图转换成用于配置元件14的低级配置数据。例如,转换模块28可以将有状态意图转换成低级配置数据。

配置模块26可以基于在相应站点软件应用的站点级使用确定站点13中的每个相应站点的优先级索引。例如,配置模块26可以基于存储在网络历史数据库54中的网络日志(例如,syslog)和/或应用日志(例如,AppTrack日志)确定每个站点13的优先级索引。

配置模块26可以基于多个站点中的每个相应站点的优先级索引确定站点14的排序列表。例如,响应于确定站点14B具有比站点14A和14C更高的优先级索引并且响应于确定站点14C具有比站点14A更高的优先级索引,配置模块26可以确定站点的排序列表为{站点14B、站点14C、以及站点14A}。

配置模块26可以针对站点13中的每个相应站点并且按照由站点13的排序列表指定的顺序而根据低级配置数据配置布置在相应站点的元件14中的一个或多个元件。例如,控制器设备10可以根据低级配置数据配置布置在站点13B的元件14C–14E。在本实例中,在根据低级配置数据配置布置在站点13B的元件14C–14E之后,控制器设备10可以根据低级配置数据配置布置在站点13C的元件14F和14G。在根据低级配置数据配置布置在站点13C的元件4F和14G之后,控制器设备10可以根据低级配置数据配置布置在站点13A的元件14A和14B。

图3是示出意图数据模型的示例性统一图形模型60的概念图。除此之外,在本实例中,统一图形模型60包括节点A 62、节点B 64、以及节点C 66。最初,统一图形模型可能不包括VPN 68、VPN 72、以及VPN 78,亦不包括光学1 80、Lambda 82、光学1 84、以及Lambda 86。由于通过意图数据模型更新进行修改,节点A 62经由VPN 68和LSP1 70耦合至节点B 64,节点B 64经由VPN 72和LSP2 74耦合至节点C 66,并且节点C66经由VPN 78和LPS3 76耦合至节点A 62。进一步地,由于需要额外的能力作为光学意图,将额外的节点光学1 80、Lambda82、光学1 84、以及Lambda 86添加在节点B 64与节点C 66之间。

能够将有状态业务策略写在无状态意图层之上。例如,用户可以陈述意图“在站点A、B、以及C之间提供高带宽VPN连接,A-B、B-C、C-A之间的带宽…”。这可能导致产生各种无状态意图。有状态意图可以转换成L3VPN(覆盖隧道)提供所需带宽的A-B、B-C、C-A之间的传输机制。例如,传输机制可以包括A与B之间具有30Mbp的RSVP LSP、B与C之间具有50Mbp的RSVP LSP、以及C与A之间具有80Mbp的RSVP LSP。在本实例中,可能需要在C与A之间创建具有80Mbp的RSVP-LSP。可能存在需要更大的能力的情形,因此,还可能存在进一步的意图“光学意图:提高C与A之间的能力”。如果C与A之间已经存在70Mbp连接,则无状态意图可以通过光学网络在C与A之间提供新的10G lambda。

当实现有状态意图时,诸如控制器设备10的控制器设备可能需要考虑端点之间的现有无状态意图以及当前状态。在上面实例中,为了执行各种意图,控制器设备10可以根据需要查询连接图形(包括无状态意图)并且创建/修改无状态意图。在2017年3月17日提交的美国申请号15/462,465中描述了与使用统一图形模型和意图有关的技术,通过引用将其全部内容结合于此。由此,意图数据模型可以使用统一图形模型来表示。当添加更多的用例时,可以对意图数据模型(即,统一图形模型)进行扩展。此外,使用统一图形模型允许基于端点(例如,通过查询图形)对意图进行检索。

图4是示出根据本公开的技术的诸如控制器设备10等控制器设备的部件的示例性模型100的概念图。在本实例中,模型100包括业务策略管理单元102、意图基础设施110、以及分析节点130。业务策略管理单元102包括业务策略分析器104和优先级模块106。意图基础设施110包括意图层112、意图转换器114、元素配置服务116、意图数据库118、以及配置(config)数据库120。分析节点130包括应用日志集合132、网络日志集合134、以及网络历史数据库154。对于站点13中的每个站点,网络历史数据库154可以包括一个或多个应用日志(“AppTrack LOGS 153”)和一个或多个系统日志155(“SYS LOGS 155”)。

图2中的管理模块24可以包括执行属于模型100中的各个部件的功能的部件。例如,图2中的配置模块26可以与意图基础设施110对应,转换模块28可以与意图转换器114对应,配置数据库120可以与配置数据库40对应等。通过图2中的管理模块24可以实现图4中所示的特定部件。

通常,业务策略分析器104管理有状态意图。业务策略分析器104与保证模块106通信,以获得用于有状态意图的资源。业务策略分析器104还调用意图层112以提供无状态意图。本公开中的技术可以用来确保将业务策略几乎实时地转换至网络,以防止对服务水平协议(SLA)产生负面影响。意图转换器114可以被配置为同时对意图进行转换。在2019年2月21日提交的美国申请号16/282,160“SUPPORTING COMPILATION AND EXTENSIBILITY ONUNIFIED GRAPH BASED INTENT MODELS”中描述了关于意图的并行、同时编译的额外细节,通过引用将其全部内容结合于此。

在企业网络2操作期间,应用日志集合132可以针对每个站点13并且针对每个软件应用周期性地确定被传输至站点并且供软件应用所使用的数据量。例如,应用日志集合132可以确定针对视频共享应用向站点13A传输的第一数据量,并且在一个或多个应用日志153存储站点13A与视频共享应用的应用日志中的第一数据量的指示。应用日志集合132确定所传输的数据量的每个实例可以是事件。

在企业网络2操作期间,网络日志集合134可以针对每个站点13并且针对每个软件应用周期性地确定一个或多个应用日志153中的每个事件的时间。例如,网络日志集合134可以针对视频共享应用确定被传输至站点13A的第一数据量的第一时间并且在一个或多个网络日志155存储站点13A和视频共享应用的网络日志中的第一时间的指示。

在生成一个或多个应用日志153及一个或多个网络日志155之后,优先级模块106可以针对站点13中的一站点处的每个事件而使用一个或多个应用日志153确定被传输至站点并且供软件应用使用的相应数据量。例如,优先级模块106可以确定用于第一事件的第一数据量为2GB并且用于第二事件的第二数据量为1.5GB等。

优先级模块106可以使用一个或多个网络日志155而针对每个事件确定向站点传输并且供软件应用使用的相应数据量的相应时间。例如,优先级模块106可以针对第一事件确定与第一数据量2GB对应的第一时间1:00,针对第二事件确定与第二数据量1.5GB对应的第二时间2:00等。

优先级模块106可以针对一定时间段(例如,一天)内的每个事件生成表示软件应用的站点级使用的曲线图(见图7),软件应用的站点级使用表示被传输至特定站点并且供特定软件应用使用的特定数据量。在一些实例中,优先级模块106可以针对站点13中的一站点确定最佳拟合线,该最佳拟合线对比站点级使用的多个事件之中的每个事件表示被传输至站点并且供软件应用使用的相应数据量及向站点产生并且供软件应用使用相应数据量的相应时间。例如,优先级模块106可以对表示软件应用的站点级使用的曲线图应用线性回归、非线性回归、和/或机器学习。

优先级模块106可以被配置为使用最佳拟合线确定每个站点13的优先级索引。例如,优先级模块106可以基于最佳拟合线将每个站点分配给组。例如,优先级模块106可以将具有包括正斜率的最佳拟合线的每个站点分配给第一组、将具有包括恒定斜率的最佳拟合线的每个站点分配给第二组、将具有包括负斜率的最佳拟合线的每个站点分配给第三组。在一些实例中,优先级模块106可以向第一组的每个站点分配比分配给第二组和第三组的站点更高的优先级索引。

在一些实例中,优先级模块106可以确定一组站点中的每个站点的优先级索引。例如,优先级模块106可以使用最佳拟合线确定被传输至站点13A并且供软件应用使用的最大数据量。在本实例中,优先级模块106可以基于被传输至站点13A并且供软件应用所使用的最大数据量确定优先级索引。例如,借助于传输至站点13A的第一最大数据量比输至站点13B的第二最大数据量更高,优先级模块106可以确定包括站点13A和13B的一组站点中的站点13A具有最佳拟合线。在本实例中,响应于确定传输至站点13A的第一最大数据量比传输至站点13B的第二最大数据量更高,优先级模块106可以为站点13A分配该组的最高优先级索引(例如,‘1’)并且为站点13B分配该组的第二最高优先级索引(例如,‘2’)。

业务策略分析器104可以被配置为管理布置在站点13的元件14。业务策略分析器104可以确定用于管理在元件14的软件应用并且由图形模型表示的有状态意图。例如,业务策略分析器104可以从管理员12接收有状态意图。意图基础设施110可以将有状态意图转换成用于配置元件14的低级配置数据。例如,意图转换器114可以将有状态意图转换成以YANG表示的低级配置数据。

根据本公开的技术,优先级模块106可以基于在相应站点软件应用的站点级使用确定站点13中的每个相应站点的优先级索引。例如,优先级模块106可以基于一个或多个应用日志153及一个或多个网络日志155确定每个站点13的优先级索引。例如,优先级模块106可以被配置为使用每个站点13的最佳拟合线的斜率及所发送的最大数据量确定每个站点13的优先级索引。

优先级模块106可以基于多个站点中的每个相应站点的优先级索引确定站点14的排序列表。例如,响应于确定站点14B具有比站点14A和14C更高的优先级索引并且响应于确定站点14C具有比站点14A更高的优先级索引,优先级模块106可以确定站点的排序列表为{站点14B、站点14C、以及站点14A}。

意图基础设施110可以针对站点13中的每个相应站点并且按照由站点13的排序列表指定的顺序而根据低级配置数据配置布置在相应站点处的元件14中的一个或多个元件。例如,意图基础设施110可以根据低级配置数据配置布置在站点13B的元件14C–14E。在本实例中,在根据低级配置数据配置布置在站点13B的元件14C–14E之后,意图基础设施110可以根据低级配置数据配置布置在站点13C的元件14F和14G。在根据低级配置数据配置布置在站点13C的元件14F和14G之后,意图基础设施110可以根据低级配置数据配置布置在站点13A的元件14A和14B。如此,此处描述的技术可以动态地对站点13进行优先级排序。

图5是示出根据本公开的技术的诸如图1和图2中的控制器设备10等控制器设备的部件的第一示例性工作流的概念图。意图管理器252可以是意图基础设施110的一部分。在一些实例中,策略映射器256和调度器258可以是优先级模块106的一部分。

响应于对软件应用(“APP.”)、对全部站点应用特定服务级别(例如,黄金服务级别协议)的请求,意图管理器252可以确定用于管理应用于全部站点的软件应用的有状态意图和特定服务级别。在本实例中,意图管理器252可以使用数据库254将全部站点的有状态意图转换成低级配置数据。数据库254可以包括意图数据库(例如,图4中的意图数据库118)和/或配置数据库(例如,图4中的配置数据库120)。策略映射器256可以将应用低级配置数据细分成站点特定作业和设备特定配置。调度器258可以将站点特定作业和设备特定配置调度到任务池中。

图6是示出根据本公开的技术的诸如图1和图2中的控制器设备10等控制器设备的部件的第二示例性工作流的概念图。意图管理器252可以是意图基础设施110的一部分。在一些实例中,策略映射器256、调度器258、以及分析模块和/或机械学习模块260(“分析/ML模块260”)可以是优先级模块106的一部分。

与图5类似,响应于对软件应用、对全部站点应用特定服务级别(例如,黄金服务级别协议(SLA))的请求,意图管理器252可以确定用于管理应用于全部站点的软件应用的有状态意图和特定服务级别。在本实例中,意图管理器252可以使用数据库254将全部站点的有状态意图转换成低级配置数据。数据库254可以包括意图数据库(例如,图4中的意图数据库118)和/或配置数据库(例如,图4中的配置数据库120)。策略映射器256可以将应用低级配置数据细分为站点指定作业和设备指定配置。

根据本公开的技术,调度器262可以通过分析模块和/或机器学习模块260调度站点特定作业和设备特定配置。例如,分析模块和/或机器学习模块260可以被配置为按照必须基于流量趋势的变化完成部署的顺序动态地对站点进行优先级排序。在一些情况下,不同站点间的应用流量趋势可能不同,具体取决于与站点或站点的地理位置相关联的部门。例如,应用流量趋势可以在站点操作和/或位于不同的地理位置时而改变。例如,在第一时区的早间时段,通过位于第一时区内的站点的应用流量可能相对较高,而通过位于第二时区(地理位置上距第一时区较远)内的站点的应用流量可忽略不计或不存在。同样,在第一时区的傍晚时段,通过位于第二时区内的站点的应用流量可能相对较大,而通过位于第一时区内的站点的应用流量可忽略不计或不存在。因此,如果管理员(例如,管理员12)已打算拒绝所有站点上的特定应用流量,则通过优先于预期具有相对极为可忽略或不具有应用流量的站点优先地将策略部署到预期具有相对较大应用流量的站点来改善控制器设备10的性能。

分析模块和/或机器学习模块260可以生成应用使用的线性关系。例如,分析模块和/或机器学习模块260可以找出给定散布图的模型等式并且应用适当的回归。分析模块和/或机器学习模块260可以使用“相关系数”过程,其可以帮助找出变量之间的重要关系。相关系数的值的范围为从-1至1(-1表示强负相关并且+1表示强正相关)。相关系数为0表示变量之间不相关。在0相关的情况下,分析模块和/或机器学习模块260可以拒绝对站点进行优先级排序并且分批应用策略。在存在非零相关的实例中,分析模块可以进一步在X上回归Y,如下所示。

Y=fβ,X+e–回归等式

Y–因变量

X–自变量

β–模型参数

e–残差

如果参数(β1,β2)是线性的,则分析模块可以应用线性回归。例如,分析模块和/或机器学习模块260可以执行下列计算。

Y=β1X+β2

如果等式包括非线性参数,则分析模块可以使用非线性回归。例如,分析模块和/或机器学习模块260可以计算如下内容。

Y=eβ1X+β2

在线性或非线性技术中,优先级模块106可以确定β1和β2的值,以减少Y值与Ye的估测值之间的平方误差。

LSE=[e]2=[Y-Ye]2

参数数量(例如,β1、β2、β3等)与回归等式可以改变。

分析模块和/或机器学习模块260可以提供在每个站点软件应用的站点级使用。在一些实例中,分析模块和/或机器学习模块260可以应用线性回归、非线性回归、和/或机器学习来生成每个站点的最佳拟合线。分析模块和/或机器学习模块260可以使用最佳拟合线确定每个站点13的优先级索引。例如,分析模块和/或机器学习模块260可以基于每个站点的最佳拟合线将每个站点分配给组。例如,分析模块和/或机器学习模块260可以将具有包括正斜率的最佳拟合线的每个站点分配给第一组、将具有包括恒定斜率的最佳拟合线的每个站点分配给第二组、将具有包括负斜率的最佳拟合线的每个站点分配给第三组。

分析模块和/或机器学习模块260可以进一步基于由最佳拟合线指示的所传输的最大数据量确定每个站点的优先级索引。调度器262可以将站点特定作业和设备特定配置调度到任务池中。如此,此处描述的技术可以动态地对将低级配置数据应用于站点13进行优先级排序。例如,控制器设备10可以被配置为按照必须基于区域指定应用和/或威胁完成部署的顺序动态地对站点13进行优先级排序。在一些实例中,控制器设备10可以被配置为按照必须基于用于应用关键补丁和/或策略的时区特定维护窗口完成部署的顺序动态地对站点进行优先级排序。尽管本实例是用于应用低级配置数据,然而,在一些实例中,控制器设备10可以被配置为将类似技术应用于其他功能,诸如但不限于网络设备上的磁盘镜像升级或另一功能。

图7是示出根据本公开的技术的特定应用的历史数据302的示例性曲线图的概念图。在图7的实例中,控制器设备10可以从历史时间序列数据确定趋势。图7示出了所有站点上的特定应用(例如,视频流应用)的历史数据的曲线图。图7中的横坐标轴(例如,x轴)表示时间并且图7中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

如所示,事件310与时间1(例如,1:00PM ET、1:00PM IST等)的特定应用的2使用单位(例如,2MB、2GB等)对应,事件312与时间2(例如,2:00PM ET、2:00PM IST等)的特定应用的1.5使用单位对应,事件314与时间3(例如,3:00PM ET、1:00PM IST等)的特定应用的4使用单位对应,事件316与时间4(例如,4:00PM ET、4:00PM IST等)的特定应用的3使用单位对应,事件318与时间5(例如,5:00PM ET、5:00PM IST等)的特定应用的5使用单位对应,并且事件320与时间6(例如,6:00PM ET、6:00PM IST等)的特定应用的6使用单位对应。

图8是示出根据本公开的技术的图8中的特定应用的历史数据302的曲线图的示例性最佳拟合线330的概念图。图8中的横坐标轴(例如,x轴)表示时间并且图8中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图8的实例中,控制器设备10可以确定历史数据302的曲线图的最佳拟合线330(例如,其中一个具有最小平方误差)的等式。例如,控制器设备10可以使用线性回归确定最佳拟合线的等式。在一些实例中,控制器设备10可以使用非线性回归确定最佳拟合线的等式。控制器设备10可以使用机器学习确定最佳拟合线的等式。

图9是示出根据本公开的技术的表示软件应用的使用随着时间推移而增加的示例性最佳拟合线330的概念图。图9中的横坐标轴(例如,x轴)表示时间并且图9中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图9的实例中,控制器设备10可以确定最佳拟合线330的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,斜率具有值1(例如,m=1),且偏移量为0(例如,c=0)。然而,在其他实例中,正斜率可以大于0、大于1、或是另一正斜率。同样,在其他实例中,偏移量可以小于0、大于1、或是另一偏移量。

图10是示出根据本公开的技术的表示软件应用的使用随着时间推移恒定的示例性最佳拟合线342的概念图。图10中的横坐标轴(例如,x轴)表示时间并且图10中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图10的实例中,控制器设备10可以确定最佳拟合线342的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,斜率具有值0(例如,m=0),且偏移量为1.75(例如,c=1.75)。然而,在其他实例中,偏移量可以小于1.75、大于1.75、或是另一偏移量。

图11是示出根据本公开的技术的表示软件应用的使用随着时间推移而减少的示例性最佳拟合线344的概念图。图11中的横坐标轴(例如,x轴)表示时间并且图11中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图11的实例中,控制器设备10可以确定最佳拟合线344的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,斜率具有值-1(例如,m=-1),且偏移量为5(例如,c=5)。然而,在其他实例中,负斜率可以小于0、大于-1、或是另一负斜率。同样,在其他实例中,偏移量可以小于5、小于5、或是另一偏移量。

图12是根据本公开的技术的第一站点的软件应用的使用随着时间推移的示例性最佳拟合线362的概念图。图12中的横坐标轴(例如,x轴)表示时间并且图12中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图12的实例中,控制器设备10可以确定第一站点的软件应用随着时间的使用的最佳拟合线362的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,最佳拟合线362的斜率具有值0.5(例如,m=0.5),且偏移量为0(例如,c=0)。

在图12的实例中,控制器设备10可以基于斜率按顺序对站点进行分组。例如,控制器设备10可以将对于应用而言具有正斜率的全部站点分组为A组。正斜率可以表示随着时间推移应用的使用增加。例如,响应于确定第一站点的特定软件应用随着时间推移的最佳拟合线362具有大于或等于零的斜率(例如,0.5),控制器设备10可以将第一站点分组到A组。

图13是示出根据本公开的技术的第二站点的软件应用的使用随着时间推移的示例性最佳拟合线364的构思图。图13中的横坐标轴(例如,x轴)表示时间并且图13中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图13的实例中,控制器设备10可以确定第二站点的软件应用的使用随着时间推移的最佳拟合线364的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,最佳拟合线364的斜率具有值0.4(例如,m=0.4),且偏移量为0(例如,c=0)。在图13的实例中,响应于确定第二站点的特定软件应用随着时间推移的最佳拟合线364具有大于或等于零的斜率(例如,0.4),控制器设备10可以将第二站点分组到A组。

图14是示出根据本公开的技术的第三站点的软件应用的使用随着时间推移的示例性最佳拟合线366的概念图。图14中的横坐标轴(例如,x轴)表示时间并且图14中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图14的实例中,控制器设备10可以确定第三站点的软件应用的使用随着时间推移的最佳拟合线366的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,最佳拟合线366的斜率具有值0.3(例如,m=0.3),且偏移量为0(例如,c=0)。在图14的实例中,响应于确定第三站点的特定软件应用随着时间推移的最佳拟合线364具有大于或等于零的斜率(例如,0.3),控制器设备10可以将第三站点分组到A组。

图15是示出根据本公开的技术的第四站点的软件应用的使用随着时间推移的示例性最佳拟合线368的概念图。图15中的横坐标轴(例如,x轴)表示时间并且图15中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图15的实例中,控制器设备10可以确定第四站点的软件应用的使用随着时间推移的最佳拟合线368的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,最佳拟合线366的斜率具有值0.2(例如,m=0.2),且偏移量为0(例如,c=0)。在图15的实例中,响应于确定第四站点的特定软件应用随着时间推移的最佳拟合线368具有大于或等于零的斜率(例如,0.2),控制器设备10可以将第四站点分组到A组。

图16是示出根据本公开的技术的第五站点的软件应用的使用随着时间推移的示例性最佳拟合线的概念图。图16中的横坐标轴(例如,x轴)表示时间并且图16中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图16的实例中,控制器设备10可以确定第五站点的软件应用的使用随着时间推移的最佳拟合线370的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,最佳拟合线370的斜率具有值0(例如,m=0),且偏移量为2(例如,c=2)。在图16的实例中,响应于确定第五站点的特定软件应用随着时间推移的最佳拟合线370具有大于或等于零的斜率(例如,0),控制器设备10可以将第五站点分组到A组。

图17是示出根据本公开的技术的第六站点的软件应用的使用随着时间推移的示例性最佳拟合线372的概念图。图17中的横坐标轴(例如,x轴)表示时间并且图17中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图17的实例中,控制器设备10可以确定第六站点的软件应用的使用随着时间推移的最佳拟合线372的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,最佳拟合线370的斜率具有值0(例如,m=0),且偏移量为3.5(例如,c=3.5)。在图17的实例中,响应于确定第六站点的特定软件应用随着时间推移的最佳拟合线372具有大于或等于零的斜率(例如,0),控制器设备10可以将第六站点分组到A组。

控制器设备10可以基于应用流量使用对A组中的站点进行排序。在一些实例中,控制器设备10可以被配置为使用每个站点的最佳拟合线确定被发送至每个站点并且供软件应用所使用的最大数据量。例如,控制器设备10可以确定第一站点的软件应用的使用随着时间推移的最佳拟合线362指示被传输至第一站点并且供特定软件应用使用的最大数据量是4。在本实例中,控制器设备10可以确定第二站点的软件应用的使用随着时间推移的最佳拟合线364指示被传输至第二站点并且供特定软件应用使用的最大数据量是3.25。控制器设备10可以确定第三站点的软件应用的使用随着时间推移的最佳拟合线366指示被传输至第三站点并且供特定软件应用使用的最大数据量是2.5。

同样,控制器设备10可以确定第四站点的软件应用的使用随着时间推移的最佳拟合线368指示被传输至第四站点并且供特定软件应用使用的最大数据量是1.5。控制器设备10可以确定第五站点的软件应用的使用随着时间推移的最佳拟合线370指示被传输至第五站点并且供特定软件应用使用的最大数据量是2和/或控制器设备10可以确定第六站点的软件应用的使用随着时间推移的最佳拟合线372指示被传输至第六站点并且供特定软件应用使用的最大数据量是3.5。因此,控制器设备10可以将图12至图16中的站点排序成图12中的第一站点、图17中的第六站点、图13中的第二站点、图14中的第三站点、图16中的第五站点、以及图15中的第四站点的排序列表。

图18是示出根据本公开的技术的第七站点的软件应用的使用随着时间推移的示例性最佳拟合线374的概念图。图18中的横坐标轴(例如,x轴)表示时间并且图18中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图18的实例中,控制器设备10可以确定第七站点的软件应用的使用随着时间推移的最佳拟合线374的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,最佳拟合线374的斜率具有值-0.4(例如,m=-0.4),且偏移量为3(例如,c=3)。

在图18的实例中,控制器设备10可以基于负斜率按顺序对站点进行分组。例如,控制器设备10可以将对应应用而言具有负斜率的全部站点分组为B组。负斜率可以表示软件应用使用减少。在图18的实例中,响应于确定第七站点的特定软件应用随着时间推移的最佳拟合线374具有不大于或等于零的斜率(例如,-0.4),控制器设备10可以将第七站点分组到B组。

图19是示出根据本公开的技术的第八站点的软件应用的使用随着时间推移的示例性最佳拟合线376的概念图。图19中的横坐标轴(例如,x轴)表示时间并且图19中的纵坐标轴(例如,y轴)将应用字节表示为y轴。

在图19的实例中,控制器设备10可以确定第八站点的软件应用的使用随着时间推移的最佳拟合线376的斜率。例如,当使用线性回归(例如,y=mx+c)确定最佳拟合线时,控制器设备10可以确定‘m’,其中,‘m’是线性斜率。在本实例中,最佳拟合线376的斜率具有值-0.2(例如,m=-0.2),且偏移量为1.5(例如,c=1.5)。在图19的实例中,响应于确定第七站点的特定软件应用随着时间推移的最佳拟合线376具有不大于或等于零的斜率(例如,-0.2),控制器设备10可以将第八站点分组到B组。

控制器设备10可以基于应用流量使用对B组中的站点进行排序。在一些实例中,控制器设备10可以被配置为使用每个站点的最佳拟合线确定被传输至每个站点并且供软件应用使用的最大数据量。例如,控制器设备10可以确定第七站点的软件应用的使用随时间推移的最佳拟合线374指示被传输至第七站点并且供特定软件应用使用的最大数据量是3。在本实例中,控制器设备10可以确定第八站点的软件应用的使用随时时间推移的最佳拟合线376指示被传输至第八站点并且供特定软件应用使用的最大数据量是1.5。因此,控制器设备10可以将图18和图19中的站点排序成图18中的第七站点和图19中的第八站点的排序列表。

控制器设备10可以将不具有应用使用的其余全部站点分组成组-C。例如,组-C可以包括不具有应用使用的第九站点和第十站点。例如,控制器设备10可以将图18和图19中的站点排序成第九站点和第十站点的排序列表。

在确定所有组之后,控制器设备10可以被配置为对站点排序使得对分到A组中的站点(即,具有更高应用使用的全部站点的分组)应用策略变化。如表1所示,其次是B组和C组。

表1

控制器设备10可以基于表1中的优先级索引应用策略意图。在本实例中,仅使用一个应用对解决方案进行说明。然而,当涉及多个应用时,可以应用相似的技术。例如,控制器设备10可以基于在SD-WAN策略规则中为特定时间帧选择的多个应用的使用趋势动态地对站点进行排序。

图20是示出可由策略映射器和/或调度器执行的对策略更新进行优先级排序以调度部署作业的的示例性过程的流程图。仅出于示例性之目的而参考图1至图19对图20进行讨论。控制器设备10可以接收意图策略站点数据(402)。例如,管理员12可以向策略映射器256和/或调度器258输出将一组策略部署在由控制器设备10管理的站点13上的请求。控制器设备10可以从分析模块和/或机器学习模块260获取优先级顺序(404)。在图21中讨论了步骤404的示例性细节。调度器262可以基于优先级顺序对部署作业进行调度(406)。例如,调度器262可以按照优先级顺序布置站点并且按照由优先级顺序指定的顺序而根据低级配置数据配置每个站点。

图21是示出可由策略映射器和/或调度器执行的用于对策略更新进行优先级排序以确定部署作业的优先级顺序的示例性过程的流程图。仅出于示例性之目的而参考图1至图20对图21进行讨论。

分析模块和/或机器学习模块260可以执行优先级排序(420)。例如,作为作业执行的一部分,策略映射器256和/或调度器258可以参考用于执行优先级排序的分析模块和/或机器学习模块260。分析模块和/或机器学习模块260可以确定要在其上部署策略的一组未排序的站点(422)。分析模块和或机器学习模块260可以查询DB 264来获取存储在数据库264中的站点有关数据(例如,apptrack/syslog数据)(424)。

分析模块和/或机器学习模块260可以对数据集进行细化而按照所需形式进行布置(426)。分析模块和/或机器学习模块260可以找出数据集(例如,应用流量分组、字节、吞吐量、时间等)中的相关性(428)。分析模块和/或机器学习模块260可以找出使得误差最小化的可用数据集的最佳拟合模型(例如,线性回归、非线性回归神经逻辑等)(430)。响应于确定最佳拟合模型未使误差最小化(步骤430中为“否”),分析模块和/或机器学习模块260可以使用另一最佳拟合模型并且重复步骤430。

然而,响应于确定最佳拟合模型确实使得误差最小化(步骤430中为“是”),分析模块和/或机器学习模块260可以预测站点的优先级索引(432)。例如,分析模块和/或机器学习模块260可以基于每个站点的最佳拟合模型输出来确定可用站点的优先级索引。分析模块和/或机器学习模块260可以基于优先级顺序对站点进行排序(434),以生成将在其上部署意图策略的一组排序站点(436)。

图22是示出根据本公开的技术的用于确定多个站点的排序列表以对意图更新进行优先级排序的示例性过程的流程图。仅出于示例性之目的而参考图1至图21对图22进行讨论。控制器设备10可以确定用于管理多个网络设备(例如,元件14)处的软件应用并且由图形模型表示的有状态意图(450)。控制器设备10可以将有状态意图转换成用于配置多个网络设备的低级配置数据(452)。

控制器设备10可以基于在相应站点软件应用的站点级使用确定多个站点中的每个相应站点的优先级索引(454)。例如,分析模块和/后机器学习模块260可以访问一个或多个应用日志(例如,Apptrack)而针对站点处的每个事件确定被传输至站点并且供软件应用使用的相应数据量。在一些实例中,分析模块和/后机器学习模块260可以访问一个或多个网络日志(例如,syslog)而针对每个事件确定将相应数据量传输至站点并且供软件应用使用的相应时间。控制器设备10可以使用每个事件的传输的相应数据量与相应时间而生成曲线图(见图7)。

控制器设备10可以使用线性回归(见图8)、非线性回归、机器学习、或另一过程确定事件的最佳拟合线。在一些实例中,控制器设备10可以使用最佳拟合线的斜率确定每个站点的分组。例如,控制器设备可以将具有正斜率或恒定斜率的最佳拟合线的每个站点分配给A组(见图12至图17)。例如,当站点的最佳拟合线包括正斜率时,控制器设备10可以将站点分配给A组。在一些实例中,当站点的最佳拟合线包括恒定斜率时,控制器设备10可以将站点分配给A组。在一些实例中,控制器设备10可以将具有负斜率的最佳拟合线的每个站点分配给B组(见图18、图19)并且将未使用的每个站点分配给组-C。例如,当站点的最佳拟合线包括负斜率时,控制器设备10可以将站点分配给B组。基于被传输至站点并且供由最佳拟合线指示的软件应用使用的最大数据量可以为组内的站点分配优先级索引。

控制器设备10可以基于多个站点中的每个相应站点的优先级索引确定多个站点的排序列表(456)。控制器设备10可以针对多个站点中的每个相应站点并且按照由多个站点的排序列表指定的顺序而根据低级配置数据配置布置在相应站点处的多个网络设备中的一个或多个网络设备(458)。

在硬件、软件、或其任意组合中至少可以部分实现本公开中所描述的技术。例如,可以在一个或多个处理器内实现所描述技术的各个方面,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)、或任意其他等同的集成或离散逻辑线路、以及该等部件的任意组合。术语“处理器”或“处理线路”通常可以指单独或结合其他逻辑线路的任意上述逻辑线路、或任意其他等同线路。包括硬件的控制单元还可以执行本公开中的一种或多种技术。

在同一设备内或在独立设备内可以实现该硬件、软件、以及固件,以支持本公开中所描述的各种操作及功能。此外,可以一起实现或作为离散、但可相互操作的逻辑设备单独实现任意所描述的单元、模块、或部件。作为模块或单元的不同特征的描述旨在突出不同的功能方面并且并不一定必须默示必须通过单独的硬件或软件部件实现该等模块或单元。确切地,通过单独硬件或软件部件可以执行与一个或多个模块或单元相关联的功能,或与一个或多个模块或单元相关联的功能可以被集成在共同或单独的硬件或软件部件内。

本公开中所描述的技术还可以涵盖或编码成诸如计算机可读存储介质等包含指令的计算机可读介质。例如,当运行指令时,被嵌入在计算机可读介质中或被编码成计算机可读介质的指令可以致使可编程处理器或其他处理器执行方法。计算机可读介质可以包括非易失性计算机可读存储介质和易失性通信介质。计算机可读存储介质(即,有形并且非易失性)可以包括随机访问存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器、硬盘、CD-ROM、软盘、磁带、磁性介质、光学介质、或其他计算机可读存储介质。术语“计算机可读存储介质”指物理存储介质、而非信号、载体波、或其他易失性介质。

已经对各个实例进行了描述。这些及其他实例在下列权利要求的范围内。

相关技术
  • 一种控制器、控制方法、计算机设备以及计算机可读存储介质
  • 一种第一控制器、计算机设备以及计算机可读存储介质
技术分类

06120113145182