CN112506670B - 一种多节点自动化运维任务处理方法、系统及存储介质 - Google Patents
一种多节点自动化运维任务处理方法、系统及存储介质 Download PDFInfo
- Publication number
- CN112506670B CN112506670B CN202110139173.1A CN202110139173A CN112506670B CN 112506670 B CN112506670 B CN 112506670B CN 202110139173 A CN202110139173 A CN 202110139173A CN 112506670 B CN112506670 B CN 112506670B
- Authority
- CN
- China
- Prior art keywords
- task
- execution
- command
- executed
- maintenance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种多节点自动化运维任务处理方法、系统及存储介质,该方法包括:当有运维任务需要执行时,客户端将执行任务请求发送至网络矩阵中的主任务服务器,主任务服务器在获取到各个待执行命令后,通过与主任务服务器连接的各个从任务服务器将每个待执行命令分发至对应的目标终端;每个目标终端在执行完成待执行命令后,将执行结果报文通过从任务服务器发送至主任务服务器;主任务服务器将执行结果报文中的执行结果回写至内存数据库;内存数据库监听到运维任务达到执行完成条件后,通知主任务服务器,由主任务服务器将运维任务的所有执行结果通过反向范式组件推送至客户端。本申请能够提升运维任务的周转速度,减少频繁查询引起的资源浪费。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种多节点自动化运维任务处理方法、系统及存储介质。
背景技术
随着移动通信技术和互联网的迅速发展,用户可以通过在各种运维系统中配置运维任务来实现自动化运维,而无需人工进行操作。
现有的运维系统中,在执行客户端的运维任务时,由服务器统一向各终端下发命令执行指令,导致运维任务的周转需要较长时间。而且所有运维任务集中在一个服务器,需要服务器有较高的性能和资源配置,尤其是当运维任务的并发数较大时或者终端数较多时,服务器需要提供更多的资源来应对。为了获取运维任务的执行结果,通常由客户端或服务器主动从数据库中获取,若运维任务尚未执行完成,频繁的查询不仅不能获取执行结果,也导致资源的浪费。
发明内容
本申请提供一种多节点自动化运维任务处理方法、系统及存储介质,能够提升运维任务的周转速度,减少频繁查询引起的资源浪费。
一方面,本申请提供了一种多节点自动化运维任务处理方法,所述方法包括:
当有运维任务需要执行时,客户端生成执行任务请求,并将所述执行任务请求发送至网络矩阵中的主任务服务器,其中,所述执行任务请求中包括与所述运维任务对应的任务标识和任务等级;
所述主任务服务器从所述执行任务请求中获取所述任务标识,并基于所述任务标识,得到所述运维任务对应的至少一个待执行命令脚本信息,每个所述待执行命令脚本信息至少包括待执行命令和目标终端标识,所述目标终端标识用于指示执行所述待执行命令的目标终端;
所述主任务服务器基于所述运维任务对应的至少一个待执行命令脚本信息,生成所述运维任务对应的至少一个命令执行报文,通过调度器将所述运维任务对应的任务等级与预设等级阈值进行对比,以将所述运维任务设置在输出队列中的相应位置,在所述输出队列将所述运维任务对应的至少一个命令执行报文按照广播方式发送至所述网络矩阵中的各个从任务服务器后,在内存数据库启动对所述运维任务的监听,其中,每个所述命令执行报文与每个所述待执行命令脚本信息一一对应,所述命令执行报文中至少包括所述任务标识、所述目标终端标识和所述待执行命令;
每个所述从任务服务器接收到所述命令执行报文后,基于所述命令执行报文中的所述目标终端标识,检测所述目标终端标识对应的目标终端与所述从任务服务器之间是否是内部连接;若是,则直接向所述目标终端下发命令执行指令;若否,则通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令;其中,所述命令执行指令中包括所述待执行命令和所述任务标识;
每个所述目标终端接收到所述命令执行指令后,执行所述命令执行指令中的所述待执行命令,在所述待执行命令执行完成后,生成执行结果报文,并将所述执行结果报文按照所述命令执行指令的下发路径发送至所述主任务服务器,其中,所述执行结果报文中包括所述目标终端的目标终端标识、所述任务标识和执行结果;
所述主任务服务器接收到每个所述执行结果报文后,将所述执行结果报文中的所述执行结果回写至所述内存数据库中所述任务标识对应的记录下;
所述内存数据库监听到所述运维任务达到执行完成条件后,通知所述主任务服务器;
所述主任务服务器从所述内存数据库中获取所述任务标识对应的所有所述执行结果,并基于预先通过组件编码方式生成的反向范式组件,将所有所述执行结果推送至所述客户端。
另一方面提供了一种多节点自动化运维任务处理系统,所述系统包括客户端、网络矩阵、内存数据库和至少一个目标终端;
所述客户端用于监听是否有运维任务需要执行,当有运维任务需要执行时,生成执行任务请求,并将所述执行任务请求发送至所述网络矩阵中的主任务服务器,其中,所述执行任务请求中包括与所述运维任务对应的任务标识和任务等级;
所述主任务服务器用于从所述执行任务请求中获取所述任务标识,并基于所述任务标识,得到所述运维任务对应的至少一个待执行命令脚本信息,每个所述待执行命令脚本信息至少包括待执行命令和目标终端标识,所述目标终端标识用于指示执行所述待执行命令的目标终端;
所述主任务服务器还用于基于所述运维任务对应的至少一个待执行命令脚本信息,生成所述运维任务对应的至少一个命令执行报文,通过调度器将所述运维任务对应的任务等级与预设等级阈值进行对比,以将所述运维任务设置在输出队列中的相应位置,在所述输出队列将所述运维任务对应的至少一个命令执行报文按照广播方式发送至所述网络矩阵中的各个从任务服务器后,在所述内存数据库启动对所述运维任务的监听,其中,每个所述命令执行报文与每个所述待执行命令脚本信息一一对应,所述命令执行报文中至少包括所述任务标识、所述目标终端标识和所述待执行命令;
每个所述从任务服务器用于接收到所述命令执行报文后,基于所述命令执行报文中的所述目标终端标识,检测所述目标终端标识对应的目标终端与所述从任务服务器之间是否是内部连接;若是,则直接向所述目标终端下发命令执行指令;若否,则通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令;其中,所述命令执行指令中包括所述待执行命令和所述任务标识;
每个所述目标终端用于接收到所述命令执行指令后,执行所述命令执行指令中的所述待执行命令,在所述待执行命令执行完成后,生成执行结果报文,并将所述执行结果报文按照所述命令执行指令的下发路径发送至所述主任务服务器,其中,所述执行结果报文中包括所述目标终端的目标终端标识、所述任务标识和执行结果;
所述主任务服务器还用于接收到每个所述执行结果报文后,将所述执行结果报文中的所述执行结果回写至所述内存数据库中所述任务标识对应的记录下;
所述内存数据库用于监听到所述运维任务达到执行完成条件后,通知所述主任务服务器;
所述主任务服务器还用于从所述内存数据库中获取所述任务标识对应的所有所述执行结果,并基于预先通过组件编码方式生成的反向范式组件,将所有所述执行结果推送至所述客户端。
另一方面提供了一种计算机存储介质,其特征在于,所述计算机存储介质包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上所述的多节点自动化运维任务处理方法。
本申请提供的多节点自动化运维任务处理方法、系统及存储介质,具有如下有益效果:
运维任务的分发由网络矩阵中的主任务服务器和各从任务服务器完成,而不是由一个服务器统一分发,提升了运维任务的周转速度;通过调度器实现不同任务等级的运维任务的处理,提升运维体验;在运维任务的执行过程中,每个终端的执行结果由每个终端主动返回至内存数据库,整个运维任务的执行结果由内存数据库的监听机制启动返回流程,由主任务服务器根据预先生成的反向范式组件,将消息内容推送至客户端,能够避免不必要的获取操作,减少频繁查询引起的资源浪费。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种实施环境的示意图。
图2是本申请实施例提供的一种多节点自动化运维任务处理方法的流程示意图。
图3是本申请实施例提供的获取待执行命令脚本信息的流程示意图。
图4a是本申请实施例提供的输出队列的一个示例。
图4b是本申请实施例提供的根据任务等级确定运维任务的相应位置的一个示例。
图4c是本申请实施例提供的根据任务等级确定运维任务的相应位置的另一个示例。
图5是本申请实施例提供的另一种多节点自动化运维任务处理方法的流程示意图。
图6是本申请实施例提供的通过外部网络连接下发命令执行指令的流程示意图。
图7是本申请实施例提供的生成反向范式组件的流程示意图。
图8是本申请实施例提供的通道管理页面的示例图。
图9是本申请实施例提供的添加新通道的编辑页面的示例图。
图10是本申请实施例提供的对反向范式组件对应的组件参数进行配置的流程示意图。
图11是本申请实施例提供的通过通道标识增加组件参数的流程示意图。
图12是本申请实施例提供的另一种多节点自动化运维任务处理方法的流程示意图。
图13是本申请实施例提供的一种多节点自动化运维任务处理系统的结构示意图。
图14是本申请实施例提供的一种用于实现本申请实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图1,其示出了本申请实施例提供的一种实施环境的示意图,如图1所示,该实施环境可以至少包括客户端01、主任务服务器02、从任务服务器03、目标终端04以及内存数据库05。
具体的,所述客户端01可以包括智能手机、台式电脑、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、监控设备及语音交互设备等类型的设备,也可以包括运行于设备中的软体,例如一些服务商提供给用户的网页页面,也可以为该些服务商提供给用户的应用。具体的,所述客户端04可以用于当有运维任务需要示性式,生成执行任务请求,并将执行任务请求发送至主任务服务器02。
具体的,所述主任务服务器02为一个独立运行的服务器,可以包括有网络通信单元、处理器和存储器等等。所述主任务服务器02用于接收到执行任务请求后,生成至少一个命令执行报文,并将每个命令执行报文发送至从任务服务器03。
具体的,所述从任务服务器03可以包括至少一个独立运行的服务器或者由多个服务器组成的服务器集群。每个所述从任务服务器03可以包括有网络通信单元、处理器和存储器等等。每个所述从任务服务器03接收到各个命令执行报文后,基于命令执行报文中的目标终端标识,将命令执行报文中的待执行命令下发至相应的目标终端04。
具体的,目标终端04在执行完对应的待执行命令后,将执行结果按照待执行命令的下发路径发送至主任务服务器02,根据主任务服务器02将执行结果回写至内存数据库05。内存数据库05用于在监听到运维任务完成后,通知主任务服务器02,以使主任务服务器02将运维任务的所有执行结果推送至客户端01。
以下介绍本申请的一种多节点自动化运维任务处理方法。图2是本申请实施例提供的多节点自动化运维任务处理方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体如图2所示,所述方法可以包括:
S201,当有运维任务需要执行时,客户端生成执行任务请求,并将所述执行任务请求发送至网络矩阵中的主任务服务器。
本申请实施例中,执行任务请求中包括与运维任务对应的任务标识和任务等级。任务标识用于对运维任务进行唯一性识别,任务等级用于调整对运维任务的处理的优先顺序。每种运维任务有不同的任务等级,对于较高任务等级的运维任务,主任务服务器可以优先将该运维任务发送至各个从任务服务器。
在客户端的任务作业平台中,用户可以通过任务作业平台配置自动化运维任务的任务流程。当用户需要执行该运维任务时,触发运维任务执行操作。客户端监听到运维任务执行操作,获取所要执行的运维任务的任务标识,并将任务标识封装在执行任务请求中,发送至网络矩阵中的主任务服务器。其中,主任务服务器是处理客户端对应的运维任务的数据处理中心。
网络矩阵是指由应用为中心的网络架构,网络矩阵的拓扑结构是命令式的,通过自动发现、全自动配置和内置电缆计划等来自动执行。在完整的二分图中,网络矩阵的拓扑结构由连接到主任务服务器上的各个从任务服务器构成,各个所述从任务服务器都连接到各个所述主任务服务器,且各个所述从任务服务器均具有连接到外部网络基础架构的能力。外部网络基础架构包括城域网、多协议标签交换以及虚拟专用网络云等等。从任务服务器可以连接到执行策略的任何终端设备或主机。其中,网络矩阵中与主任务服务器相连的从任务服务器至少包括两个。
S202,所述主任务服务器从所述执行任务请求中获取所述任务标识,并基于所述任务标识,得到所述运维任务对应的至少一个待执行命令脚本信息。
主任务服务器接收到执行任务请求后,基于任务标识从内存数据库中或缓存中得到与该任务标识对应的至少一个待执行命令脚本信息,每个待执行命令脚本信息至少包括待执行命令和目标终端标识,目标终端标识用于指示执行该待执行命令的目标终端。
在实际应用中,采用缓存的方式会是以牺牲主任务服务器的内存为代价,为了降低对内存的牺牲,可将运维任务的所有信息存储在内存数据库中。本申请实施例采用Redis数据库作为内存数据库,Redis数据库以读写快速著称,可以快速的实现运维任务的信息的读取和写入。
具体如图3所示,所述基于所述任务标识,得到至少一个待执行命令脚本信息,可以包括:
S2021,从所述内存数据库中获取所述任务标识对应运维任务的所有任务节点。
每个运维任务对应的任务流程由各个任务节点构成,每个任务节点对应一个终端。执行该运维任务即是在各个任务节点对应的终端上执行命令,这些命令包括配置命令或者查询命令等,可以理解的,每个任务节点所对应的终端可以相同也可以不同。
S2022,基于每个所述任务节点的节点名称,得到所述运维任务对应的至少一个待执行命令脚本信息。
本申请实施例中,每个任务节点的节点名称由脚本文件名称与序列号组成,脚本文件名称是该任务节点所要执行的任务对应的脚本文件的名称,序列号是随机生成的一系列数字,用于对任务节点进行唯一标识。脚本文件名称依次由命令类型(例如查询或配置等)、终端名称以及命令目标以及序列号组成,例如query_olt_up_port表示查询OLT(Optical Line Terminal,光线路终端)的上行端口,set_olt_down_port表示设置OLT下行端口。主任务服务器根据节点名称中的脚本文件名称得到脚本文件,然后对脚本文件中的内容进行解析即得到节点名称对应的待执行命令脚本信息,由各个节点名称对应的待执行命令脚本信息构成该运维任务对应的各个待执行命令脚本信息。其中,脚本文件采用Python格式。
S203,所述主任务服务器基于所述运维任务对应的至少一个待执行命令脚本信息,生成所述运维任务对应的至少一个命令执行报文,通过调度器将所述运维任务对应的任务等级与预设等级阈值进行对比,以将所述运维任务设置在输出队列中的相应位置,在所述输出队列将所述运维任务对应的至少一个命令执行报文按照广播方式发送至所述网络矩阵中的各个从任务服务器后,在内存数据库启动对所述运维任务的监听。其中,每个所述命令执行报文与每个所述待执行命令脚本信息一一对应,所述命令执行报文中至少包括所述任务标识、所述目标终端标识和所述待执行命令。
主任务服务器负责对每个待执行命令脚本信息进行解析,读取待执行脚本信息中的目标终端标识和待执行命令,但并不直接将待执行命令发送至目标终端标识对应的目标终端,以将运维任务的管控和分发进行剥离,使得每种任务服务器处理不同的任务逻辑,即主任务服务器处理管控的任务逻辑,每个从任务服务器处理分发的任务逻辑。
使用网络矩阵不需要配置热备份路由器协议或虚拟路由器冗余协议地址,网络矩阵中各个从任务服务器均与主任务服务器相连,由于每个待执行命令脚本信息所对应的目标终端不同,主任务服务器将每个待执行命令脚本信息生成对应的命令执行报文,并将所有的命令执行报文以广播的方式发送至网络矩阵中的各个从任务服务器。
在发送至各个从任务服务器时,主任务服务器基于调度器来实现对不同任务等级的运维任务的调度服务,调度器是主任务服务器的关键构建组件,可以为运维任务提供优先机制。这就需要用户在对运维任务进行配置时,为该运维任务设置任务等级。
主任务服务器通过调度器将运维任务对应的任务等级与预设等级阈值进行对比,以将运维任务设置在输出队列中的相应位置,具体可以包括:检测运维任务对应的任务等级是否高于预设等级阈值;若是,则将该运维任务设置在输出队列中的第一位置,其中,第一位置为输出队列中与该运维任务对应的任务等级相同的其他运维任务的末尾位置;若否,则将该运维任务设置在输出队列中的第二位置,第二位置为输出队列的末尾位置。
举例说明,如图4a所示,假设调度器将所有运维任务对应的任务等级按照从低到高划分为第一等级、第二等级和第三等级,输出队列中排在最前端的运维任务为运维任务a(任务等级为第三等级),然后依次是运维任务m(任务等级为第三等级)、运维任务k(任务等级为第一等级)以及运维任务h(任务等级为第二等级),预设等级阈值为第二等级。当前有新的运维任务o,若该运维任务o对应的任务等级为第三等级,高于预设等级阈值,则将运维任务设置在运维任务m之后且运维任务k之前,如图4b所示。若该运维任务o对应的任务等级为第二等级或第一等级,则均不对该运维任务的位置进行调整,直接将该运维任务设置在输出队列的末尾位置,即运维任务h之后,如图4c所示。
主任务服务器通过调度器实现对不同任务等级的运维任务的处理,只有当新的运维任务对应的任务等级高于预设等级阈值时,才会对新的运维任务在输出队列中的排序进行调整。可以确保对重要的运维任务进行优先处理,提升运维体验。可以理解的,预设等级阈值的设定可以根据运维任务的总数量进行设置,也可以根据网络矩阵的规模进行调整,本申请实施例不做具体限定。
主任务服务器为了可以第一时间得到运维任务的执行结果,而又不浪费资源,在广播之后,主任务服务器在内存数据库中启动对该运维任务的监听。具体实施时,对于运维任务的监听,可以包括两种方式:一是基于待执行命令脚本信息的个数,二是基于执行时间。
对于方式一,每个待执行命令脚本信息对应一个目标终端,这些目标终端可以相同也可以不同,但是无论是相同的目标终端还是不同的目标终端,均要执行与待执行命令脚本信息的个数相一致的待执行命令。在启动对运维任务的监听时,将待执行命令脚本信息的个数作为运维任务的结果次数;当每次接收到目标终端的执行结果报文后,对内存数据库结果次数进行减一操作;当结果次数达到零时,运维任务执行完毕。本申请实施例可采用方式一或方式二进行运维任务的监听。
本申请实施例中,所述在内存数据库启动对所述运维任务的监听,可以包括:在所述内存数据库中,使用监听器对所述任务标识对应的执行时间进行监听。其中,执行时间即为过期时间,监听器即为Redis监听器,到了过期时间后Redis监听器监听到了过期的任务标识,将自动触发主任务服务器去获取运维任务的执行结果。
在一些实施例中,调度器还可以基于网络通讯情况,来限制输出队列中的运维任务数量。当新的运维任务需要处理时,如果调度器检测输出队列中运维任务数量超过预设数量阈值,则为该运维任务启动一个线程,以对该运维任务进行计时任务;当该计时任务对应的计时达到时,调度服务器再检测输出队列中运维任务数量是否超过预设数量阈值,循环此过程,至到输出队列中运维任务数量未超过预设数量阈值时,再按照该运维任务对应的任务等级进行优先顺序调整。通过上述方式,可以使得从而使得调度器不仅可以为运维任务提供优先机制,还可以避免运维任务阻塞。
S204,每个所述从任务服务器接收到所述命令执行报文后,基于所述命令执行报文中的所述目标终端标识,检测所述目标终端标识对应的目标终端与所述从任务服务器之间是否是内部连接。
在网络矩阵中,每个终端都只从属于一个从任务服务器,每个从任务服务器接收到命令执行报文后,在其转发表中查找是否存在与目标终端标识匹配的条目,若不存在,则不对该命令执行报文进行处理;若存在,则基于目标终端标识对应的目标终端与该从任务服务器之间的连接方式,确定像目标终端下发命令执行指令的方式。
网络矩阵会区分直接连接到网络矩阵的工作负载和网络,与网络矩阵外部的工作负载和网络。外部网络连接是指将网络矩阵连接到WAN(Wide Area Network,广域网)路由器,提供此连接的从任务服务器常常称为边界任务服务器,网络矩阵中任何从任务服务器都可以是边界任务服务器,可用作边界从任务服务器的服务器数量没有限制,而内部网络连接是指网络矩阵直接与终端设备相连。换言之,所有在网络矩阵内发现的工作负载都属于内部网络,外部网络通过边界从任务服务器来学习。
若目标终端与从任务服务器之间是内部连接,则执行步骤S205;若目标终端与从从任务服务器之间不是内部连接,则执行步骤S206。
S205,直接向所述目标终端下发命令执行指令。
S206,通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令;其中,所述命令执行指令中包括所述待执行命令和所述任务标识。
本申请实施例中,网络矩阵中的每个从任务服务器都会定期的对外部网络连接进行学习,如图5所示,在步骤S206之前,所述方法还包括:
S401,按照预设方式学习外部网络连接。
其中,预设方式可以包括静态路由、开放最短路径优先(Open Shortest PathFirst,OSPF)或内部边界网关协议(Internal Border Gateway Protocol,IBGP)等等。从任务服务器在学习到外部网络连接后,在外部网络连接中选择一个边界终端,通过该边界终端进行命令执行指令的下发。
具体如图6所示,所述通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令,包括:
S2061,将所述任务执行指令转发到所述外部网络连接中的边界终端,所述边界终端表征离所述从任务服务器最近的外部路由器所附加到的终端。
S2062,所述边界终端将所述任务执行指令转发至所述目标终端标识对应的目标终端。
不同于传统的网络,网络矩阵中的各个从任务服务器为网络矩阵提供映射数据库功能。网络矩阵中每个从任务服务器都维护有一个映射数据库,该映射数据库由多张转发表组成。网络矩阵首选的操作模式并不依赖于组播进行学习和发现,而是依靠映射数据库,该映射数据库在发现终端时进行填充,如果需要支持组播和广播,才会依靠组播来实现。
目标终端标识包括目标网际协议地址(目标IP地址)和/或目标物理地址(目标MAC地址),从任务服务器主要基于目标IP地址在映射数据库中进行匹配,当匹配到一个条目时,将任务通过该条目对应的终端进行任务执行指令的转发。当匹配到多个条目时,根据映射数据库中的距离字段,选择距离从任务服务器最近的外部路由器所附加到的终端,以进行任务执行指令的转发。
S207,每个所述目标终端接收到所述命令执行指令后,执行所述命令执行指令中的所述待执行命令,在所述待执行命令执行完成后,生成执行结果报文,并将所述执行结果报文按照所述命令执行指令的下发路径发送至所述主任务服务器。其中,所述执行结果报文中包括所述目标终端的目标终端标识、所述任务标识和执行结果。
本申请实施例中,按照命令执行指令的下发路径发送至主任务服务器是指通过该命令执行指令下发的从任务服务器发送至主任务服务器。例如,若命令执行指令是通过从任务服务器1下发至目标终端1的,则目标终端1也同样通过任务服务器1将执行结果报文发送至主任务服务器。
在实际应用中,目标终端的执行结果通常是成功、失败或目标终端的配置信息等等,因此只需要很少的网络开销,就能实现将执行结果封装至执行结果报文的方式传递至主任务服务器。
S208,所述主任务服务器接收到每个所述执行结果报文后,将所述执行结果报文中的所述执行结果回写至内存数据库中所述任务标识对应的记录下。
由于内存数据库使用的是读写快速的Redis数据库,即使运维任务涉及到的任务节点较多,主任务服务器在每次接受到执行结果报文后,也可以很快速的将执行结果报文进行存储。
S209,所述内存数据库监听到所述运维任务达到执行完成条件后,通知所述主任务服务器。
在步骤S203中,主任务服务器启动对运维任务的监听有两种方式,对于方式一,内存数据库每次接收到主任务服务器的执行结果回写操作后,判断结果次数是否为零,若为零,则达到执行完成条件。对于方式二,监听到运维任务达到执行完成条件为监听到任务标识的执行时间达到,执行时间即为过期时间,到了过期时间后Redis监听器监听到了过期的任务标识,将通知主任务服务器,以使主任务服务器获取运维任务的执行结果。
S210,所述主任务服务器从所述内存数据库获取所述任务标识对应的所有所述执行结果,并基于预先通过组件编码方式生成的反向范式组件,将所有所述执行结果推送至所述客户端。
主任务服务器接收到内存数据库的通知后,基于通知中的任务标识从内存数据库获取该任务标识对应的所有执行结果,所有执行结果包括每个目标终端标识和每个目标终端标识对应的执行结果,其返回格式可以是JSON字符串形势,例如{“任务标识”:{ {“目标终端标识1”:”执行结果1”},…,{“目标终端标识n”:”执行结果n”}}}。其中,每个目标终端标识对应的执行结果是与所执行的指令相对应的,例如对于查询端口的指令,执行结果可以是端口信息;对于执行配置的指令,执行结果可以是执行成功或执行失败;对于查询网络指令,执行结果可以是网络资源信息等等。在具体实施时,对于某个目标终端标识对应的执行结果,如果主任务服务器没有获取到,可以将该执行结果设置为空或其他用于指示未获取到结果的标识信息。
反向范式组件是指通过web回调方式为应用程序提供实时消息的一种方式,因而也可称作webtool消息通知组件。反向范式组件在数据产生时立即发送数据,也就是说,用户可以实时收到数据。
具体参照图7中所示,所述通过组件编码方式生成所述反向范式组件的步骤,可以包括:
S2101,在编写完所述反向范式组件对应的应用程序编程接口后,将所述应用程序编程接口通过预设方式部署到所述反向范式所属系统对应的目录下。
在编写完反向范式组件对应的应用程序编程接口后,主任务服务器可以通过git,scp或发布等方式将代码进行部署,在部署完成后,会在主任务服务器对应的组件系统的目录下生成与应用程序编程接口对应的类名相符的脚本文件。例如,假设应用程序编程接口对应的类名为SendWebtool,则所生成的脚本文件为send_webtool.py,若反向范式组件所属系统为CMSI,其在主任务服务器中的目录结构如下所示:
apis/
├──cmsi
│├──apidoc
│├── __init__.py
│├── send_webtool.py
│└── toolkit
│├── configs.py
│├── __init__.py
│└── tools.py
├── conf.py
└── __init__.py
S2102,基于所述应用程序编程接口对应的类名,生成所述反向范式组件对应的组件代号。
反向范式组件通过“组件代号”进行标识,“组件代号”由前缀(默认为generic).系统名.组件类名三部分组成,如应用程序编程接口对应的类名SendWebtool,则反向范式组件对应的组件代号为generic.cmsi.send_webtool。
S2103,基于所述组件代号,在通道管理中为所述反向范式组件注册通道,并在重启服务总线后,对所述反向范式组件对应的组件参数进行配置,以使所述反向范式组件生效。
在主任务服务器中,一个组件的生效需要为该组件设置通道,通道就相当于配置组件通信的资源,比如,位置、入参、权限等等,组件的通道需要在通道管理页面中进行配置。
在一个示例中,如图8所示,其为通道管理页面的示意图。可以通过通道管理页面中的“添加一个新的通道”按钮,打开如图9所示的添加新通道的编辑页面。在该编辑页面中,可以为反向范式组件对应通道的通道名称、通道路径、所属系统、权限级别以及API类型等等。其中,通道名称可以自定义,例如,“通过webtool发送消息”;通道路径指示反向范式所属系统对应的目录,其命名规则是“/系统名称小写/通道名称”,例如反向范式所属系统对应的目录是components/generic/apis/cmsi/send_webtool.py,则通道路径为/cmsi/send_webtool/;API类型包括查询API和非查询API,对于非查询API,例如POST、UPDATE以及DELETE等方式选择执行API,由于反向范式组件是POST方式,因此选择执行API。
主任务服务器在完成通道的注册以及服务总线等操作后,通道管理页面中就存在所新增的反向范式组件对应的记录。但若要使该反向范式组件生效,还需要对反向范式组件所需要的参数进行配置。
对于组件参数的配置,有两种方式:一是通过主任务服务器中的目录结构下的configs.py文件直接给出配置信息,其配置属性名与代码部分(即SendWebtool中)的变量名保持一致;二是在send_webtool.py中有特定的获取属性的语句的情况下,例如getattr(self, '配置属性名', ''),可以通过esb配置界面进行配置。
若通过esb配置界面进行配置,需要使用指定管理通道配置界面即admin管理通道配置界面进行操作。
参照图10中所示,所述对所述反向范式组件对应的组件参数进行配置,可以包括:
S21031,在所述通道管理中,获取所述反向范式组件对应的通道标识。
S21032,通过所述通道标识,增加所述反向范式组件对应的组件参数。
首先在通道管理对应界面中,找到反向范式组件对应的通道名称,如“通过webtool发送消息”,点击通道名称后,在弹出界面的URL(统一资源定位符)中,关键字channel后的数字即为通道标识。例如,URL为http://xxxxx/channel/106/edit/,那么106即为反向范式组件对应的通道标识。
在获得通道标识后,可以通过执行SQL语句直接在数据库中新增反向范式组件对应的组件参数,也可以通过将指定管理通道配置界面的URL与通道标识进行组合,到反向范式组件的参数配置界面进行手动配置。
具体如图11所示,步骤S21032可以包括:
S210321,基于所述通道标识,进入所述反向范式组件对应的配置参数界面,所述配置参数界面的统一资源定位符由前缀和后缀组成,所述前缀为指定管理通道配置界面的统一资源定位符,所述后缀为所述通道标识。
例如,指定管理通道配置界面的统一资源定位符为http://xxxx/esbchanel/,通道标识为106,则配置参数界面的统一资源定位符为http://xxxx/esbchanel/106/。
S210322,在所述配置参数界面中,增加所述反向范式组件对应的组件参数,其中,所述组件参数的参数名与所述应用程序编程接口中的变量名相对应。
在配置参数界面中确保配置格式为数组结构,即[["可配置属性1",""],["可配置属性名2",""]],编辑好后保存,同时要确保"可配置属性名1"、"可配置属性名2"这些属性的名称要与SendWebtool中各变量名相对应。
在一些实施例中,参照图12所示,在步骤S210之后,所述方法还包括:
S211,所述客户端接收到所有所述执行结果后,将所有所述执行结果展示在执行结果查看页面中,并将所有所述执行结果存储在所述客户端的缓存中;
S212,所述客户端响应于所述执行结果查看页面中对所述运维任务的执行结果查看事件,从所缓存中获取与所述运维任务对应的执行结果,并将所述运维任务对应的执行结果展示在所执行结果查看页面中。
客户端在接收到主任务服务器推送的所有执行结果后,将执行结果展示在执行结果查看页面中,同时会将执行结果存储在客户端的缓存中。当用户需要再次查看运维任务的执行结果时,客户端直接从缓存中获取与该运维任务对应的执行结果,而不必再根据主任务服务器从内存数据库中获取,减少客户端与服务器之间的数据交互,减短用户查看执行结果的响应时间。
在使用反向范式组件时,主任务服务器可直接基于通道路径进行反向范式组件的访问,其具体调用方式与常见通过web调用API的方式相似,在此不再赘述。
由以上提供的技术方案可见,本申请提供的多节点自动化运维任务处理方法中,运维任务的分发由网络矩阵中的主任务服务器和各从任务服务器完成,而不是由一个服务器统一分发,提升了运维任务的周转速度;通过调度器实现不同任务等级的运维任务的处理,提升运维体验;在运维任务的执行过程中,每个终端的执行结果由每个终端主动返回至内存数据库,整个运维任务的执行结果由内存数据库的监听机制启动返回流程,由主任务服务器根据预先生成的反向范式组件,将消息内容推送至客户端,能够避免不必要的获取操作,减少频繁查询引起的资源浪费。
本申请实施例还提供一种多节点自动化运维任务处理系统,参照如图13中所示,所述系统可以包括客户端1310、网络矩阵1320、内存数据库1330和多个(图中采用1340a、1340k…来示出)目标终端1340;网络矩阵1320包括一个主任务服务器1321和多个(图中采用1322a、1322b…来示出)从任务服务器1322。其中,多个表征多于一个。
所述客户端1310用于监听是否有运维任务需要执行,当有运维任务需要执行时,生成执行任务请求,并将所述执行任务请求发送至所述网络矩阵1320中的主任务服务器1321,其中,所述执行任务请求中包括与所述运维任务对应的任务标识和任务等级;
所述主任务服务器1321用于从所述执行任务请求中获取所述任务标识,并基于所述任务标识,得到所述运维任务对应的至少一个待执行命令脚本信息,每个所述待执行命令脚本信息至少包括待执行命令和目标终端标识,所述目标终端标识用于指示执行所述待执行命令的目标终端;
所述主任务服务器1321还用于基于所述运维任务对应的至少一个待执行命令脚本信息,生成所述运维任务对应的至少一个命令执行报文,通过调度器将所述运维任务对应的任务等级与预设等级阈值进行对比,以将所述运维任务设置在输出队列中的相应位置,在所述输出队列将所述运维任务对应的至少一个命令执行报文按照广播方式发送至所述网络矩阵中的各个从任务服务器后,在所述内存数据库1330启动对所述运维任务的监听,其中,每个所述命令执行报文与每个所述待执行命令脚本信息一一对应,所述命令执行报文中至少包括所述任务标识、所述目标终端标识和所述待执行命令;
每个所述从任务服务器1322用于接收到所述命令执行报文后,基于所述命令执行报文中的所述目标终端标识,检测所述目标终端标识对应的目标终端与所述从任务服务器之间是否是内部连接;若是,则直接向所述目标终端下发命令执行指令;若否,则通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令;其中,所述命令执行指令中包括所述待执行命令和所述任务标识;
每个所述目标终端1340用于接收到所述命令执行指令后,执行所述命令执行指令中的所述待执行命令,在所述待执行命令执行完成后,生成执行结果报文,并将所述执行结果报文按照所述命令执行指令的下发路径发送至所述主任务服务器1321,其中,所述执行结果报文中包括所述目标终端的目标终端标识、所述任务标识和执行结果;
所述主任务服务器1321还用于接收到每个所述执行结果报文后,将所述执行结果报文中的所述执行结果回写至所述内存数据库1330中所述任务标识对应的记录下;
所述内存数据库1330用于监听到所述运维任务达到执行完成条件后,通知所述主任务服务器1321;
所述主任务服务器1321还用于从所述内存数据库1330中获取所述任务标识对应的所有所述执行结果,并基于预先通过组件编码方式生成的反向范式组件,将所有所述执行结果推送至所述客户端1310。
在一些实施例中,所述主任务服务器1321可以包括待执行命令确定模块,所述待执行命令确定模块可以包括:
任务节点获取单元,用于从所述内存数据库中获取所述任务标识对应运维任务的所有任务节点;
命令解析单元,用于基于每个所述任务节点的节点名称,得到所述运维任务对应的至少一个待执行命令脚本信息。
在一些实施例中,所述主任务服务器1321还可以包括:
监听模块,用于在所述内存数据库中,使用监听器对所述任务标识对应的执行时间进行监听。
相应的,所述内存数据库1330还用于监听到所述任务标识的执行时间达到后,通知所述主任务服务器1321。
在一些实施例中,每个所述从任务服务器1322可以包括:
网络学习模块,用于按照预设方式学习所述外部网络连接,其中,所述预设方式包括静态路由、开放最短路径优先或内部边界网关协议。
在一些实施例中,每个所述从任务服务器1322还用于:将所述任务执行指令转发到所述外部网络连接中的边界终端,所述边界终端表征离所述从任务服务器最近的外部路由器所附加到的终端。
相应的,所述边界终端将所述任务执行指令转发至所述目标终端标识对应的目标终端。
在一些实施例中,所述客户端1310还用于接收到所有所述执行结果后,将所有所述执行结果展示在执行结果查看页面中,并将所有所述执行结果存储在所述客户端1310的缓存中;
所述客户端1310还用于响应于所述执行结果查看页面中对所述运维任务的执行结果查看事件,从所缓存中获取与所述运维任务对应的执行结果,并将所述运维任务对应的执行结果展示在所执行结果查看页面中。
在一些实施例中,所述主任务服务器1321还包括组件生成模块,所述组件生成模块可以包括:
组件部署单元,用于在编写完所述反向范式组件对应的应用程序编程接口后,将所述应用程序编程接口通过预设方式部署到所述反向范式所属系统对应的目录下;
组件代号生成单元,用于基于所述应用程序编程接口对应的类名,生成所述反向范式组件对应的组件代号;
组件生效单元,用于基于所述组件代号,在通道管理中为所述反向范式组件注册通道,并在重启服务总线后,对所述反向范式组件对应的组件参数进行配置,以使所述反向范式组件生效。
在一些实施例中,所述组件生效单元可以包括:
通道标识获取单元,用于在所述通道管理中,获取所述反向范式组件对应的通道标识;
组件参数配置单元,用于通过所述通道标识,增加所述反向范式组件对应的组件参数。
需要说明的是,上述实施例提供的系统,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的系统与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例还提供了一种通信设备,所述设备如上所述的多节点自动化运维任务处理系统。
进一步地,图14示出了一种用于实现本申请实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本申请实施例所提供的系统。如图14所示,设备14可以包括一个或多个(图中采用1402a、1402b,……,1402n来示出)处理器1402(处理器1402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1404、以及用于通信功能的传输装置1406。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图14所示的结构仅为示意,其并不对上述设备的结构造成限定。例如,设备14还可包括比图14中所示更多或者更少的组件,或者具有与图14所示不同的配置。
应当注意到的是上述一个或多个处理器1402和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备14(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器1404可用于存储应用软件的软件程序以及模块,如本申请实施例中所述的方法对应的程序指令/数据存储装置,处理器1402通过运行存储在存储器1404内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的多节点自动化运维任务处理方法。存储器1404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1404可进一步包括相对于处理器1402远程设置的存储器,这些远程存储器可以通过网络连接至设备14。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置1406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备14的通信供应商提供的无线网络。在一个实例中,传输装置1406包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置1406可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备14(或移动设备)的用户界面进行交互。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上述的方法实施例提供的多节点自动化运维任务处理方法。
可选地,在本实施例中,上述计算机存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机存储介质中。通信设备的处理器从计算机存储介质读取该计算机指令,处理器执行该计算机指令,使得该通信设备执行上述的方法实施例提供的多节点自动化运维任务处理方法。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述说明已经充分揭露了本申请的具体实施方式。需要指出的是,熟悉该领域的技术人员对本申请的具体实施方式所做的任何改动均不脱离本申请的权利要求书的范围。相应地,本申请的权利要求的范围也并不仅仅局限于前述具体实施方式。
Claims (10)
1.一种多节点自动化运维任务处理方法,其特征在于,所述方法包括:
当有运维任务需要执行时,客户端生成执行任务请求,并将所述执行任务请求发送至网络矩阵中的主任务服务器,其中,所述执行任务请求中包括与所述运维任务对应的任务标识和任务等级;
所述主任务服务器从所述执行任务请求中获取所述任务标识,并基于所述任务标识,得到所述运维任务对应的至少一个待执行命令脚本信息,每个所述待执行命令脚本信息至少包括待执行命令和目标终端标识,所述目标终端标识用于指示执行所述待执行命令的目标终端;
所述主任务服务器基于所述运维任务对应的至少一个待执行命令脚本信息,生成所述运维任务对应的至少一个命令执行报文,通过调度器将所述运维任务对应的任务等级与预设等级阈值进行对比,以将所述运维任务设置在输出队列中的相应位置,在所述输出队列将所述运维任务对应的至少一个命令执行报文按照广播方式发送至所述网络矩阵中的各个从任务服务器后,在内存数据库启动对所述运维任务的监听,其中,每个所述命令执行报文与每个所述待执行命令脚本信息一一对应,所述命令执行报文中至少包括所述任务标识、所述目标终端标识和所述待执行命令;
每个所述从任务服务器接收到所述命令执行报文后,基于所述命令执行报文中的所述目标终端标识,检测所述目标终端标识对应的目标终端与所述从任务服务器之间是否是内部网络连接;若是,则直接向所述目标终端下发命令执行指令;若否,则通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令;其中,所述命令执行指令中包括所述待执行命令和所述任务标识;
每个所述目标终端接收到所述命令执行指令后,执行所述命令执行指令中的所述待执行命令,在所述待执行命令执行完成后,生成执行结果报文,并将所述执行结果报文按照所述命令执行指令的下发路径发送至所述主任务服务器,其中,所述执行结果报文中包括所述目标终端的目标终端标识、所述任务标识和执行结果;
所述主任务服务器接收到每个所述执行结果报文后,将所述执行结果报文中的所述执行结果回写至所述内存数据库中所述任务标识对应的记录下;
所述内存数据库监听到所述运维任务达到执行完成条件后,通知所述主任务服务器;
所述主任务服务器从所述内存数据库中获取所述任务标识对应的所有所述执行结果,并基于预先通过组件编码方式生成的反向范式组件,将所有所述执行结果推送至所述客户端;
网络矩阵是指由应用为中心的网络架构,网络矩阵的拓扑结构是命令式的,在完整的二分图中,网络矩阵的拓扑结构由连接到主任务服务器上的各个从任务服务器构成,各个所述从任务服务器都连接到各个所述主任务服务器,且各个所述从任务服务器均具有连接到外部网络基础架构的能力;外部网络基础架构包括城域网、多协议标签交换以及虚拟专用网络云,从任务服务器连接到执行策略的任何终端设备或主机,网络矩阵中与主任务服务器相连的从任务服务器至少包括两个;
外部网络连接是指将网络矩阵连接到WAN路由器,内部网络连接是指网络矩阵直接与终端设备相连;
反向范式组件是指通过web回调方式为应用程序提供实时消息的一种方式,反向范式组件在数据产生时立即发送数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述任务标识,得到所述运维任务对应的至少一个待执行命令脚本信息,包括:
从所述内存数据库中获取所述任务标识对应运维任务的所有任务节点;
基于每个所述任务节点的节点名称,得到所述运维任务对应的至少一个待执行命令脚本信息。
3.根据权利要求1所述的方法,其特征在于,所述在内存数据库启动对所述运维任务的监听,包括:
在所述内存数据库中,使用监听器对所述任务标识对应的执行时间进行监听;
相应的,所述监听到所述运维任务达到执行完成条件后,通知所述主任务服务器,包括:
监听到所述任务标识的执行时间达到后,通知所述主任务服务器。
4.根据权利要求1所述的方法,其特征在于,在所述通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令之前,所述方法还包括:
按照预设方式学习所述外部网络连接,其中,所述预设方式包括静态路由、开放最短路径优先或内部边界网关协议。
5.根据权利要求4所述的方法,其特征在于,所述通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令,包括:
将所述任务执行指令转发到所述外部网络连接中的边界终端,所述边界终端表征离所述从任务服务器最近的外部路由器所附加到的终端;
所述边界终端将所述任务执行指令转发至所述目标终端标识对应的目标终端。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述客户端接收到所有所述执行结果后,将所有所述执行结果展示在执行结果查看页面中,并将所有所述执行结果存储在所述客户端的缓存中;
所述客户端响应于所述执行结果查看页面中对所述运维任务的执行结果查看事件,从所缓存中获取与所述运维任务对应的执行结果,并将所述运维任务对应的执行结果展示在所执行结果查看页面中。
7.根据权利要求1所述的方法,其特征在于,所述通过组件编码方式生成所述反向范式组件的步骤,包括:
在编写完所述反向范式组件对应的应用程序编程接口后,将所述应用程序编程接口通过预设方式部署到所述反向范式所属系统对应的目录下;
基于所述应用程序编程接口对应的类名,生成所述反向范式组件对应的组件代号;
基于所述组件代号,在通道管理中为所述反向范式组件注册通道,并在重启服务总线后,对所述反向范式组件对应的组件参数进行配置,以使所述反向范式组件生效。
8.根据权利要求7所述的方法,其特征在于,所述对所述反向范式组件对应的组件参数进行配置,包括:
在所述通道管理中,获取所述反向范式组件对应的通道标识;
通过所述通道标识,增加所述反向范式组件对应的组件参数。
9.一种多节点自动化运维任务处理系统,其特征在于,所述系统包括客户端、网络矩阵、内存数据库和至少一个目标终端;
所述客户端用于监听是否有运维任务需要执行,当有运维任务需要执行时,生成执行任务请求,并将所述执行任务请求发送至所述网络矩阵中的主任务服务器,其中,所述执行任务请求中包括与所述运维任务对应的任务标识和任务等级;
所述主任务服务器用于从所述执行任务请求中获取所述任务标识,并基于所述任务标识,得到所述运维任务对应的至少一个待执行命令脚本信息,每个所述待执行命令脚本信息至少包括待执行命令和目标终端标识,所述目标终端标识用于指示执行所述待执行命令的目标终端;
所述主任务服务器还用于基于所述运维任务对应的至少一个待执行命令脚本信息,生成所述运维任务对应的至少一个命令执行报文,通过调度器将所述运维任务对应的任务等级与预设等级阈值进行对比,以将所述运维任务设置在输出队列中的相应位置,在所述输出队列将所述运维任务对应的至少一个命令执行报文按照广播方式发送至所述网络矩阵中的各个从任务服务器后,在所述内存数据库启动对所述运维任务的监听,其中,每个所述命令执行报文与每个所述待执行命令脚本信息一一对应,所述命令执行报文中至少包括所述任务标识、所述目标终端标识和所述待执行命令;
每个所述从任务服务器用于接收到所述命令执行报文后,基于所述命令执行报文中的所述目标终端标识,检测所述目标终端标识对应的目标终端与所述从任务服务器之间是否是内部网络连接;若是,则直接向所述目标终端下发命令执行指令;若否,则通过预先学习的外部网络连接,向所述目标终端下发所述命令执行指令;其中,所述命令执行指令中包括所述待执行命令和所述任务标识;
每个所述目标终端用于接收到所述命令执行指令后,执行所述命令执行指令中的所述待执行命令,在所述待执行命令执行完成后,生成执行结果报文,并将所述执行结果报文按照所述命令执行指令的下发路径发送至所述主任务服务器,其中,所述执行结果报文中包括所述目标终端的目标终端标识、所述任务标识和执行结果;
所述主任务服务器还用于接收到每个所述执行结果报文后,将所述执行结果报文中的所述执行结果回写至所述内存数据库中所述任务标识对应的记录下;
所述内存数据库用于监听到所述运维任务达到执行完成条件后,通知所述主任务服务器;
所述主任务服务器还用于从所述内存数据库中获取所述任务标识对应的所有所述执行结果,并基于预先通过组件编码方式生成的反向范式组件,将所有所述执行结果推送至所述客户端;
网络矩阵是指由应用为中心的网络架构,网络矩阵的拓扑结构是命令式的,在完整的二分图中,网络矩阵的拓扑结构由连接到主任务服务器上的各个从任务服务器构成,各个所述从任务服务器都连接到各个所述主任务服务器,且各个所述从任务服务器均具有连接到外部网络基础架构的能力;外部网络基础架构包括城域网、多协议标签交换以及虚拟专用网络云,从任务服务器连接到执行策略的任何终端设备或主机,网络矩阵中与主任务服务器相连的从任务服务器至少包括两个;
外部网络连接是指将网络矩阵连接到WAN路由器,内部网络连接是指网络矩阵直接与终端设备相连;
反向范式组件是指通过web回调方式为应用程序提供实时消息的一种方式,反向范式组件在数据产生时立即发送数据。
10.一种计算机存储介质,其特征在于,所述计算机存储介质包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1-8任意项所述的多节点自动化运维任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110139173.1A CN112506670B (zh) | 2021-02-02 | 2021-02-02 | 一种多节点自动化运维任务处理方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110139173.1A CN112506670B (zh) | 2021-02-02 | 2021-02-02 | 一种多节点自动化运维任务处理方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112506670A CN112506670A (zh) | 2021-03-16 |
CN112506670B true CN112506670B (zh) | 2021-04-20 |
Family
ID=74952871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110139173.1A Active CN112506670B (zh) | 2021-02-02 | 2021-02-02 | 一种多节点自动化运维任务处理方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506670B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113702860A (zh) * | 2021-08-20 | 2021-11-26 | 北京空间飞行器总体设计部 | 一种用于航天器电源系统评测的示波器波形数据分析方法 |
CN113703836A (zh) * | 2021-08-20 | 2021-11-26 | 北京空间飞行器总体设计部 | 一种用于航天器电源系统评测的scpi指令管理方法 |
CN114168626A (zh) * | 2021-12-13 | 2022-03-11 | 中国建设银行股份有限公司 | 一种数据库操作的处理方法、装置、设备及介质 |
CN117354140A (zh) * | 2022-06-27 | 2024-01-05 | 中兴通讯股份有限公司 | 配置数据刷新方法、装置、系统、存储介质及电子装置 |
CN115766862A (zh) * | 2022-11-16 | 2023-03-07 | 中国工商银行股份有限公司 | 容器运维方法、装置、计算机设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420727A (zh) * | 2012-01-05 | 2012-04-18 | 北京邮电大学 | 一种基于分布式的协议测试系统及方法 |
US8887056B2 (en) * | 2012-08-07 | 2014-11-11 | Advanced Micro Devices, Inc. | System and method for configuring cloud computing systems |
CN103888287B (zh) * | 2013-12-18 | 2016-01-27 | 北京首都国际机场股份有限公司 | 信息系统一体化运维监控服务预警平台 |
CN103944779B (zh) * | 2014-03-31 | 2018-01-30 | 中国移动(深圳)有限公司 | 一种wap业务性能监测方法及系统 |
CN109327076A (zh) * | 2018-08-21 | 2019-02-12 | 朱明增 | 一种提高自动化系统运维效率的系统 |
-
2021
- 2021-02-02 CN CN202110139173.1A patent/CN112506670B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112506670A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506670B (zh) | 一种多节点自动化运维任务处理方法、系统及存储介质 | |
US9720724B2 (en) | System and method for assisting virtual machine instantiation and migration | |
US20200195511A1 (en) | Network management method and related device | |
US20220094761A1 (en) | Server Invocation Method and Proxy Server | |
TWI728036B (zh) | 資訊處理方法、裝置和系統 | |
US9207988B2 (en) | Method, system, and device for managing server hardware resources in a cloud scheduling environment | |
CN107800565B (zh) | 巡检方法、装置、系统、计算机设备和存储介质 | |
US20150237113A1 (en) | Method and system for file transmission | |
US10516734B2 (en) | Computer servers for datacenter management | |
US20160277237A1 (en) | Network bootstrapping for a distributed storage system | |
CN110413845B (zh) | 基于物联网操作系统的资源存储方法及装置 | |
CN112506870B (zh) | 数据仓库增量更新方法、装置及计算机设备 | |
CN112015696B (zh) | 数据访问、数据关系设置方法、装置及存储介质 | |
CN113656168A (zh) | 一种流量的自动容灾和调度的方法、系统、介质和设备 | |
CN115168031A (zh) | 一种雾计算系统、方法、电子设备及存储介质 | |
CN112087335A (zh) | 流量实验方法、装置及存储介质 | |
CN117389830A (zh) | 集群日志采集方法、装置、计算机设备及存储介质 | |
CN114401319A (zh) | 一种请求处理方法、装置、服务器及存储介质 | |
CN115706741A (zh) | 一种切片文件的回源方法以及装置 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
US11606415B2 (en) | Method, apparatus and system for processing an access request in a content delivery system | |
CN110196721B (zh) | 一种互联网数据中心管理方法、系统及介质 | |
JP6501924B2 (ja) | アラートを解除する方法及びサーバー | |
CN107577822A (zh) | 一种数据同步方法、数据同步装置及移动终端 | |
CN109445988B (zh) | 异构容灾方法、装置、系统、服务器和容灾平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |