程序部署任务执行方法、装置、计算机设备和存储介质与流程

专利2022-06-29  66


本申请涉及计算机程序部署技术领域,特别是涉及一种程序部署任务执行方法、装置、计算机设备和存储介质。



背景技术:

目前在服务器上部署程序时,可以通过运维人员人工进行程序部署,也可以定制自动部署脚本来进行程序部署。

由运维人员进行程序部署的方式虽然比较灵活、部署成功率高,但是程序部署的操作比较繁琐,人工部署的速度较慢,并且当需要部署的服务器和/或需要部署的程序数量较多时,要么需要安排更多运维人员来执行部署任务,要么需要投入更多的时间来执行部署任务,导致部署效率较低。

由定制的自动部署脚本来部署程序的速度比人工快很多,然而,目前自动部署脚本在部署程序时比较僵硬,如果在部署过程中有某个部署环节失败了(比如,因为网络问题超过响应时长而导致执行失败),无法像人工一样进行灵活调整而导致整个部署任务失败,这样就使得程序部署任务的部署成功率并不太高。



技术实现要素:

本发明针对现有技术的缺点,提供了一种程序部署任务执行方法、装置、计算机设备和存储介质,本发明实施例将程序部署任务划分为多个部署流程,降低程序部署任务的耦合度,这样即使部署过程中有某个部署流程出现问题也不会导致整个部署任务失败,提高程序部署任务的部署成功率。

本发明根据第一方面提供了一种程序部署任务执行方法,在一个实施例中,该方法包括:

响应于用户下发的程序部署指令,确定与程序部署指令关联的待部署任务;

获取待部署任务的部署任务描述数据;

对部署任务描述数据进行解析,得到解析结果,解析结果包括n个部署流程以及各个部署流程的运行顺序,n为正整数;

按照各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果;

根据n个部署流程的运行结果确定待部署任务的程序部署结果。

在一个实施例中,按照各个部署流程的运行顺序运行各个部署流程,包括:

按照各个部署流程的运行顺序运行每个部署流程后,获得该每个部署流程的运行结果;

判断该每个部署流程的运行结果是否为预设运行结果;

若该每个部署流程的运行结果不是预设运行结果,确定该每个部署流程对应的下一运行顺序的部署流程,运行下一运行顺序的部署流程。

在一个实施例中,还包括:

若该每个部署流程的运行结果为预设运行结果,确定待部署任务的程序部署结果为程序部署失败,停止运行下一运行顺序的部署流程。

在一个实施例中,按照各个部署流程的运行顺序运行各个部署流程,包括:

判断当前运行的部署流程对应的流程类型是否为自定义脚本类型;

若流程类型为自定义脚本类型,提取当前运行的部署流程中的执行脚本;

对执行脚本进行安全性检验,得到执行脚本的检验结果;

若检验结果为检验正常,继续运行当前运行的部署流程。

在一个实施例中,对执行脚本进行安全性检验,得到检验结果,包括:

对执行脚本进行语法词法分析,得到若干条脚本命令;

将各条脚本命令与预设命令库中的多条预设脚本命令进行匹配,得到各条脚本命令的匹配结果;

如果该若干条脚本命令中存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验异常;

如果该若干条脚本命令中不存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验正常。

在一个实施例中,还包括:

若检验结果为检验异常,确定当前运行的部署流程的运行结果为运行失败;

向预设告警名单上的所有告警目标用户发送预设告警信息;

根据执行脚本生成脚本检验异常审计日志,将检验异常审计日志存储到预设审计数据库。

在一个实施例中,根据n个部署流程的运行结果确定待部署任务的程序部署结果,包括:

确定n个部署流程中,运行结果为运行成功的部署流程的数量阈值,若数量阈值超过预设成功数量阈值,确定待部署任务的程序部署结果为程序部署成功;或,

确定待部署任务对应的核心部署流程标识,若n个部署流程中,与核心部署流程标识对应的部署流程的运行结果为运行成功,确定待部署任务的程序部署结果为程序部署成功。

