
1.本发明涉及一种基于小程序的运维操作方法和系统,属于信息技术领域。
背景技术:2.随着互联网和移动网技术的飞速发展,各类应用系统得到了广泛的应用,大量的应用系统,使得系统运维需要大量繁琐、重复的工作,从而花费大量的人力、物力和时间。
3.申请人之前获得授权的专利cn 201110305289.4(申请名称:多个网络设备智能操作逻辑的实现方法和系统,申请日:2011-10-11,申请人:杭州东信北邮信息技术有限公司)提出了一种多个网络设备智能操作逻辑的实现方法和系统,所述方法包括有:定义操作任务的操作逻辑文件,包含有参数列表和操作逻辑配置两个部分,其中操作逻辑配置用于描述整个操作任务的实际操作过程,由若干个会话单元组成,所述会话单元是指为实现特定目标而组合在一起的多个逻辑操作;选择执行操作任务的多个设备或数据库;解析操作逻辑文件,按照先后次序依次加载操作逻辑配置中的会话单元,并按所述会话单元内容对所选择的多个网络设备执行逻辑操作。该技术方案用于定义操作任务的操作逻辑文件的文件格式只能是xml,并且实现远程操作的形式是使用ssh、telnet、ftp形式登录后执行操作命令,因此需要开放ssh、telnet、ftp以及数据库的链接接口,所以安全性低、具有局限性,同时操作指令也是单一、固定的,无法进行编辑或扩展,随着信息技术的发展,该技术方案已无法满足当前运维领域的技术需求。
4.因此,如何为用户提供安全性高、操作简单且定制灵活的运维操作环境,已成为现有技术中亟待解决的技术问题之一。
技术实现要素:5.有鉴于此,本发明的目的是提供一种基于小程序的运维操作方法和系统,能为用户提供安全性高、操作简单且定制灵活的运维操作环境。
6.为了达到上述目的,本发明提供了一种基于小程序的运维操作方法,包括有网管服务器和多个主机,且每个主机上安装有一个代理装置,当用户通过小程序界面定制新的运维小程序时,包括有:
7.步骤a、用户在小程序界面上编写小程序核心逻辑,并输入程序名称、程序类型、程序参数信息,小程序核心逻辑和相关信息被上传至网管服务器;
8.步骤b、网管服务器将收到的小程序核心逻辑和相关信息合成为一个在主机上执行的小程序文件;
9.步骤c、网管服务器将所有小程序和小程序的执行逻辑文件合成一个插件,并将插件内容同步至所有主机的执行环境中;
10.步骤d、当用户在小程序界面上选择执行的运维小程序时,网管服务器向用户选择的所有主机发送小程序执行请求,主机上的代理装置从收到的小程序执行请求中提取用户选择执行的小程序名称和程序参数信息,然后执行主机上对应的小程序,并将小程序执行
结果返回给网管服务器;
11.步骤e、网管服务器对所有主机返回的小程序执行结果进行处理。
12.为了达到上述目的,本发明还提供了一种基于小程序的运维操作系统,包括有网管服务器和多个主机,其中,网管服务器进一步包括有:
13.小程序编辑装置,当用户在小程序界面上编写小程序核心逻辑,并输入程序名称、程序类型、程序参数信息后,将小程序核心逻辑和相关信息上传至小程序合成装置;
14.小程序合成装置,将收到的小程序核心逻辑和相关信息合成为一个在主机上执行的小程序文件;
15.小程序同步装置,将所有小程序和小程序的执行逻辑文件合成一个插件,并将插件内容同步至所有主机的执行环境中;
16.小程序执行装置,当用户在小程序界面上选择执行的运维小程序时,向用户选择的所有主机发送小程序执行请求,并将主机返回的小程序执行结果转发给小程序结果处理装置进行处理;
17.小程序结果处理装置,对所有主机返回的小程序执行结果进行处理,
18.主机上进一步包括有:
19.代理装置,从网管服务器发来的小程序执行请求中提取用户选择执行的小程序名称和程序参数信息,然后执行主机上对应的小程序,并将小程序执行结果返回给网管服务器。
20.与现有技术相比,本发明的有益效果是:本发明将某个运维操作能力以lua或shell动态脚本语言实现,封装为小程序,实现形式灵活;本发明除预置小程序外,还提供界面diy开发小程序的功能,用户在小程序界面上仅需输入相关参数及编写核心逻辑,然后网管服务器基于用户编写的核心逻辑,增加基础支撑能力合成为可在运维系统中执行的目标小程序文件,同时还会将所有的小程序时时同步到主机上,用户操作简单且定制灵活,并且由于小程序在本机上执行,不需要主机开放登陆权限,因而安全性高、无局限性;用户通过界面选择要执行的小程序及主机即可完成对应的运维操作,网管服务器应用ai算法对所有主机的执行结果进行处理,实现同类结果的汇聚以及异常结果的提示,因此可适用于运维操作的各种业务需求。
附图说明
21.图1是用户通过小程序界面定制新的运维小程序时,本发明一种基于小程序的运维操作方法的流程图。
22.图2是图1步骤b的具体步骤流程图。
23.图3是本发明一种基于小程序的运维操作系统的组成结构示意图。
具体实施方式
24.为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
25.本发明中的小程序指通过一段计算机程序来实现一个功能,具有设置简洁、执行快速的特点。基于小程序,用户通过简单的界面操作即可实现应用,而无需关心安装、部署、
执行环境等特性。小程序的主要功能为对主机及应用实现运维操作的效果。
26.如图1所示,本发明一种基于小程序的运维操作方法,包括有网管服务器和多个主机,且每个主机上安装有一个代理装置,当用户通过小程序界面定制新的运维小程序时,包括有:
27.步骤a、用户在小程序界面上编写小程序核心逻辑,并输入程序名称、程序类型、程序参数信息,小程序核心逻辑和相关信息被上传至网管服务器;
28.步骤b、网管服务器将收到的小程序核心逻辑和相关信息合成为一个在主机上执行的小程序文件;
29.步骤c、网管服务器将所有小程序和小程序的执行逻辑文件合成一个插件,并将插件内容同步至所有主机的执行环境中;
30.步骤d、当用户在小程序界面上选择执行的运维小程序时,网管服务器向用户选择的所有主机发送小程序执行请求,主机上的代理装置从收到的小程序执行请求中提取用户选择执行的小程序名称和程序参数信息,然后执行主机上对应的小程序,并将小程序执行结果返回给网管服务器;
31.主机上的代理装置提供一个http的服务端,用于网管服务器对主机上的小程序的执行调用,从而实现分布式小程序管理和执行体系;
32.步骤e、网管服务器对所有主机返回的小程序执行结果进行处理。
33.本发明可以预置一些基础的运维小程序,例如:主机操作类,数据库操作类、以及业务的基础运维程序。除预置的小程序外,还可以支持用户通过小程序界面,灵活定制新的运维小程序。小程序的调用代码已经在功能中提前设计和封装,故用户在编辑界面中无需关注小程序的外部调用方法,仅需简单输入小程序的核心逻辑,即可完成代码的编辑。此种方式有效减少了用户对外部调用的关注,减轻了用户的开发成本。本发明支持lua、shell两种类型的小程序语法,即小程序的语法类型可以为lua或shell;同时支持基于小程序组合实现的积木式小程序。
34.当用户选择若干个小程序,并指定小程序相互之间的执行逻辑时,网管服务器还可以将用户选择的若干个小程序文件按照指定的执行逻辑合成一个小程序文件,从而形成一个复合型小程序,所述执行逻辑包括顺序、条件、循环。
35.当主机注册到网管服务器时,主机上的代理装置采集主机配置信息,配置信息可以包括有:主机ip、账户、主机名等,然后向网管服务器发起注册请求或心跳消息,网管服务器从收到的注册请求或心跳消息中,提取主机ip、账户、主机名等主机配置信息,并据此自动生成网络拓扑。nfv云化部署时,支持通过vnfm的c8接口获取主机的配置信息。网管服务器可以根据存储的主机配置信息,为主机自动设置标签。例如,可以按照业务、主机类型、主机作用等特性对主机进行分类和标示,从而设定不同的标签进行标识,这样,网管服务器可以根据存储的主机、标签、主机配置信息,实现自身对任一网元主机的路由,并通过向主机上的代理装置发送消息指令来实现网管服务器对网元的分布式管理。
36.网管服务器还可以根据主机vdu的性质,为每类vdu对应的所有主机设置一个相同的标签,当用户同时指定若干类vdu分别需要执行的小程序时,还包括有:
37.网管服务器分别查询每类vdu标签关联的所有主机,然后向每类vdu标签关联的所有主机发送小程序执行请求,所述小程序执行请求中包含有用户为该类vdu所指定执行的
小程序名称。这样,不同类的vdu可以指定执行不同的小程序,从而实现对整个网元不同vdu主机的网元级小程序执行。
38.图1步骤b可以进一步包括有:
39.网管服务器将用户编写的小程序核心逻辑和输入的程序名称、程序类型、程序参数合成一个小程序文件:设置小程序文件名为小程序信息中的程序名称,并根据程序类型选择自定义的代码结构,在用户编写的小程序核心逻辑上填补若干预先设置的代码,从而组合生成一个小程序文件,然后保存在预先设置的小程序文件目录下,小程序文件目录用于保存网管服务器上的所有小程序文件和小程序的执行逻辑文件,同时,修改小程序的执行逻辑文件,在其中添加小程序文件的调用接口。
40.本发明中的程序类型可以包括有lua或shell两种。网管服务器将所有的小程序文件和执行逻辑文件保存在小程序文件目录(例如:sl_xxx)下,小程序文件的后缀格式根据其语法也不同,shell脚本命名后缀为sh,文件内容为shell语法的小程序逻辑;lua代码命名后缀为.lua,文件内容为lua语法的小程序逻辑。
41.网管服务器可以在插件内容有更新时、或者定时将插件内容同步至所有主机的执行环境中。如图2所示,图1步骤c可以进一步包括有:
42.步骤c1、网管服务器将所有小程序和小程序的执行逻辑文件合成一个插件,然后计算插件的hash值,最后将插件名、hash值和插件内容写入数据库中;
43.步骤c2、网管服务器以http消息方式,向所有主机发送同步请求消息,所述同步请求消息中包括有插件名和hash值;
44.步骤c3、主机上的代理装置从同步请求消息中提取插件名和hash值,判断本地库中是否保存有相同名称的插件、且插件的hash值一致,如果是,则本流程结束;如果否,则向网管服务器发送请求同步插件消息,所述请求同步插件消息中包含有插件名;
45.步骤c4、网管服务器从数据库中提取请求同步插件消息中插件名对应的插件内容,并向主机返回应答消息;
46.步骤c5、主机上的代理装置收到网管服务器的应答消息,从应答消息中提取插件内容,然后将主机上的小程序更新成插件内容中的小程序文件内容,并在执行环境中加载插件内容中的小程序的执行逻辑文件。
47.图1步骤d中,网管服务器可以http消息方式,向用户选择的主机发送小程序执行请求,所述http消息中的url的ip是主机ip,端口为固定端口,url中是小程序的调用指令,消息体中携带有用户选择执行的小程序名称和程序参数列表。以下是一个小程序执行请求的示例:
[0048][0049][0050]
步骤e中,本发明还可以实现同类小程序执行结果的汇聚、以及异常结果的提示,其中:
[0051]
1、对所有小程序执行结果进行汇聚,图1步骤e可以进一步包括有:
[0052]
计算所有小程序运行结果的特征向量,并采用pca(即principal component analysis)主成分分析方法对每条特征向量进行降维,然后采用聚类算法dbscan对降维后的所有特征向量进行聚类,并根据聚类结果生成可视化报告。
[0053]
2、对每条小程序执行结果实现异常标注,本发明还包括有:
[0054]
计算多条历史小程序运行结果的特征向量,然后基于自编码神经网络来构建一个小程序ai分析模型,并以计算得到的多条历史小程序运行结果的特征向量为输入来进行自动编码学习,其中,自编码神经网络尝试学习的函数设置如下:x
′i=h
w,b
(xi),xi是第i条历史小程序运行结果的特征向量,h
w,b
表示所构建的自编码神经网络(即小程序ai分析模型),w、b表示所构建的自编码神经网络参数,x
′i是输入xi后网络的输出值,从而使得输出无比接近输入,同时,根据小程序ai分析模型在学习过程中的每次输出,计算每次学习的目标值:其中,m是输入的历史小程序运行结果的条数,最后从所有目标值中挑选出最小值,所挑选出的最小值是最优目标值threshold,
[0055]
这样,图1步骤e可以进一步包括有:
[0056]
网管服务器生成每条小程序执行结果对应的特征向量x
test
,并输入至小程序ai分析模型,从而获得对应的输出值x
′
test
,然后计算小程序结果诊断值:diff=(x
test-x
′
test
)
2-threshold,并据此判断执行结果是否正常:如果diff∈[-threshold,0],则表示执行结果正常;如果diff∈(0,+∞),则表示执行结果异常,继续计算异常可能值:percent=1-1/e
diff
,对异常结果进行标注、并显示异常可能值。
[0057]
本发明中的小程序执行结果可以是文本数据、类别数据或数值型数据,可以针对不同的数据类型,采用不同的构建特征函数来获得相应的特征向量。在计算多条历史小程序运行结果的特征向量时,可以进一步包括有:
[0058]
分别对每条历史小程序运行结果进行特征构建,从而获得一个包含有t个特征的特征向量,然后对所有历史小程序运行结果的特征向量进行归一化处理,并对归一化后的所有特征向量采用if算法(即isolation forest,孤立森林算法)进行异常结果粗检测剔除,粗检测后得到m条特征向量即是小程序ai分析模型的输入,t可以根据实际业务需要而设置。
[0059]
如图3所示,本发明一种基于小程序的运维操作系统,包括有网管服务器和多个主机,其中,网管服务器进一步包括有:
[0060]
小程序编辑装置,当用户在小程序界面上编写小程序核心逻辑,并输入程序名称、程序类型、程序参数信息后,将小程序核心逻辑和相关信息上传至小程序合成装置;
[0061]
小程序合成装置,将收到的小程序核心逻辑和相关信息合成为一个在主机上执行的小程序文件;
[0062]
小程序同步装置,将所有小程序和小程序的执行逻辑文件合成一个插件,并将插件内容同步至所有主机的执行环境中;
[0063]
小程序执行装置,当用户在小程序界面上选择执行的运维小程序时,向用户选择的所有主机发送小程序执行请求,并将主机返回的小程序执行结果转发给小程序结果处理装置进行处理;
[0064]
小程序结果处理装置,对所有主机返回的小程序执行结果进行处理,
[0065]
主机上进一步包括有:
[0066]
代理装置,从网管服务器发来的小程序执行请求中提取用户选择执行的小程序名称和程序参数信息,然后执行主机上对应的小程序,并将小程序执行结果返回给网管服务器。
[0067]
网管服务器的小程序编辑装置进一步包括有:
[0068]
小程序文件生成单元,将用户编写的小程序核心逻辑和输入的程序名称、程序类型、程序参数合成一个小程序文件:设置小程序文件名为小程序信息中的程序名称,并根据程序类型选择自定义的代码结构,在用户编写的小程序核心逻辑上填补若干预先设置的代码,从而组合生成一个小程序文件,然后保存在预先设置的小程序文件目录下,小程序文件目录用于保存网管服务器上的所有小程序文件和小程序的执行逻辑文件,同时,修改小程序的执行逻辑文件,在其中添加小程序文件的调用接口。
[0069]
当用户选择若干个小程序,并指定小程序相互之间的执行逻辑时,网管服务器的小程序合成装置还可以将用户选择的若干个小程序文件按照指定的执行逻辑合成一个小程序文件,从而形成一个复合型小程序,所述执行逻辑包括顺序、条件、循环。
[0070]
网管服务器可以根据主机vdu的性质,为每类vdu对应的所有主机设置一个相同的标签,当用户同时指定若干类vdu分别需要执行的小程序时,网管服务器的小程序执行装置分别查询每类vdu标签关联的所有主机,然后向每类vdu标签关联的所有主机发送小程序执行请求,所述小程序执行请求中包含有用户为该类vdu所指定执行的小程序名称。
[0071]
网管服务器可以在插件内容有更新时、或者定时将插件内容同步至所有主机的执行环境中。网管服务器的小程序同步装置进一步包括有:
[0072]
插件同步单元,将所有小程序和小程序的执行逻辑文件合成一个插件,计算插件的hash值,并将插件名、hash值和插件内容写入数据库中,然后以http消息方式,向所有主机发送同步请求消息,所述同步请求消息中包括有插件名和hash网管服务器的值;从主机发来的请求同步插件消息中提取插件名,然后从数据库中提取插件名对应的插件内容,并向主机返回应答消息,
[0073]
主机上的代理装置进一步包括有:
[0074]
主机插件同步单元,从网管服务器发来的同步请求消息中提取插件名和hash值,判断本地库中是否保存有相同名称的插件、且插件的hash值一致,如果否,则向网管服务器发送请求同步插件消息,所述请求同步插件消息中包含有插件名,然后从网管服务器返回的应答消息中提取插件内容,将主机上的小程序更新成插件内容中的小程序文件内容,并在执行环境中加载插件内容中的小程序的执行逻辑文件。
[0075]
本发明还可以进一步实现同类小程序执行结果的汇聚、以及异常结果的提示,其中:
[0076]
1、对所有小程序执行结果进行汇聚,网管服务器的小程序结果处理装置可以进一步包括有:
[0077]
汇聚单元,计算所有小程序运行结果的特征向量,并采用pca主成分分析方法对每条特征向量进行降维,然后采用聚类算法dbscan对降维后的所有特征向量进行聚类,并根据聚类结果生成可视化报告。
[0078]
2、对每条小程序执行结果实现异常标注,网管服务器的小程序结果处理装置可以包括有ai异常分析单元,所述ai异常分析单元进一步包括有:
[0079]
ai模型构建部件,计算多条历史小程序运行结果的特征向量,然后基于自编码神经网络来构建一个小程序ai分析模型,并以计算得到的多条历史小程序运行结果的特征向量为输入来进行自动编码学习,其中,自编码神经网络尝试学习的函数设置如下:x
′i=h
w,b
(xi),xi是第i条历史小程序运行结果的特征向量,h
w,b
表示所构建的自编码神经网络,w、b表示所构建的自编码神经网络参数,x
′i是输入xi后网络的输出值,从而使得输出无比接近输入,同时,根据小程序ai分析模型在学习过程中的每次输出,计算每次学习的目标值:其中,m是输入的历史小程序运行结果的条数,最后从所有目标值中挑选出最小值,所挑选出的最小值是最优目标值threshold;
[0080]
ai模型应用部件,当收到主机返回的每条小程序执行结果时,生成小程序执行结果对应的特征向量x
test
,并输入至小程序ai分析模型,从而获得对应的输出值x’test
,然后计算小程序结果诊断值:diff=(x
test-x
′
test
)
2-threshold,并据此判断执行结果是否正常:如果diff∈[-threshold,0],则表示执行结果正常;如果diff∈(0,+∞),则表示执行结果异
常,继续计算异常可能值:percent=1-1/e
diff
,对异常结果进行标注、并显示异常可能值。
[0081]
ai模型构建部件在计算多条历史小程序运行结果的特征向量时,先分别对每条历史小程序运行结果进行特征构建,从而获得一个包含有t个特征的特征向量,然后对所有历史小程序运行结果的特征向量进行归一化处理,并对归一化后的所有特征向量采用if算法进行异常结果粗检测剔除,粗检测后得到m条特征向量即是小程序ai分析模型的输入。
[0082]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。