配置网络的制作方法

文档序号:24790379发布日期:2021-04-23 13:26阅读:70来源:国知局
配置网络的制作方法
配置网络


背景技术:

1.本案是申请号:201580055839.8,发明名称为:配置网络的分案申请。配置网络通常要求网络管理员手动配置网络组件以创建期望的网络。例如,网络管理员通常将必须手动配置许多网络交换机、服务器、存储和其他网络设备中的每个以创建期望的网络配置。虽然部分自动化解决方案已经由特定供应商引入以将单个供应商的设备集成在一起,但这些解决方案通常将用户实体锁定为仅利用单个供应商的设备和解决方案。然而,通常期望利用来自各种多个供应商的设备和解决方案以利用不同设备和解决方案的技术优势以及以优化成本。来自多个供应商的各种网络设备和解决方案的使用和集成的管理和配置通常要求用户手动执行集成和配置。当添加、移除或修改新的设备和解决方案时,可能需要再次执行整个集成和配置的修改。手动监视这种类型的网络也增加了复杂性和低效率。因此,存在对用于网络设备和解决方案的通用配置、管理和监视解决方案的需要。
附图说明
2.在以下的详细描述和附图中公开了本发明的各种实施例。
3.图1是图示网络管理环境的实施例的图。
4.图2是图示用于发布(publish)网络要求的过程的实施例的流程图。
5.图3是图示用于发布设备要求的过程的实施例的流程图。
6.图4是图示用于生成原生(native)硬件指令的过程的实施例的流程图。
7.图5是图示用于验证预期的过程的实施例的流程图。
具体实施方式
8.本发明可以以多种方式实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置为执行存储在耦合到处理器的存储器上和/或由耦合到处理器的存储器所提供的指令的处理器。在本说明书中,这些实现或本发明可以采取的任何其他形式可以被称为技术。通常,所公开的过程的步骤的次序可以在本发明的范围内改变。除非另有说明,诸如描述为被配置为执行任务的处理器或存储器之类的组件可以被实现为临时配置为在给定时间执行该任务的通用组件或者被制造为执行该任务的特定组件。如本文所使用的,术语“处理器”是指被配置为处理诸如计算机程序指令之类的数据的一个或多个设备、电路和/或处理核。
9.下文提供本发明的一个或多个实施例的详细描述以及说明本发明的原理的附图。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限制,并且本发明包括许多替代方案、修改和等同方案。为了提供对本发明的透彻理解,在以下的描述中阐述了许多具体细节。出于示例的目的提供这些细节,并且可以在没有这些具体细节中的一些或全部的情况下根据权利要求实施本发明。出于清楚的目的,未详细描述与本发明相关的技术领域中已知的技术材料,使得本发明不会不必要地模糊。
10.公开了配置网络。网络可以是能够连接在一起的一个或多个设备的集合。在一些
实施例中,至少三个组件一起工作来管理、配置和/或监视网络。例如,交互代理与用户交互以接收并提供期望的要求、规范和状态更新;应用代理跨各种网络设备实现和管理期望的要求和状态更新;并且每个网络组件的委托代理实现和管理其网络设备的设备特定配置和状态更新。在交互代理处接收一组网络要求。例如,经由交互代理从用户接收网络配置的期望要求。将网络要求中的至少一部分发布到系统数据储存。例如,系统数据储存被用于追踪和提供代理组件的状态和通信,而不是直接在每个代理组件处维护状态信息并且管理代理组件之间的通信。在应用代理处接收发布的网络要求。例如,应用代理已经订阅存储在系统数据储存中的网络要求,并且当该组网络要求被存储在系统数据储存中时被通知。由应用代理向系统数据储存针对多个设备发布设备要求。例如,应用代理已经标识要用于实现所发布的网络要求的多个设备,并且已经生成针对多个标识的设备中的每个的特定的设备要求。在网络设备的委托代理处接收适用的设备要求。例如,每个标识的设备的每个委托代理已经订阅并接收其网络设备的对应设备要求。原生硬件指令由委托代理生成以配置单独的网络设备。例如,委托代理转变所接收的设备要求以生成硬件指令来实现所接收的设备要求。
11.图1是图示网络管理环境的实施例的图。管理服务器102经由网络110连接到数据储存104、网络设备106和网络设备108。在一些实施例中,管理服务器102提供网络配置、监视和管理解决方案。例如,用户可以利用至少部分地由管理服务器102提供的解决方案来设置网络配置、设置网络设备、监视网络的性能、监视网络的设备、自动化任务、以及以其他方式执行网络的设备的管理。在所示的示例中,管理服务器102被用于管理至少网络设备106和网络设备108。管理服务器102包括交互代理112和应用代理114。例如,交互代理112和应用代理114是管理服务器102的软件组件和/或硬件组件。
12.交互代理112促进与用户的交互以接收并提供期望的要求、规范和状态更新。例如,用户经由直接和/或远程(例如,经由显示器、有线连接、网络等)提供的用户接口(例如,web接口、应用接口、命令行接口、应用编程接口(api)、配置文件接口等)访问交互代理112。使用用户接口,用户可以提供指定期望网络/设备的期望配置的高级要求和/或接收关于期望网络的设备/组件的状态的信息和/或关于期望配置要求的实现状态。交互代理112可以管理多个应用代理。例如,交互代理112选择多个应用当中的某一应用代理来实现/完成期望的网络要求。
13.应用代理114跨各种网络设备实现并管理期望的网络要求、配置和状态更新。在一些实施例中,应用代理114向被管理的网络的各种设备提供设备要求指令并从其接收状态信息。例如,使用期望的网络要求,应用代理114确定单独的设备要求以实现期望的网络要求。由应用代理114确定的设备要求可以是声明性设备要求,使得设备要求可以被转变为许多不同的原生设备指令中的任何一个(例如,不同供应商的设备的原生指令、设备版本、设备操作系统、编程接口等)来实现设备要求。在所示的示例中,应用代理114已经选择了网络设备106和108来实现期望的网络要求,并生成针对每个网络设备106和网络设备108的唯一设备要求。委托代理116接收其针对网络设备106的设备要求,并且委托代理118接收其针对网络设备108的设备要求。每个委托代理可以生成实现其设备要求的原生硬件指令以配置其相关联的单独网络设备。
14.在一些实施例中,每个委托代理报告关于其关联的(多个)设备的状态、操作和/或
其他信息的信息。然后,应用代理114可以收集并处理所报告的信息以报告该信息和/或执行响应动作。例如,当委托代理提供其相关联的设备过载的状态更新时,应用代理可以向网络添加新设备以卸载处理和/或将过载设备的处理任务移动到另一网络设备。收集的状态信息可以由应用代理114提供给交互代理112作为报告和/或针对动作的请求。
15.经由数据储存104促进交互代理112、应用代理114和委托代理116及118之间的通信。在一些实施例中,交互代理112、应用代理114和委托代理116及118不直接彼此通信。例如,数据储存104被用于追踪和提供代理组件的状态信息和通信,而不是直接在每个代理组件处维护状态信息并且管理代理组件之间的通信。代理的所有状态信息(例如,设备的状态、要求、配置等)可以存储在数据储存104中,而不是在代理中存储状态信息。当要在代理之间传送数据时,发送代理发布/存储要传送到数据储存104的数据。接收数据的代理可以从数据储存104读取数据和/或可以被推送数据。例如,代理订阅当某种类型的数据被存储在数据储存104中时被通知,并且当在存储104处接收到对某种类型的数据的新或修改时通知该代理。在一些实施例中,代理针对数据周期性地轮询/检查数据储存104。数据储存104可以包括在联网的存储服务中。在所示的示例中,代理经由网络110访问数据储存104。在一些实施例中,数据储存104经由非共享连接直接连接到管理服务器102。在各种实施例中,数据储存104被包括在图1中所示的任何组件中。例如,数据储存104被包括在服务器102中。数据储存104可以包括管理存储在数据储存104中的数据(例如,管理数据订阅)的服务器。数据储存104的示例包括数据库、高度可用的存储、分布式存储、云存储、数据服务或任何其他类型的数据存储。
16.网络设备106和网络设备108可以是连接到网络110的任何类型的设备。网络设备106和网络设备108的示例包括服务器、网络交换机、网络路由器、高速缓存服务器、存储设备、管理程序交换机、虚拟路由器、负载平衡器、防火墙、网络结构设备、虚拟网络设备、软件设备、软件组件或可以是物理或虚拟的任何类型的计算机或联网设备。委托代理116是包括在网络设备106中的软件和/或硬件组件。委托代理116管理网络设备106。委托代理118是包括在网络设备108中的软件和/或硬件组件。委托代理118管理网络设备108。网络110的示例包括以下中的一个或多个:直接或间接物理通信连接、移动通信网络、因特网、内联网、局域网、广域网、存储区域网络以及将两个或更多个系统、组件或存储设备连接在一起的任何其他形式。可以存在其他通信路径,并且已经简化了图1的示例以清楚地图示示例。
17.虽然已经示出了图1中所示的许多组件的单个实例以简化图,但是可以存在图1中所示的任何组件的附加实例。例如,可以存在任何数量的管理服务器、存储和网络设备。管理服务器102可以是服务器的集群,并且存储104可以是分布式存储。可以存在任何数量的交互代理、应用代理和/或委托代理。单个服务器/设备可以包括任何数量的交互代理、应用代理和/或委托代理。单个交互代理、应用代理和/或委托代理可以为多个服务/设备提供服务。单个交互代理可以与多个应用代理交互。例如,不同类型的网络要求和状态更新可以由均与单个交互代理对接的不同应用代理来处理。虽然图1中所示的示例示出了包括/安装在同一管理服务器上的应用代理和交互代理,但它们可以包括在不同的服务器/设备中。虽然图1中所示的示例示出了包括/安装在它们各自的相关联网络设备中的每个委托代理,但委托代理可以包括在不同的服务器/设备中。例如,委托代理被包括在管理服务器102中。虽然图1中所示的示例示出了仅分配单个委托代理来管理单个相关联的网络设备,但在一些实
施例中,可以分配单个委托代理来管理多个网络设备。也可以存在图1中未示出的组件。在一些实施例中,图1的每个资源(例如,每个代理、服务器和网络设备)可以属于某一域。例如,属于同一域的资源是可互操作的,并且可以一起起作用以执行网络配置和/或管理任务。在一些实施例中,每个资源可以仅属于一个域,并且保证仅同一域内的资源可互操作以执行网络配置和/或管理任务。某些资源可以属于多个域。可以利用多个域来管理单个网络。图1中所示的组件可以是一个或多个域的组件。图1中所示的任何组件可以是物理或虚拟的组件。
18.图2是图示用于发布网络要求的过程的实施例的流程图。图2的过程可以在图1的管理服务器102上实现。在一些实施例中,图2的过程由图1的交互代理112执行。
19.在202处,在交互代理处接收一组网络要求。在一些实施例中,交互代理是诸如图1的交互代理112的交互代理。交互代理可以与用户和/或用户系统对接。交互代理可以是软件和/或硬件组件,并且可以被包括在用于管理网络(例如,管理网络设备)的服务器中。在一些实施例中,交互代理管理一个或多个应用代理。例如,交互代理选择将实现该组网络要求和/或关于其状态进行报告的一个或多个应用代理。用户或用户系统可以经由直接和/或远程(例如,经由显示器、有线连接、网络等)提供的用户接口(例如,web接口、视觉显示接口、应用接口、命令行接口、应用编程接口(api)、配置文件接口等)访问交互代理。
20.在一些实施例中,该组网络要求包括网络/服务和/或连接到或能够连接到网络的一个或多个设备的期望的配置、设置、拓扑和/或其他规范的规范。在一些实施例中,该组网络要求包括一组声明性要求。例如,声明性要求表达网络组件的期望配置,而不指定确切的原生设备配置和控制流程。通过利用声明性要求,可以指定应当实现什么,而不是其应当如何实现。声明性要求可以与命令式指令形成对比,该命令式指令描述了实现配置的确切设备配置语法和控制流程。通过利用声明性要求而不是命令式指令,用户和/或用户系统减轻了确定实现用户/系统的期望结果所需的确切设备配置的负担。例如,当利用来自不同供应商的各种不同类型的设备时,指定和管理配置网络的每个设备的确切命令式指令通常是困难和繁重的。当新设备添加和设备故障发生时,网络的设备的类型和种类可能动态改变。利用不同的配置协议、语法和软件版本管理来自不同供应商的各种不同类型的设备以配置设备的内聚网络通常难以实现。因此,通过仅要求用户/系统指定规定跨各种不同类型的设备适用的期望结果的声明性要求,网络设备的管理和配置变得更高效。
21.在各种实施例中,该组网络要求指定一个或多个设备的期望配置、期望动作、命令或任何其他指令或期望的结果。该组网络要求的一个示例是建立网络拓扑的一组要求。例如,期望建立网状网络(例如,层3 clos网络),并且该组网络要求指定期望网状网络的期望参数。在clos网络中,每个较低层交换机(例如,叶(leaf))以全网状拓扑连接到每个顶层交换机(例如,脊(spine))。指定建立经由所接收的要求文件接收的l3 clos网络配置的指令的一组示例性要求的一部分如下:网络拓扑类型=clos脊数=16叶数=128ip地址池= 10.0.0.0/24上述要求指定应当建立具有16个脊网络交换机和128个叶网络交换机的clos网
络,并应当为clos网络的交换机分配从范围10.0.0.1到10.0.0.255的ip地址。
22.在一些实施例中,针对有效性和正确性验证该组要求。例如,验证了该组网络要求从经授权和确证的源接收,所提供的要求规范语法是正确的,已经提供了有效要求,已经指定了针对期望结果的所有所需参数,并且所提供的要求能够经由可用的硬件/软件资源/设备来实现。
23.在204处,将该组网络要求中的至少一部分发布到系统数据储存。例如,该组网络要求被发布到图1的数据储存104。在一些实施例中,交互代理是无状态的。例如,交互代理不维护追踪要求处理和通信的状态的其自身的存储。状态数据被存储/发布到远程网络数据储存(例如,图1的数据储存104),而不是存储和保持追踪其状态数据。通过为无状态,当交互代理遇到错误时,可以快速地替换/重新启动它,而不需要在所替换的组件中恢复状态信息。
24.在一些实施例中,发布该组网络要求包括将该组网络要求存储在系统数据储存中,以允许应用代理读取和访问所发布的该组要求。因此,交互代理将该组要求发布到存储以将信息传送给应用代理,而不是直接将该组网络要求传送给应用代理。在一些实施例中,发布该组要求包括选择接收适当的网络要求的一个或多个应用代理。例如,存在多个不同的应用代理,并且每个应用代理对不同组的一个或多个网络设备执行不同类型的处理和/或处理。为了实现/完成该组网络要求,可能需要将该组网络要求路由到适当的应用代理以供进一步处理。在一些实施例中,处理该组网络要求以标识哪个应用代理应当接收该组要求的哪个部分(或全部),并且要由每个适当的应用代理接收的(多个)要求被发布到不同的存储位置或者通过与适当的应用代理对应的系统数据储存的不同标识符来标识。例如,数据储存包括与每个不同应用代理对应的不同数据记录,并且可以通过将要求发布到期望的应用代理的对应数据记录来将(多个)要求传送给应用代理。在另一示例中,包括在发布的数据中的标识符标识哪个应用代理应当接收该发布的数据。
25.在一些实施例中,在发布之前修改所接收的该组要求。例如,所接收的该组网络要求被转变成可以发布到数据储存的形式。在另一示例中,添加了确定为实现所接收的该组要求所需的附加要求。在另一示例中,移除了确定为实现所接收的该组要求所不需要的一个或多个要求。在另一示例中,修改了所接收的该组要求中的一个或多个要求。
26.在一些实施例中,发布该组要求包括在系统数据储存中存储/创建标识该组网络要求中的一个或多个要求的状态的标识符。例如,标识该组网络要求已经在系统数据储存中被发布并且准备好由一个或多个应用代理进行处理的标识符存储在系统数据储存中。由于该组网络要求由应用代理和其他代理进行处理,所以可以由应用代理或其他代理更新状态标识符,以提供实现/完成对应要求的状态的更新。
27.图3是图示用于发布设备要求的过程的实施例的流程图。图3的过程可以在图1的管理服务器102上实现。在一些实施例中,图3的过程由图1的应用代理114执行。
28.在302处,在应用代理处接收一组网络要求。在一些实施例中,应用代理是图1的应用代理114。在一些实施例中,应用代理是跨各种网络设备管理期望的要求、配置和状态更新的软件和/或硬件组件。例如,应用代理向被管理的网络的各种设备提供指令并从其接收状态信息。在一些实施例中,可以存在执行不同功能的不同类型的应用代理。例如,通过将要求与特定应用代理的特定功能相匹配来向特定应用代理提供网络要求。
29.在一些实施例中,所接收的该组要求是在图2的204中发布的那组要求。在一些实施例中,接收该组网络要求包括接收该组要求已经存储在数据储存中以用于应用代理的指示。例如,诸如图1的数据储存104之类的系统数据储存包括其中可以发布用于应用代理的数据的数据记录和/或系统数据储存基于包括的标识符来识别发布的数据应当被路由的地方。每个不同的应用代理可以订阅系统数据储存的一个或多个数据记录和/或订阅标识要路由到订阅的应用代理的内容的一个或多个标识符。在一个示例中,系统数据储存包括用于每个不同应用代理的不同数据记录,并且每个应用代理订阅至少其对应的数据记录。在另一示例中,应用代理订阅标识符,并且系统数据储存将具有标识符的发布的数据路由到订阅的应用代理。
30.在一些实施例中,通过订阅数据记录,在数据被发布到订阅的数据记录和/或包括订阅的数据标识符的情况下,可以由数据存储向应用代理提供通知。在一些实施例中,通过订阅数据记录和/或数据标识符,可以向应用代理自动提供/发送被发布到订阅的数据记录和/或由数据标识符所标识的任何数据。在一些实施例中,接收该组网络要求包括接收感兴趣的该组网络要求已被存储在数据储存中的指示,并且应用代理请求并获得感兴趣的该组网络要求。在一些实施例中,接收该组网络要求包括自动接收由应用代理订阅的该组网络要求的内容。在一些实施例中,接收该组要求包括从交互代理直接接收该组要求。
31.在304处,与所接收的要求对应的设备要求被发布到系统数据储存。在一些实施例中,由应用代理所接收的网络要求由应用代理进行处理,以确定针对要被配置为实现所接收的网络要求的一个或多个设备的适当的设备要求。例如,应用代理分析所接收的网络要求并确定将被用于实现所接收的网络要求的一个或多个设备(例如,由实现所接收的要求所需的设备类型、能力、所需的数量、处理能力等选择和确定的设备)。对于要被配置的一个或多个设备中的每个,应用代理确定其单独的设备要求。
32.在一些实施例中,针对每个单独设备的设备要求是声明性要求。例如,设备要求包括网络设备的期望的配置、设置和/或其他规范的规范。声明性要求表达网络设备的期望配置,而不指定确切的原生设备配置和控制流程指令。通过利用声明性要求,指定应当在网络设备中实现什么而不是确切的原生硬件指令。通过利用声明性要求而不是命令式指令,应用代理可以减轻确定实现期望结果所需的确切设备编程和配置语法的负担。例如,当来自不同供应商的各种不同类型的设备可以在网络上动态地利用和互换时,将单个组件配置和更新为知晓用于对网络的每个设备进行配置的确切的命令式语法和配置范例通常是困难和繁重的。
33.在一些实施例中,发布设备要求包括将设备要求存储在系统数据储存(例如,图1的数据储存104)中,以允许一个或多个委托代理读取和访问发布的该组设备要求。因此,应用代理将设备要求发布到系统存储以将信息传送到将利用设备要求来配置所选设备的一个或多个委托代理,而不是将设备要求直接传送到将被用于实现所接收的网络要求的一个或多个所选设备。在一些实施例中,发布该组要求包括选择要接收适用的设备要求的一个或多个委托代理。例如,存在多个不同的委托代理,其每个均被分配给网络的不同设备。为了完成和实现期望的网络要求,对应的设备要求可能需要被路由到适当的委托代理以供进一步处理。可以将要由每个适当的委托代理接收的设备要求发布到与适当的委托代理对应的系统数据储存的不同存储位置。例如,系统数据储存包括与每个不同的委托代理对应的
不同的数据记录,并且可以通过将适当的设备要求发布到期望的委托代理的对应数据记录来将适当的设备要求传送给对应的委托代理。在一些实施例中,使用标识正在接收对应设备要求的设备/委托代理的标识符来发布针对每个设备/委托代理的设备要求。
34.在一个示例中,在应用代理处接收用于建立先前描述的l3 clos网络配置的该组要求,并且应用代理分析所接收的要求,并且确定和标识将被用于实现所接收的网络要求的期望网络配置的设备。示例性l3 clos网络要求将脊网络交换机设备的数量指定为16,并且将叶网络交换机设备的数量指定为128。总计,应用代理将确定并标识将需要被配置为实现期望的clos网络的144个设备。对于要利用的每个设备,应用代理在实现期望的clos网络时确定单独的设备要求。单独的设备要求可以存储在用于每个设备的对应系统数据储存条目中。例如,应用代理在数据存储的144个不同数据条目中发布单独的设备要求,并且每个设备的每个委托代理访问这些数据条目以接收对应的设备要求。在l3 clos网络示例中,以下是针对144个不同设备要求中的一个的设备要求的一个示例。角色=脊ip地址= 10.0.0.3邻居= [(叶

1,10.0.0.7),(叶

2,10.0.0.15),
……
(叶

128,10.0.0.176)]状态=限定上述设备要求指定在clos网络中,一个网络交换机设备将是具有ip地址10.0.0.3的脊交换机。还已经标识了连接到该脊交换机设备的叶交换机。
[0035]
在一些实施例中,发布设备要求包括在系统数据储存中存储/创建被用于实现所接收的网络要求的设备的每个设备要求的标识符。先前的clos网络示例中的发布的“状态”设备要求指定了实现设备要求的状态。当设备要求实现/完成时,该状态标识符可以由网络交换机设备的委托代理更新。例如,标识符被存储在系统数据储存中,该标识符标识针对设备的设备要求已经被发布在系统数据储存中并且准备好由适当的委托代理处理(例如,被设置在“限定”状态中)。当委托代理处理设备要求时,委托代理可以更新状态标识符,以提供实现设备要求的状态的更新。
[0036]
图4是图示用于生成原生硬件指令的过程的实施例的流程图。图4的过程可以在图1的网络设备106和/或108上实现。在一些实施例中,图4的过程由图1的委托代理116和/或118执行。
[0037]
在402处,在委托代理处接收设备要求。在一些实施例中,委托代理是图1的委托代理116或118。在一些实施例中,委托代理是管理和实现针对相关联/分配的设备的设备要求的软件和/或硬件组件。在一些实施例中,针对不同的网络设备存在不同类型/版本的委托代理。例如,委托代理在设备要求之间提供转换功能,并且实现特定于设备的原生指令,并且针对特定设备选择可以生成用于特定设备(例如,特定于设备的供应商、操作系统、协议、版本等)的原生指令的委托代理。通过分离交互代理、应用代理和委托代理之间的功能,只有代理需要处理设备的特定原生指令。因此,当将新的类型或版本的设备添加到网络时,只需要用于新设备的新委托代理,而交互代理和应用代理可以保持不变。这可以允许网络的各种不同类型的设备的简化管理。委托代理可以安装在由委托代理管理的设备上。在一些实施例中,委托代理远离被管理设备。在一些实施例中,一个委托代理可以管理多个设备。例如,单个委托代理可以管理相同类型的多个设备。
[0038]
在一些实施例中,所接收的设备要求是在图3的304中发布的针对委托代理的设备的设备要求。在一些实施例中,接收设备要求包括接收设备要求已被存储在系统数据储存中以用于特定设备的委托代理的指示。例如,诸如图1的数据储存104之类的系统数据储存包括其中可以发布用于委托代理的数据的数据记录。每个不同的委托代理可以订阅与由相应委托代理管理的设备对应的系统存储的一个或多个数据记录。例如,系统数据储存包括针对网络的每个设备的不同数据记录,并且每个委托代理订阅其分配的设备的对应数据记录。在一些实施例中,每个不同的委托代理向系统数据储存订阅标识与对应的委托代理相关联的设备的一个或多个标识符。例如,由订阅的标识符所标识的任何发布的数据被通知给订阅的委托代理。在一些实施例中,通过订阅数据记录和/或标识符,可以在数据被发布到订阅的数据记录和/或与标识符相关联的数据已经被发布的情况下由数据储存向委托代理提供通知。在一些实施例中,通过订阅数据记录和/或标识符,可以向委托代理自动提供/发送被发布到订阅的数据记录和/或由标识符所标识的任何数据。在一些实施例中,接收设备要求包括由于订阅而接收设备要求已被存储到数据储存的指示,并且委托代理请求和从数据储存获得设备要求。在一些实施例中,接收设备要求包括由于订阅而自动从数据储存接收设备要求的内容。在一些实施例中,接收设备要求包括直接从应用代理接收设备要求。
[0039]
在404处,在委托代理处生成原生硬件指令以配置委托代理的设备。在一些实施例中,由委托代理所接收的设备要求由委托代理处理以生成实现所接收的设备要求的原生硬件指令。例如,所接收的声明性指令被转换为命令式指令。在一些实施例中,原生硬件指令采用设备的原生编程/配置语法。例如,原生硬件指令以对于设备的配置软件接口原生的格式生成。在一些实施例中,原生硬件指令是可以由设备的软件组件理解/处理以配置设备的指令。在一些实施例中,原生硬件指令采用可以由设备直接利用以配置设备的形式。在一些实施例中,原生硬件指令由设备执行。例如,所生成的原生硬件指令被发行以用于在设备上执行。
[0040]
在一个示例中,在委托代理处接收成为先前在说明书中描述的l3 clos网络配置的脊交换机的设备要求,并且委托代理分析所接收的设备要求,并生成原生网络交换机设备指令以将网络交换机设备配置为成为具有指定ip地址和指定邻居的clos网络的脊交换机。
[0041]
在406处,提供设备的状态。在一些实施例中,步骤406是可选的,并且可以不执行。在一些实施例中,提供状态包括将状态的标识符发布到系统数据储存(例如,图1的数据储存104)。在一些实施例中,提供状态包括提供实现所接收的设备要求的状态的指示。例如,提供了设备要求的处理的阶段的状态指示。在一些实施例中,提供状态指示包括在系统数据储存中更新状态标识符。例如,在图1的数据储存104中更新状态标识符(例如,允许委托代理是无状态的)。在一些实施例中,更新的状态标识符是与先前描述的clos网络设备要求示例中发布的“状态=限定”对应的标识符。
[0042]
在一些实施例中,设备的状态指示在设备上实现设备要求的状态。例如,状态可能是六种状态之一。初始的第一示例状态是“限定(defined)”状态,其指示设备要求已由应用代理成功发布到系统数据储存。第二示例状态是由接收委托代理指示的、委托代理已经接收到设备要求并且已经分配资源来实现设备要求的“分段(staged)”状态。第三示例状态是指示委托代理已经生成与设备要求对应的原生硬件指令的“呈现(rendered)”状态。第四示
例状态是指示委托代理已经发行生成的原生硬件指令以在设备上执行的“部署”状态。第五示例状态是指示在设备上成功执行生成的原生硬件指令的操作状态。然而,当遇到错误时,可以指示第六示例“错误”状态以指示已经遇到错误。
[0043]
在一些实施例中,设备的状态指示设备的健康状态。例如,可以提供诸如处理负载、cpu利用率、存储利用率、存储器利用率、版本标识、遇到的错误、网络状态、网络带宽、网络延迟等之类的信息的指示。在一些实施例中,设备的状态指示丢包率。例如,由委托代理提供设备的三进制内容可寻址存储器(即,tcam)利用率的指示。在另一示例中,当tcam表溢出时提供指示。
[0044]
图5是图示用于验证预期的过程的实施例的流程图。图5的过程可以在图1的管理服务器102上实现。在一些实施例中,图5的过程至少部分地由图1的应用代理114执行。
[0045]
在502处,接收设备的状态。在一些实施例中,设备的状态是设备的资源的状态。在一些实施例中,设备的状态是由设备实现的设备要求的状态。在一些实施例中,设备的状态是设备的任何错误的状态。在一些实施例中,设备的状态是图4的406中提供的状态。在一些实施例中,所接收的状态是从同一委托代理或一个或多个不同设备的不同委托代理所接收的多个状态之一。
[0046]
在一些实施例中,经由诸如图1的数据储存104的系统数据储存接收状态。例如,应用代理已经向数据储存订阅以接收在数据储存中发布的状态。在一些实施例中,应用代理周期性地轮询/检查数据储存,而不是向数据记录订阅。在一些实施例中,设备的状态由应用代理直接从委托代理接收。
[0047]
在504处,验证与所接收的状态相关联的预期。例如,执行一个或多个规则或测试来验证状态是否如预期、指定的那样和/或在某一范围内。在一些实施例中,预期包括要执行以验证由交互代理提供的一组要求(例如,在图2中的204中发布并在图3的302中接收的)已经被成功实现的一个或多个测试。例如,在图2的202中所接收的该组网络要求指定了要执行以验证已经成功实现了该组网络要求的一个或多个测试。例如,在整个说明书中讨论的l3 clos网络示例中,验证路由表已成功更新的测试和叶交换机节点觉知邻居反映所接收的clos网络配置以及图2的202中所接收的网络要求。该测试可以与图2的204中的要求一起由交互代理发布,并且应用代理接收该测试作为用于验证的预期。在一些实施例中,预期标识用于资源利用率指示符的可接受范围。在一些实施例中,预期标识所接收状态的错误状态。
[0048]
在506处,如果适用,则基于预期的验证来执行动作。在一些实施例中,如果所接收的状态如预期、指定的那样和/或在某一范围内,则不执行动作。在一些实施例中,预期基于所接收的状态来标识要执行的响应动作。在一些实施例中,执行动作包括报告所接收的状态。例如,报告预期和/或所接收状态的测试的结果(例如,报告已经通过用于验证已经成功实现该组网络要求的测试以指示已经实现该组网络要求)。在一些实施例中,报告所接收的状态包括总结多个所接收的状态。报告状态可以包括向交互代理提供报告/状态(例如,交互代理可以向用户提供报告/状态)。在一些实施例中,报告状态包括发布/更新诸如图1的数据储存104的系统数据储存的数据记录。例如,状态标识符被发布到由交互代理所订阅的数据储存的数据记录。
[0049]
在一些实施例中,执行动作包括配置、移动、移除和/或添加网络的设备和/或网络
的设备的过程/程序。例如,应用代理生成指令(例如,针对委托代理将设备要求发布到系统数据储存以在设备上实现)以自动地减轻/修正由状态指示的错误(例如,修复/替换已经遇到错误的设备)。在一个示例中,当委托代理提供其相关联的设备过载的状态更新时,应用代理可以向网络添加新设备以卸载处理和/或将过载的设备的处理任务移动到另一网络设备。所收集的状态信息可以由应用代理提供给交互代理作为报告和/或针对动作的请求。
[0050]
在一些实施例中,执行动作包括允许被配置为执行动作的另一应用代理执行动作。例如,已经确定所接收的状态指示应当执行动作的应用代理通知另一应用代理(例如,通过发布到由第二应用代理所订阅的数据储存)执行动作。在一些实施例中,交互代理管理哪个应用代理执行动作。例如,交互代理被通知该状态,并指令(例如,通过向数据储存发布要求)能够执行响应动作的应用代理执行响应动作。在一些实施例中,执行响应动作包括响应于在图3的302中接收的状态而提供响应要求。例如,响应要求被转变为将被提供给委托代理的要被实现的设备要求。
[0051]
虽然为了清楚理解的目的而已经相当详细地描述了前述实施例,但是本发明不限于所提供的细节。存在实现本发明的许多替代方式。所公开的实施例是说明性的而不是限制性的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1