本发明根据第二方面提供了一种程序部署任务执行装置,在一个实施例中,该装置包括:

任务确定模块,用于响应于用户下发的程序部署指令,确定与程序部署指令关联的待部署任务;

描述数据获取模块,用于获取待部署任务的部署任务描述数据;

描述数据解析模块,用于对部署任务描述数据进行解析,得到解析结果,解析结果包括n个部署流程以及各个部署流程的运行顺序,n为正整数;

部署流程运行模块,用于按照各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果;

部署结果确定模块,用于根据n个部署流程的运行结果确定待部署任务的程序部署结果。

本发明根据第三方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一方法的实施例的步骤。

本发明根据第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法的实施例的步骤。

在本发明实施例中,部署服务器响应于用户下发的程序部署指令,确定与程序部署指令关联的待部署任务;然后获取待部署任务的部署任务描述数据,并对部署任务描述数据进行解析以得到解析结果,其中,该解析结果包括n个部署流程以及各个部署流程的运行顺序;之后按照各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果;最后根据n个部署流程的运行结果确定待部署任务的程序部署结果,本实施例将程序部署任务划分为多个部署流程,降低程序部署任务的耦合度,这样即使部署过程中有某个部署流程出现问题也不会导致整个部署任务失败,提高程序部署任务的部署成功率。

附图说明

图1为一个实施例中一种程序部署任务执行方法的流程示意图;

图2为一个实施例中部署服务器运行各个部署流程的步骤的流程示意图;

图3为另一个实施例中部署服务器运行各个部署流程的步骤的流程示意图;

图4为一个实施例中一种程序部署任务执行装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。

如图1所示,是本发明一个实施例提供的一种程序部署任务执行方法,下面以该方法用于执行程序部署任务的部署服务器为例进行说明,其中,该部署服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。该方法包括以下步骤:

s110:响应于用户下发的程序部署指令,确定与程序部署指令关联的待部署任务。

在本实施例中,当用户(比如,运维人员、服务器管理人员、开发人员等等)想要向某个服务器(也可以是某些服务器)部署某个程序(也可以是某些程序),即待部署程序时,可以向部署服务器下发程序部署指令,部署服务器响应于该程序部署指令自动执行程序部署任务。

当然,用户想要部署该待部署程序,需要在下发程序部署指令前配置好该待部署程序对应的程序部署任务。需要说明的,开发人员预先对各种类型程序的程序部署过程进行总结,得到多个大类程序部署过程,将各类程序部署过程划分为多个相对独立的部署流程,并预先编写各个部署流程以及多个不同类型的部署任务配置模板,这些部署流程和部署任务配置模板可以存储在数据库中。用户可以访问部署服务器提供的web页面,通过该web页面来进行程序部署任务的配置。具体地,用户在该web页面选择相应的部署任务配置模板,该部署任务配置模板由多个部署流程构成,用户配置完各个部署流程的配置项即可完成程序部署任务的配置。

不同的部署流程有不同的作用,比如,有的部署流程用于执行用户配置的普通脚本、有的部署流程用于对接需要部署该待部署程序的待部署服务器,比如本地服务器、线上服务器、线上云平台(比如,阿里云、企业内部私有云)等、有的部署流程用于从内网或公网下载待部署程序。

s120:获取待部署任务的部署任务描述数据。

在本实施例中,部署服务器确定了程序部署指令关联的待部署任务后,获取该待部署任务的部署任务描述数据。具体地,部署服务器会获取该待部署任务对应的用户配置数据和部署任务配置模板元数据,然后将用户配置数据和部署任务配置模板元数据进行组装,得到待部署任务的部署任务描述数据。

其中,当用户在web页面上配置好各个部署流程的配置项后,部署服务器会将用户为各个配置项配置的相关信息记录到数据库中,用户配置数据即是指用户在web页面上为各个配置项配置的相关信息,比如,待部署任务对应的任务标识、待部署程序标识、待部署服务器标识等。

s130:对部署任务描述数据进行解析,得到解析结果,解析结果包括n个部署流程以及各个部署流程的运行顺序,n为正整数。

在本实施例中,部署服务器获得部署任务描述数据后,使用解析器对部署任务描述数据进行解析,解析得到的解析结果包括n个部署流程以及各个部署流程的运行顺序。

其中,不同的部署流程可以同属于一个运行顺序,比如,解析结果得到4个部署流程,分别是流程a、流程b、流程c和流程d,其中,流程a的运行顺序为第一顺序、流程b和流程c的运行顺序都为第二顺序,流程d的运行顺序为第三顺序,那么在运行时,部署服务器先运行属于第一运行顺序的流程a,运行完流程a后,再同时运行或者说并行属于第二顺序的运行流程b和流程c,当流程b和流程c都运行完之后,再运行第三顺序的流程d。

可以理解的,在某些部署流程中,包含有若干个部署步骤,此时,各个部署步骤也有对应的运行顺序,并且不同的部署步骤也可以同属于一个运行顺序。

s140:按照各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果。

s150:根据n个部署流程的运行结果确定待部署任务的程序部署结果。

在本实施例中,部署服务器按照运行顺序来运行各个部署流程,从而得到各个部署流程的运行结果。然后根据得到的部署流程来确定出待部署任务的程序部署结果。由于各个部署流程相对独立,因此在部署流程中,即使n个部署流程中存在部分没能运行成功的部署流程,但也不需要停止整个部署流程,可以等运行完所有部署流程后,根据各个部署流程的运行结果来确定本次指定的待部署任务的程序部署结果。

在一个实施方式中,部署服务器根据n个部署流程的运行结果确定待部署任务的程序部署结果的步骤,具体包括:

确定n个部署流程中,运行结果为运行成功的部署流程的数量阈值,若数量阈值超过预设成功数量阈值,确定待部署任务的程序部署结果为程序部署成功;或,

确定待部署任务对应的核心部署流程标识,若n个部署流程中,与核心部署流程标识对应的部署流程的运行结果为运行成功,确定待部署任务的程序部署结果为程序部署成功。

在本实施方式中,运行结果包括运行成功和运行失败。

在一个应用场景中,部署服务器确定待部署任务的程序部署结果的方式为:先确定待部署任务的所有部署流程中,运行结果为运行成功的部署流程的数量阈值,假如该数量阈值超过预设成功数量阈值,那么就确定待部署任务的程序部署结果为程序部署成功;反之,假如该数量阈值不超过预设成功数量阈值,那么就确定待部署任务的程序部署结果为程序部署失败。

在另一应用场景中,由于部署流程相互独立,用户在配置程序部署任务时可以配置若干个核心的部署流程,该核心的部署流程运行成功即可满足用户基本的部署需求,还可以再在该核心的部署流程基础上部署多一些非核心的部署流程,该非核心的部署流程即使运行失败,用户还可以后续再重新部署。因此,在本应用场景中,部署服务器确定待部署任务的程序部署结果的方式为:先确定待部署任务对应的核心部署流程标识,可以理解的,核心部署流程标识是指核心部署流程对应的唯一标识。核心部署流程是指在本次待部署任务中必须运行成功的部署流程。需要说明的是,该核心部署流程标识包括1个或多个核心流程标识(在不同场景中核心流程标识的数量可以不同),每个核心流程标识对应一个部署流程,也就是说核心部署流程标识对应1个或多个部署流程。假如核心部署流程标识对应的所有部署流程的运行结果都是运行成功,那么就确定待部署任务的程序部署结果为程序部署成功;反之,假如核心部署流程标识对应的所有部署流程中,存在任意一个部署流程的运行结果是运行失败,那么就确定待部署任务的程序部署结果为程序部署失败。

进一步地,用户可以配置多个属于同一运行顺序的同一类部署流程,这样只要这并行的多个部署流程中任意一个部署流程运行成功那么就确定该类部署流程运行成功,从而可以提高程序部署的成功率。

本发明实施例将程序部署任务划分为多个部署流程,降低程序部署任务的耦合度,这样即使部署过程中有某个部署流程出现问题也不会导致整个部署任务失败,提高程序部署任务的部署成功率。

在一个实施例中,如图2所示,部署服务器按照各个部署流程的运行顺序运行各个部署流程的步骤,具体包括:

s210:按照各个部署流程的运行顺序运行每个部署流程后,获得该每个部署流程的运行结果。

s220:判断该每个部署流程的运行结果是否为预设运行结果。

s230:若该每个部署流程的运行结果不是预设运行结果,确定该每个部署流程对应的下一运行顺序的部署流程,运行下一运行顺序的部署流程。

在本实施例中,考虑到在程序部署过程中,有可能出现一些比较严重的问题,比如,因为部署流程的脚本本身存在的在开发时遗留下来的问题而导致部署流程的运行进度卡住,如果继续等待执行很有可能会长时间占用计算资源,影响其他程序部署任务的执行。因此,部署服务器在运行每个(即任意一个)部署流程时,周期性地获取当前正在运行的这个部署流程(可以理解的,如果一个运行顺序对应x(正整数)个部署流程,那么当前正在运行的部署流程也是x个)的运行信息,包括运行时产生的运行日志数据、运行时长、运行状态(包括运行完成或运行中)等信息,然后根据该部署流程的运行信息来确定该部署流程的运行结果。

在一个实施方式中,部署流程的运行结果包括运行成功、运行失败、运行异常。其中,如果确定部署流程的运行信息中的运行状态为运行完成,确定部署流程的运行结果为运行成功。如果确定部署流程的运行信息中的运行状态为运行中,则确定该部署流程的运行信息中的运行时长阈值,若该运行时长阈值不超过该部署流程对应的预设运行时长阈值,则确定部署流程的运行结果为运行失败;若该运行时长阈值超过该部署流程对应的预设运行时长阈值,则确定部署流程的运行结果为运行异常。

该预设运行结果为运行异常。部署服务器会在确定部署流程的运行结果后,判断部署流程的运行结果是否为运行异常,如果确定部署流程的运行结果为运行成功或运行失败,那么就确定该部署流程对应的下一运行顺序的部署流程,并运行下一运行顺序的部署流程;如果确定部署流程的运行结果为运行异常,那么确定待部署任务的程序部署结果为程序部署失败,停止运行下一运行顺序的部署流程,即不再继续执行剩余的未运行的部署流程。

在一个实施例中,如图3所示,部署服务器按照各个部署流程的运行顺序运行各个部署流程的步骤,具体包括:

s310:判断当前运行的部署流程对应的流程类型是否为自定义脚本类型。

s320:若流程类型为自定义脚本类型,提取当前运行的部署流程中的执行脚本。

s330:对执行脚本进行安全性检验,得到执行脚本的检验结果。

s340:若检验结果为检验正常,继续运行当前运行的部署流程。

在本实施例中,一些部署流程可能需要执行一些用户编写的脚本,为了保证待部署服务器的安全,需要对用户自行编写的脚本进行安全性检验,确保自定义脚本没有包含危险的命令。具体地,部署服务器在运行每个部署流程时,确定目前运行的部署流程的流程类型,如果当前运行的部署流程对应的流程类型是自定义脚本类型,那么从当前运行的部署流程中提取出执行脚本(即前述的用户自行编写的脚本),并对该执行脚本进行安全性检验。如果确定检验结果为检验正常,那么部署服务器会继续运行当前运行的部署流程;如果确定检验结果为检验异常,那么部署服务器会确定当前运行的部署流程的运行结果为运行失败,然后向预设告警名单上的所有告警目标用户发送预设告警信息,并根据执行脚本生成脚本检验异常审计日志,将检验异常审计日志存储到预设审计数据库。其中,该脚本检验异常审计日志可以包括执行脚本的运行时间、运行的所有脚本命令和限制脚本命令、待部署任务标识、部署流程标识、指示部署待部署任务的用户及其ip地址等信息,从而根据该检验异常审计日志能够快速确定具体情况。

其中,部署服务器对执行脚本进行安全性检验的步骤,得到检验结果,具体包括:

对执行脚本进行语法词法分析,得到若干条脚本命令;

将各条脚本命令与预设命令库中的多条预设脚本命令进行匹配,得到各条脚本命令的匹配结果;

如果若干条脚本命令中存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验异常;

如果若干条脚本命令中不存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验正常。

在一个应用场景中,该执行脚本属于linux命令(linux是支持多用户、多任务、支持多线程和多cpu的操作系统)。对该执行脚本进行语法词法分析,可以得到若干条脚本命令,然后将各条脚本命令与预设命令库中的多条预设脚本命令进行匹配,得到各条脚本命令的匹配结果。需要说明的是,在不同场景中,预设命令库中包含的预设脚本命令的类型不同,比如,如果部署服务器只允许用户执行预设好的安全脚本命令且该预设好的安全脚本命令数量较少,那么该预设命令库中的预设脚本命令可以是指允许用户执行的安全脚本命令,或者,允许用户执行的安全脚本命令数量很多,而不允许用户执行的限制脚本命令的数量较少,那么该预设命令库中的预设脚本命令可以是指不允许用户执行的限制脚本命令。

假如部署流程对应的若干条脚本命令中存在一条限制脚本命令,那么就确定执行脚本的检验结果为检验异常;假如部署流程对应的若干条脚本命令都是安全脚本命令,那么就确定执行脚本的检验结果为检验正常。

在一个实施例中,如图4所示,提供了一种程序部署任务执行装置,包括以下模块:

任务确定模块110,用于响应于用户下发的程序部署指令,确定与程序部署指令关联的待部署任务;

描述数据获取模块120,用于获取待部署任务的部署任务描述数据;

描述数据解析模块130,用于对部署任务描述数据进行解析,得到解析结果,解析结果包括n个部署流程以及各个部署流程的运行顺序,n为正整数;

部署流程运行模块140,用于按照各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果;

部署结果确定模块150,用于根据n个部署流程的运行结果确定待部署任务的程序部署结果。

在一个实施例中,该部署流程运行模块,包括:

运行结果获得子模块,用于按照各个部署流程的运行顺序运行每个部署流程后,获得该每个部署流程的运行结果;

运行结果判断子模块,用于判断该每个部署流程的运行结果是否为预设运行结果;

第一部署流程运行子模块,用于当该每个部署流程的运行结果不是预设运行结果,确定该每个部署流程对应的下一运行顺序的部署流程,运行下一运行顺序的部署流程。

在一个实施例中,该部署流程运行模块,还包括:

部署结果确定子模块,用于当该每个部署流程的运行结果为预设运行结果,确定待部署任务的程序部署结果为程序部署失败,停止运行下一运行顺序的部署流程。

在一个实施例中,该部署流程运行模块,包括:

流程类型判断子模块,用于判断当前运行的部署流程对应的流程类型是否为自定义脚本类型;

执行脚本提取子模块,用于当流程类型为自定义脚本类型,提取当前运行的部署流程中的执行脚本;

脚本检验子模块,用于对执行脚本进行安全性检验,得到执行脚本的检验结果;

第一部署流程运行子模块,用于当检验结果为检验正常,继续运行当前运行的部署流程。

在一个实施例中,该脚本检验子模块,包括:

脚本命令获得单元,用于对执行脚本进行语法词法分析,得到若干条脚本命令;

脚本命令匹配单元,用于将各条脚本命令与预设命令库中的多条预设脚本命令进行匹配,得到各条脚本命令的匹配结果;

检验结果确定单元,用于当若干条脚本命令中存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验异常;当若干条脚本命令中不存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验正常。

在一个实施例中,该部署流程运行模块还包括:第二部署流程运行子模块;

第二部署流程运行子模块,包括:

运行结果确定单元,用于当检验结果为检验异常,确定当前运行的部署流程的运行结果为运行失败;

告警信息发送单元,用于向预设告警名单上的所有告警目标用户发送预设告警信息;

审计日志生成单元,用于根据执行脚本生成脚本检验异常审计日志,将检验异常审计日志存储到预设审计数据库。

在一个实施例中,该部署结果确定模块,还用于确定n个部署流程中,运行结果为运行成功的部署流程的数量阈值,若数量阈值超过预设成功数量阈值,确定待部署任务的程序部署结果为程序部署成功;或,还用于确定待部署任务对应的核心部署流程标识,若n个部署流程中,与核心部署流程标识对应的部署流程的运行结果为运行成功,确定待部署任务的程序部署结果为程序部署成功。

关于程序部署任务执行装置的具体限定可以参见上文中对于程序部署任务执行方法的限定,在此不再赘述。上述程序部署任务执行装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储用户配置数据、部署任务配置模板等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种程序部署任务执行方法。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:

响应于用户下发的程序部署指令,确定与程序部署指令关联的待部署任务;获取待部署任务的部署任务描述数据;对部署任务描述数据进行解析,得到解析结果,解析结果包括n个部署流程以及各个部署流程的运行顺序,n为正整数;按照各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果;根据n个部署流程的运行结果确定待部署任务的程序部署结果。

在一个实施例中,处理器执行计算机程序,实现按照各个部署流程的运行顺序运行各个部署流程时,还实现以下步骤:

按照各个部署流程的运行顺序运行每个部署流程后,获得该每个部署流程的运行结果;判断该每个部署流程的运行结果是否为预设运行结果;若该每个部署流程的运行结果不是预设运行结果,确定该每个部署流程对应的下一运行顺序的部署流程,运行下一运行顺序的部署流程。

在一个实施例中,处理器执行计算机程序,还实现以下步骤:

若该每个部署流程的运行结果为预设运行结果,确定待部署任务的程序部署结果为程序部署失败,停止运行下一运行顺序的部署流程。

在一个实施例中,处理器执行计算机程序,实现按照各个部署流程的运行顺序运行各个部署流程时,还实现以下步骤:

判断当前运行的部署流程对应的流程类型是否为自定义脚本类型;若流程类型为自定义脚本类型,提取当前运行的部署流程中的执行脚本;对执行脚本进行安全性检验,得到执行脚本的检验结果;若检验结果为检验正常,继续运行当前运行的部署流程。

在一个实施例中,处理器执行计算机程序,实现对执行脚本进行安全性检验,得到检验结果时,还实现以下步骤:

对执行脚本进行语法词法分析,得到若干条脚本命令;将各条脚本命令与预设命令库中的多条预设脚本命令进行匹配,得到各条脚本命令的匹配结果;若若干条脚本命令中存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验异常;若若干条脚本命令中不存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验正常。

在一个实施例中,处理器执行计算机程序,还实现以下步骤:

若检验结果为检验异常,确定当前运行的部署流程的运行结果为运行失败;向预设告警名单上的所有告警目标用户发送预设告警信息;根据执行脚本生成脚本检验异常审计日志,将检验异常审计日志存储到预设审计数据库。

在一个实施例中,处理器执行计算机程序时,实现根据n个部署流程的运行结果确定待部署任务的程序部署结果还实现以下步骤:

确定n个部署流程中,运行结果为运行成功的部署流程的数量阈值,若数量阈值超过预设成功数量阈值,确定待部署任务的程序部署结果为程序部署成功;或,确定待部署任务对应的核心部署流程标识,若n个部署流程中,与核心部署流程标识对应的部署流程的运行结果为运行成功,确定待部署任务的程序部署结果为程序部署成功。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

响应于用户下发的程序部署指令,确定与程序部署指令关联的待部署任务;获取待部署任务的部署任务描述数据;对部署任务描述数据进行解析,得到解析结果,解析结果包括n个部署流程以及各个部署流程的运行顺序,n为正整数;按照各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果;根据n个部署流程的运行结果确定待部署任务的程序部署结果。

在一个实施例中,计算机程序被处理器执行,按照各个部署流程的运行顺序运行各个部署流程时,还实现以下步骤:

按照各个部署流程的运行顺序运行每个部署流程后,获得该每个部署流程的运行结果;判断该每个部署流程的运行结果是否为预设运行结果;若该每个部署流程的运行结果不是预设运行结果,确定该每个部署流程对应的下一运行顺序的部署流程,运行下一运行顺序的部署流程。

在一个实施例中,计算机程序被处理器执行,还实现以下步骤:

若该每个部署流程的运行结果为预设运行结果,确定待部署任务的程序部署结果为程序部署失败,停止运行下一运行顺序的部署流程。

在一个实施例中,计算机程序被处理器执行,按照各个部署流程的运行顺序运行各个部署流程时,还实现以下步骤:

判断当前运行的部署流程对应的流程类型是否为自定义脚本类型;若流程类型为自定义脚本类型,提取当前运行的部署流程中的执行脚本;对执行脚本进行安全性检验,得到执行脚本的检验结果;若检验结果为检验正常,继续运行当前运行的部署流程。

在一个实施例中,计算机程序被处理器执行,对执行脚本进行安全性检验,得到检验结果时,还实现以下步骤:

对执行脚本进行语法词法分析,得到若干条脚本命令;将各条脚本命令与预设命令库中的多条预设脚本命令进行匹配,得到各条脚本命令的匹配结果;若若干条脚本命令中存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验异常;若若干条脚本命令中不存在任意一条脚本命令的匹配结果为预设匹配结果,确定执行脚本的检验结果为检验正常。

在一个实施例中,计算机程序被处理器执行,还实现以下步骤:

若检验结果为检验异常,确定当前运行的部署流程的运行结果为运行失败;向预设告警名单上的所有告警目标用户发送预设告警信息;根据执行脚本生成脚本检验异常审计日志,将检验异常审计日志存储到预设审计数据库。

在一个实施例中,计算机程序被处理器执行时,根据n个部署流程的运行结果确定待部署任务的程序部署结果还实现以下步骤:

确定n个部署流程中,运行结果为运行成功的部署流程的数量阈值,若数量阈值超过预设成功数量阈值,确定待部署任务的程序部署结果为程序部署成功;或,确定待部署任务对应的核心部署流程标识,若n个部署流程中,与核心部署流程标识对应的部署流程的运行结果为运行成功,确定待部署任务的程序部署结果为程序部署成功。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。


技术特征:

1.一种程序部署任务执行方法,其特征在于,包括:

响应于用户下发的程序部署指令,确定与所述程序部署指令关联的待部署任务;

获取所述待部署任务的部署任务描述数据;

对所述部署任务描述数据进行解析,得到解析结果,所述解析结果包括n个部署流程以及各个部署流程的运行顺序,n为正整数;

按照所述各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果;

根据所述n个部署流程的运行结果确定所述待部署任务的程序部署结果。

2.如权利要求1所述的程序部署任务执行方法,其特征在于,

所述按照所述各个部署流程的运行顺序运行所述各个部署流程,包括:

按照所述各个部署流程的运行顺序运行每个部署流程后,获得所述每个部署流程的运行结果;

判断所述每个部署流程的运行结果是否为预设运行结果;

若所述每个部署流程的运行结果不是预设运行结果,确定所述每个部署流程对应的下一运行顺序的部署流程,运行所述下一运行顺序的部署流程。

3.如权利要求2所述的程序部署任务执行方法,其特征在于,还包括:

若所述每个部署流程的运行结果为预设运行结果,确定所述待部署任务的程序部署结果为程序部署失败,停止运行所述下一运行顺序的部署流程。

4.如权利要求1所述的程序部署任务执行方法,其特征在于,

所述按照所述各个部署流程的运行顺序运行各个部署流程,包括:

判断当前运行的部署流程对应的流程类型是否为自定义脚本类型;

若所述流程类型为自定义脚本类型,提取所述当前运行的部署流程中的执行脚本;

对所述执行脚本进行安全性检验,得到所述执行脚本的检验结果;

若所述检验结果为检验正常,继续运行所述当前运行的部署流程。

5.如权利要求4所述的程序部署任务执行方法,其特征在于,

所述对所述执行脚本进行安全性检验,得到检验结果,包括:

对所述执行脚本进行语法词法分析,得到若干条脚本命令;

将各条脚本命令与预设命令库中的多条预设脚本命令进行匹配,得到所述各条脚本命令的匹配结果;

若所述若干条脚本命令中存在任意一条脚本命令的匹配结果为预设匹配结果,确定所述执行脚本的检验结果为检验异常;

若所述若干条脚本命令中不存在任意一条脚本命令的匹配结果为预设匹配结果,确定所述执行脚本的检验结果为检验正常。

6.如权利要求4所述的程序部署任务执行方法,其特征在于,还包括:

若所述检验结果为检验异常,确定所述当前运行的部署流程的运行结果为运行失败;

向预设告警名单上的所有告警目标用户发送预设告警信息;

根据所述执行脚本生成脚本检验异常审计日志,将所述检验异常审计日志存储到预设审计数据库。

7.如权利要求1所述的程序部署任务执行方法,其特征在于,

所述根据所述n个部署流程的运行结果确定所述待部署任务的程序部署结果,包括:

确定所述n个部署流程中,运行结果为运行成功的部署流程的数量阈值,若所述数量阈值超过预设成功数量阈值,确定所述待部署任务的程序部署结果为程序部署成功;或,

确定所述待部署任务对应的核心部署流程标识,若所述n个部署流程中,与所述核心部署流程标识对应的部署流程的运行结果为运行成功,确定所述待部署任务的程序部署结果为程序部署成功。

8.一种程序部署任务执行装置,其特征在于,包括:

任务确定模块,用于响应于用户下发的程序部署指令,确定与所述程序部署指令关联的待部署任务;

描述数据获取模块,用于获取所述待部署任务的部署任务描述数据;

描述数据解析模块,用于对所述部署任务描述数据进行解析,得到解析结果,所述解析结果包括n个部署流程以及各个部署流程的运行顺序,n为正整数;

部署流程运行模块,用于按照所述各个部署流程的运行顺序运行各个部署流程,得到n个部署流程的运行结果;

部署结果确定模块,用于根据所述n个部署流程的运行结果确定所述待部署任务的程序部署结果。

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结
本申请涉及计算机程序部署技术领域,具体涉及一种程序部署任务执行方法、装置、计算机设备和存储介质。方法包括:响应于用户下发的程序部署指令,确定与程序部署指令关联的待部署任务;获取待部署任务的部署任务描述数据;对部署任务描述数据进行解析,得到解析结果,解析结果包括N个部署流程以及各个部署流程的运行顺序,N为正整数;按照各个部署流程的运行顺序运行各个部署流程,得到N个部署流程的运行结果;根据N个部署流程的运行结果确定待部署任务的程序部署结果。本实施例能够实现降低程序部署任务的耦合度,使得部署过程中即使有某个部署流程出现问题也不会导致整个部署任务失败,提高程序部署任务的部署成功率。

技术研发人员:刘舟;李奕臻;朱育华
受保护的技术使用者:广州极晟网络技术有限公司
技术研发日:2020.01.14
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-29434.html

最新回复(0)