一种任务发布方法和任务发布系统与流程

文档序号:16207460发布日期:2018-12-08 07:17阅读:365来源:国知局
一种任务发布方法和任务发布系统与流程

本发明涉及计算机技术领域,尤其涉及一种任务发布方法和任务发布系统。

背景技术

随着互联网技术的发展,在不同的业务场景下需要发布的内容也呈现多样化。在很多不同的业务场景下都有不同的发布的方式和过程,目前没有一款开源或者非开源的能满足所有业务系统的规范发布场景。

以现有技术中文件发布为例,常见的发布方式都是用户先上传待发布的文件,然后直接通过安全外壳协议(secureshell,ssh)通道或者代理(agent)客户端通道完成文本发布。目前的发布系统都是按照前述的文件发布流程进行发布,其他的版本管理、配置管理等功能只是在这个基础上进行稍作修改。对于存在定制需求的业务场景,如串行业务发布的场景下,需要发布人员频繁的手动操作,存在发布效率低的问题。举例说明,在串行业务发布的场景下,会有多达十多个模块的串行执行,这种模式会让这个业务发布的执行比较繁琐,且需要人为值守,因此需要花费较多时间才能完成一次发布任务。

综上可知,从目前的发布系统来看,至少都存在如下问题:不同业务场景的发布流程无法通用,不同发布场景的业务需求需要重新开发。另外复杂场景的发布过程繁琐,发布效率低下。



技术实现要素:

本发明实施例提供了一种任务发布方法和任务发布系统,适用于多种业务场景下的发布流程,并且复杂场景具有通用性,提高发布效率。

为解决上述技术问题,本发明实施例提供以下技术方案:

第一方面,本发明实施例提供一种任务发布方法,包括:

根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,所述功能模块池中存储有多个基础功能模块;

根据所述用户配置的发布流程对所述第一基础功能模块和所述第二基础功能模块进行模块重组,从而生成目标发布场景;

将所述目标发布场景发送给发布管控机器,由所述发布管控机器按照所述发布流程在第一目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

结合本申请的第一方面,在本申请的第一方面的第一种可能的实现方式中,所述根据所述用户配置的发布流程对所述第一基础功能模块和所述第二基础功能模块进行模块重组,从而生成目标发布场景之后,所述方法还包括:

对所述目标发布场景进行重组测试,若所述目标发布场景测试成功后,触发执行如下步骤:将所述目标发布场景发送给发布管控机器,若所述目标发布场景测试失败后,重新执行如下步骤:根据用户提供的任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块。

结合本申请的第一方面,在本申请的第一方面的第二种可能的实现方式中,所述将所述目标发布场景发送给发布管控机器之后,所述方法还包括:

判断所述第一目标机器的执行结果是否达到验收条件;

若所述执行结果达到所述验收条件,触发所述发布管控机器按照所述发布流程在第二目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

结合本申请的第一方面的第二种可能的实现方式,在本申请的第一方面的第三种可能的实现方式中,所述方法还包括:

若所述执行结果达到所述验收条件,将所述目标发布场景保存到自定义发布场景池中。

结合本申请的第一方面的第三种可能的实现方式,在本申请的第一方面的第四种可能的实现方式中,所述方法还包括:

根据所述用户提供的第二任务信息从自定义发布场景池中选择出自定义发布场景;

将所述自定义发布场景发送给发布管控机器,由所述发布管控机器在第三目标机器上执行所述自定义发布场景中设置的基础功能模块。

结合本申请的第一方面,在本申请的第一方面的第五种可能的实现方式中,所述将所述目标发布场景发送给发布管控机器,包括:

将所述目标发布场景通过灰度发布的方式发送给所述发布管控机器。

结合本申请的第一方面或第一方面的第一种可能或第二种可能或第三种可能或第四种可能或第五种可能的实现方式,在本申请的第一方面的第六种可能的实现方式中,所述方法还包括:

获取所述用户提供的自定义基础功能模块;

将所述自定义基础功能模块保存到所述功能模块池中。

第二方面,本发明实施例还提供一种任务发布系统,包括:

选择模块,用于根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,所述功能模块池中存储有多个基础功能模块;

发布场景生成模块,用于根据所述用户配置的发布流程对所述第一基础功能模块和所述第二基础功能模块进行模块重组,从而生成目标发布场景;

发布模块,用于将所述目标发布场景发送给发布管控机器,由所述发布管控机器按照所述发布流程在第一目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

结合本申请的第二方面,在本申请的第二方面的第一种可能的实现方式中,所述任务发布系统还包括:测试模块,用于所述发布场景生成模块根据所述用户配置的发布流程对所述第一基础功能模块和所述第二基础功能模块进行模块重组,从而生成目标发布场景之后,对所述目标发布场景进行重组测试,若所述目标发布场景测试成功后,触发执行所述发布模块,若所述目标发布场景测试失败后,重新执行所述选择模块。

结合本申请的第二方面,在本申请的第二方面的第二种可能的实现方式中,所述任务发布系统还包括:验收模块,其中,

所述验收模块,还用于所述发布模块将所述目标发布场景发送给发布管控机器之后,判断所述第一目标机器的执行结果是否达到验收条件;

所述发布模块,还用于若所述执行结果达到所述验收条件,触发所述发布管控机器按照所述发布流程在第二目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

结合本申请的第二方面的第二种可能的实现方式,在本申请的第二方面的第三种可能的实现方式中,所述任务发布系统还包括:发布场景存储模块,用于若所述执行结果达到所述验收条件,将所述目标发布场景保存到自定义发布场景池中。

结合本申请的第二方面,在本申请的第二方面的第四种可能的实现方式中,所述发布模块,具体用于将所述目标发布场景通过灰度发布的方式发送给所述第一目标机器。

结合本申请的第二方面,在本申请的第二方面的第五种可能的实现方式中,所述发布场景生成模块,还用于根据所述用户提供的第二任务信息从自定义发布场景池中选择出自定义发布场景;

所述发布模块,还用于将所述自定义发布场景发送给发布管控机器,由所述发布管控机器在第三目标机器上执行所述自定义发布场景中设置的基础功能模块。

结合本申请的第二方面,在本申请的第二方面的第六种可能的实现方式中,所述任务发布系统还包括:

获取模块,用于获取所述用户提供的自定义基础功能模块;

保存模块,用于将所述自定义基础功能模块保存到所述功能模块池中。

结合本申请的第二方面,在本申请的第二方面的第七种可能的实现方式中,所述任务发布系统还包括:验收模块,其中,

所述验收模块,还用于所述发布模块将所述目标发布场景发送给发布管控机器之后,判断所述第一目标机器的执行结果是否达到验收条件;

所述发布模块,还用于若所述执行结果达到所述验收条件,触发所述发布管控机器按照所述发布流程在第二目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

本申请的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

从以上技术方案可以看出,本发明实施例具有以下优点:

在本发明实施例中,首先根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,功能模块池中存储有多个基础功能模块,然后根据用户配置的发布流程对第一基础功能模块和第二基础功能模块进行模块重组,从而生成目标发布场景,最后将目标发布场景发送给发布管控机器,由发布管控机器按照发布流程在第一目标机器上依次执行第一基础功能模块和第二基础功能模块。本发明实施例中无论哪种业务场景都会用到基础功能模块,本发明实施例提供的功能模块池中存储有多个基础功能模块,当用户提供第一任务信息时可以从该功能模块池中选择出所需要的多个基础功能模块,然后通过这些基础功能模块的组合就可以创建出目标发布场景,而可以实现不同发布流程对不同业务场景的需求,所创建的目标发布场景也适用于当前的第一任务信息,不需要用户手动操作。并且对于复杂场景也可以通过功能模块池中的多个基础功能模块进行组合来实现,因此对于复杂场景具有通用性,从而可以提高发布效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种任务发布方法的流程方框示意图;

图2为本发明实施例中任务发布过程的一种应用场景示意图;

图3为本发明实施例中任务发布过程的另一种应用场景示意图;

图4-a为本发明实施例提供的一种任务发布系统的组成结构示意图;

图4-b为本发明实施例提供的另一种任务发布系统的组成结构示意图;

图4-c为本发明实施例提供的另一种任务发布系统的组成结构示意图;

图4-d为本发明实施例提供的另一种任务发布系统的组成结构示意图;

图4-e为本发明实施例提供的另一种任务发布系统的组成结构示意图;

图5为本发明实施例提供的任务发布方法应用于服务器的组成结构示意图。

具体实施方式

本发明实施例提供了一种任务发布方法和任务发布系统,适用于多种业务场景下的发布流程,并且复杂场景具有通用性,提高发布效率。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

以下分别进行详细说明。

本发明任务发布方法的一个实施例,具体可以应用于向目标机器发布任务,请参阅图1所示,本发明一个实施例提供的任务发布方法,可以包括如下步骤:

101、根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,功能模块池中存储有多个基础功能模块。

在本发明实施例中,功能模块池是发布系统预先存储的基础功能模块的集合,功能模块池可以由发布系统实时维护,功能模块池中加入有多种基础功能模块。其中,基础功能模块是用于单独执行特定功能的模块,例如文件传输、命令执行、脚本传输、功能测试、定时任务等都是独立的基础功能模块,这些基础功能模块预先存储在功能模块池中,任务发布系统可以实时访问功能模块池以获取当前任务所需要的基础功能模块。

本发明实施例中,用户可以通过客户端向发布系统提供多种任务信息,该任务信息表示用户需要发布的任务要求以及发布流程的要求。举例说明,用户通过客户端向发布系统发送第一任务信息,发布系统接收该用户提供的第一任务信息,发布系统根据该第一任务信息的任务要求查询功能模块池,从该功能模块池中查找满足第一任务信息的多个基础功能模块,为便于描述,将从功能模块池中选择出的基础功能模块定义为“第一基础功能模块”和“第二基础功能模块”,其中,第一基础功能模块和第二基础功能模块是功能模块池中用于执行不同特定功能的两类基础功能模块,例如第一基础功能模块可以是文件传输模块,第二基础功能模块可以是命令执行模块。本发明实施例中根据第一任务信息可以从功能模块池中选择出多个基础功能模块,例如还可以选择出第三基础功能模块,多个基础功能模块的处理方法与后续实施例中的举例说明相类似,接下来以选择出的多个基础功能模块为第一基础功能模块和第二基础功能模块进行示例说明。

需要说明的是,本发明实施例中功能模块池存储的多个基础功能模块可以涵盖发布系统对于多种类型的任务发布所需要使用的各类型基础功能模块,本发明实施例中每个基础功能模块可以单独执行特定的功能,基础功能模块是发布系统底层执行的原子操作功能体,发布系统可以具体场景来灵活配置功能模块池。

在本发明的一些实施例中,本发明实施例提供的任务发布方法,还包括如下步骤:

a1、获取用户提供的自定义基础功能模块;

a2、将自定义基础功能模块保存到功能模块池中。

其中,本发明实施例中发布系统实时维护功能模块池,例如用户还可以根据自己的需求,自定义一些基础功能模块,例如,该自定义基础功能模块可以包括文件传输协议(filetransferprotocol,ftp)上传功能模块等,发布系统获取到用户通过客户端上传的自定义基础功能模块之后,发布系统将自定义基础功能模块保存到功能模块池中,因此在功能模块池中还可以存储有自定义基础功能模块,该自定义基础功能模块也可以由发布系统选择后用于发布场景的动态生成。本发明实施例中功能模块池存储的自定义基础功能模块可以满足用户对特定功能的需求,从而扩展了基础功能模块的应用场景。

102、根据用户配置的发布流程对第一基础功能模块和第二基础功能模块进行模块重组,从而生成目标发布场景。

在本发明实施例中,发布系统从功能模块池中选择出第一基础功能模块和第二基础功能模块之后,发布系统可以按照用户配置的发布流程对第一基础功能模块和第二基础功能模块进行模块重组,其中模块重组是按照用户配置的发布流程对多个基础功能模块进行组合使用,例如是需要先执行文件传输模块再执行命令执行模块,还是需要先执行命令执行模块再执行功能测试模块,这些需要根据发布流程进行多个基础功能模块的重新组合。在完成对第一基础功能模块和第二基础功能模块进行模块重组之后,输出生成的目标发布场景,该目标发布场景中包括了按照发布流程对第一基础功能模块和第二基础功能模块的重组结果,该目标发布场景是根据从功能模块池中选择出的多个基础功能模块进行重组后得到的发布场景,通过该目标发布场景可以确定出多个基础功能模块之间的执行流程和执行内容。

在本发明的一些实施例中,步骤102根据用户配置的发布流程对第一基础功能模块和第二基础功能模块进行模块重组,从而生成目标发布场景之后,本发明实施例提供的任务发布方法,还可以包括如下步骤:

b1、对目标发布场景进行重组测试,若目标发布场景测试成功后,触发执行后续步骤103:将目标发布场景发送给发布管控机器,若目标发布场景测试失败后,重新执行前述步骤101:根据用户提供的任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块。

本发明实施例中为了避免系统异常,在生成目标发布场景之后,还需要执行步骤b1的测试过程,只有测试成功之后才能执行后续步骤103,否则就需要再次执行步骤101,即需要重新从功能模块池中选择多个基础功能模块。其中,发布系统所执行的重组测试需要根据具体场景来确定测试的内容和测试方式,此处不做限定。

103、将目标发布场景发送给发布管控机器,由发布管控机器按照发布流程在第一目标机器上依次执行第一基础功能模块和第二基础功能模块。

在本发明实施例中,发布系统生成目标发布场景之后,发布系统再将该目标发布场景发送给发布管控机器,该目标发布场景是根据从功能模块池中选择出的多个基础功能模块进行重组后得到的发布场景,通过该目标发布场景可以确定出多个基础功能模块之间的执行流程和执行内容。发布系统与发布管控机器之间建立有通信连接,发布系统通过该发布管控机器实现目标发布场景在目标机器上的执行。其中,第一目标机器是发布管控机器的操作对象,例如发布管控机器可以使用ssh或客户端的方式完成对第一目标机器的操作。发布管控机器在第一目标机器上依次执行第一基础功能模块和第二基础功能模块。其中,第一目标机器是需要执行任务的所有目标机器中的一个或一些目标机器。

在本发明的一些实施例中,步骤103将目标发布场景发送给发布管控机器之后,本发明实施例提供的方法还包括如下步骤:

c1、判断第一目标机器的执行结果是否达到验收条件;

c2、若执行结果达到验收条件,触发发布管控机器按照发布流程在第二目标机器上依次执行第一基础功能模块和第二基础功能模块。

其中,发布系统向发布管控机器发送目标发布场景之后,发布系统可以获取到发布管控机器在第一目标机器上的执行结果,通过该执行结果确定是否符合验收条件的要求,该验收条件可以是用户自定义的,因为不同发布场景发布后验证的方式都不一样,本发明实施例中可以支持用户自定义验收,例如验收需要返回ok,如果返回ok代表验收通过,否则表示验收失败。若执行结果达到验收条件,说明步骤102中生成的目标发布场景可以完成任务发布,接下来由发布管控机器按照发布流程在第二目标机器上依次执行第一基础功能模块和第二基础功能模块,其中第一目标机器和第二目标机器是不同的机器,第二目标机器上也可以执行第一基础功能模块和第二基础功能模块,从而实现目标发布场景的复用,提高发布效率。

进一步的,在本发明的一些实施例中,在前述执行步骤c1和c2的实现场景下,本发明实施例提供的任务发布方法还可以执行如下步骤:

d1、若执行结果达到验收条件,将目标发布场景保存到自定义发布场景池中。

其中,对于用户常用的发布场景,发布系统还可以设置自定义发布场景池,将步骤102中创建好的目标发布场景保存到自定义发布场景池中,自定义发布场景池是发布系统维护的发布场景的集合,该自定义发布场景池中保存有一些发布场景,这些发布场景可以作为发布模板直接分配给目标机器使用。

在本发明的一些实施例中,在前述执行步骤d1的实现场景下,本发明实施例提供的任务发布方法还可以执行如下步骤:

e1、根据用户提供的第二任务信息从自定义发布场景池中选择出自定义发布场景;

e2、将自定义发布场景发送给发布管控机器,由发布管控机器在第三目标机器上执行自定义发布场景中设置的基础功能模块。

其中,用户可以通过客户端向发布系统提供多种任务信息,该任务信息表示用户需要发布的任务要求以及发布流程的要求。举例说明,用户通过客户端向发布系统发送第二任务信息,发布系统接收该用户提供的第二任务信息,发布系统根据该第二任务信息的任务要求查询自定义发布场景池,从该功能模块池中查找满足第二任务信息的自定义发布场景,查找到自定义发布场景之后,可以将自定义发布场景发送给发布管控机器上,不需要再次执行步骤101和步骤102进行模块重组,因此具有更高的发布效率。

在本发明的一些实施例中,步骤103将目标发布场景发送给发布管控机器,包括:

f1、将目标发布场景通过灰度发布的方式发送给发布管控机器。

其中,灰度发布的范围是用户可以自定义的,相当于预发布,灰度线上的环境可控,从可以将异常影响降低到最小。灰度发布相对于正常发布会有很多限制,例如灰度数量,灰度校验。

在本发明的一些实施例中,在前述执行步骤f1的实现场景下,本发明实施例提供的任务发布方法还可以执行如下步骤:

g1、将目标发布场景通过灰度发布的方式发送给发布管控机器之后,判断第一目标机器的执行结果是否达到验收条件;

g2、若执行结果达到验收条件,由发布管控机器按照发布流程在所有的目标机器上依次执行第一基础功能模块和第二基础功能模块。

其中,发布系统向发布管控机器进行灰度发布之后,发布系统可以从第一目标机器获取到执行结果,通过该执行结果确定是否符合验收条件的要求,该验收条件可以是用户自定义的,因为不同发布场景发布后验证的方式都不一样,本发明实施例中可以支持用户自定义验收。若执行结果达到验收条件,说明步骤102中生成的目标发布场景可以完成任务发布,接下来再将该目标发布场景触发发布管控机器进行全量发布,从而发布管控机器可以在所有的目标机器上执行目标发布场景所设置的第一基础功能模块和第二基础功能模块。举例说明,工作人员为了方便,灰度后不验证结果,直接就全量灰度,容易导致系统异常。本发明实施例中发布系统为一个发布流程创建了一个发布流程限制,中间必须有验证通过才能进行全量发布,该目标发布场景通过全量发布的方式触发发布管控机器可以在所有的目标机器上执行目标发布场景所设置的第一基础功能模块和第二基础功能模块,因此具有很高的发布效率。

需要说明的是,若用户需要批量发布到多个目标机器上,可以由发布管控机批量按照发布流程对目标机器进行操作。所有的模块重组后就实现了业务需要发布场景的发布逻辑,这个发布逻辑是先在发布管控机器上去生成,然后由发布管控机器按照这个发布逻辑去对所有的目标机器进行批量执行操作,从而具有很高的发布效率。

通过以上实施例对本发明实施例的描述可知,在本发明实施例中,首先根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,功能模块池中存储有多个基础功能模块,然后根据用户配置的发布流程对第一基础功能模块和第二基础功能模块进行模块重组,从而生成目标发布场景,最后将目标发布场景发送给发布管控机器,由发布管控机器按照发布流程在第一目标机器上依次执行第一基础功能模块和第二基础功能模块。本发明实施例中无论哪种业务场景都会用到基础功能模块,本发明实施例提供的功能模块池中存储有多个基础功能模块,当用户提供第一任务信息时可以从该功能模块池中选择出所需要的多个基础功能模块,然后通过这些基础功能模块的组合就可以创建出目标发布场景,而可以实现不同发布流程对不同业务场景的需求,所创建的目标发布场景也适用于当前的第一任务信息,不需要用户手动操作。并且对于复杂场景也可以通过功能模块池中的多个基础功能模块进行组合来实现,因此对于复杂场景具有通用性,从而可以提高发布效率。

为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。

请参阅图2,为本发明实施例中任务发布过程的一种应用场景示意图。本发明实施例中发布系统维护功能模块池,该功能模块池中存储有多个基础功能模块,发布系统具有完善的基础功能模块,例如文件传输、命令执行、脚本传输、定时任务、功能测试等单独的功能模块,此外用户还可以根据自己的需求,自定义一些基础功能模块,例如ftp上传功能模块等。

发布系统接收到用户提供的任务信息之后,从功能模块池中查找到基础功能模块,然后进行模块重组。其中模块重组指用户可以根据已有的基础功能模块进行组合使用,例如在图2中是一个串行的业务场景重组,举例说明,从功能模块池中选择出文件传输模块、命令执行模块、功能测试模块和用户自定义模块,根据发布流程进行如下的模块重组:文件传输模块—命令执行模块—功能测试模块—文件传输模块—命令执行模块—功能测试模块—用户自定义模块。举例说明如下:发布文件file1到module1目标机器,在目标机器上对比文件file1的消息摘要算法第五版(messagedigestalgorithm5,md5),若不同则备份替换,然后进行服务重启,其中,备份替换是指将原文件进行备份,例如版本号备份为file2017v1。在发布后,等待5分钟观察系统中的模块module1,模块module1正常后,再对module2机器进行file2发布,file2发布后,对module2机器进行服务重启和观察。

本发明实施例中,在目标发布场景发布给目标机器之前,还可以通过重组测试来硬性限制是否发布。其中任何的基础功能模块都可以按照用户的发布流程进行拖拽组合,按照用户需要的流程方式进行拼组成目标发布场景。例如工作人员为了方便,灰度后不验证结果,直接就全量灰度,导致系统异常。硬性限制发布就为发布流程创建一个发布流程限制,中间必须有验证通过才能进行全量发,重要的业务流程组合需要由多个人讨论制定是否发布给机器。

在本发明的一些实施例中,发布系统还可以进行用户重组保存,对于复杂的场景,需要使用复杂的发布流程,这里用户频繁使用的发布场景,是可以保存用户之前重组的来重复使用的,发布场景很多,简单举例如下,用户1需要对1000台机器进行文件发布,首先需要对200台进行文件发布和命令执行,然后观察执行结果达到验收条件后,再一次对另外800台进行400分组发布,这种业务的场景,就可以将组合的模块保留下来,后期一直使用这种发布场景,从而提高发布效率。

请参阅图3所示,为本发明实施例中任务发布过程的另一种应用场景示意图。具体的运作流程如下,本发明实施例中通过自定义式的发布,不仅能通用所有发布场景,也可以完成部分自动化测试的功能。功能模块池中包括:文件传输、命令执行、定时任务、功能测试、用户知会、ftp下载、操作回滚等基础功能模块,发布系统维护有功能模块池以及自定义发布场景池。这里举例一个xx业务的发布场景。场景需求如下:首先用户需要从ftp服务器(server)下载发布文件。文件下载成功后,就发送给灰度测试的目标机器上。在发布完成后,进行命令执行和功能测试,如果测试成功则全量发布,测试失败则回滚停止,其中,回滚停止是指发布过程中将失败的机器进行回滚,其他的机器正常发布,这个场景是单个发布不影响整体,如果影响整体,可以自定义回滚模块,进行暂停所有发布,进行回滚。在灰度测试完成后,通知业务相关所有用户,将所有的目标机器进行分组,制定进行定时任务式发布。

本发明实施例中所有的发布场景都会用到常见的基础功能模块的功能,发布场景通用的各种基础功能模块都会保存在功能模块池中,功能模块池中的多个基础功能模块是否可以组合使用,主要看用户的场景是否需要,只要需要就可以组合到一起。另外用户也可以自定义一些基础功能模块,然后通过这些基础功能模块就可以组合成任意发布场景所需要的流程,达到满足所有发布场景了。本发明实施例中通过一次开发后就可以通用所有的发布场景。本发明实施例案能帮助测试完成部分测试场景,能够有效提高复杂发布场景的效率。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。

请参阅图4-a所示,本发明实施例提供的一种任务发布系统400,可以包括:选择模块401、发布场景生成模块402和发布模块403,其中,

选择模块401,用于根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,所述功能模块池中存储有多个基础功能模块;

发布场景生成模块402,用于根据所述用户配置的发布流程对所述第一基础功能模块和所述第二基础功能模块进行模块重组,从而生成目标发布场景;

发布模块403,用于将所述目标发布场景发送给发布管控机器,由所述发布管控机器按照所述发布流程在第一目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

在本发明的一些实施例中,请参阅图4-b所示,所述任务发布系统400还包括:测试模块404,用于所述发布场景生成模块402根据所述用户配置的发布流程对所述第一基础功能模块和所述第二基础功能模块进行模块重组,从而生成目标发布场景之后,对所述目标发布场景进行重组测试,若所述目标发布场景测试成功后,触发执行所述发布模块403,若所述目标发布场景测试失败后,重新执行所述选择模块401。

在本发明的一些实施例中,请参阅图4-c所示,相对于图4-a所示,所述任务发布系统400还包括:验收模块405,其中,

所述验收模块405,还用于所述发布模块403将所述目标发布场景发送给发布管控机器之后,判断所述第一目标机器的执行结果是否达到验收条件;

所述发布模块403,还用于若所述执行结果达到所述验收条件,触发所述发布管控机器按照所述发布流程在第二目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

在本发明的一些实施例中,请参阅图4-d所示,相对于图4-c所示,所述任务发布系统400还包括:发布场景存储模块406,用于若所述执行结果达到所述验收条件,将所述目标发布场景保存到自定义发布场景池中。

在本发明的一些实施例中,所述发布场景生成模块,还用于根据所述用户提供的第二任务信息从自定义发布场景池中选择出自定义发布场景;

所述发布模块,还用于将所述自定义发布场景发送给发布管控机器,由所述发布管控机器在第三目标机器上执行所述自定义发布场景中设置的基础功能模块。

在本发明的一些实施例中,所述发布模块,具体用于将所述目标发布场景通过灰度发布的方式发送给所述第一目标机器。

在本发明的一些实施例中,请参阅图4-c所示,所述任务发布系统400还包括:验收模块405,其中,

所述验收模块405,用于所述发布模块403将所述目标发布场景通过灰度发布的方式发送给所述第一目标机器之后,判断所述第一目标机器的执行结果是否达到验收条件;

所述发布模块403,还用于若所述执行结果达到所述验收条件,触发所述发布管控机器按照所述发布流程在所有的目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

在本发明的一些实施例中,请参阅图4-e所示,所述任务发布系统400还包括:

获取模块507,用于获取所述用户提供的自定义基础功能模块;

保存模块508,用于将所述自定义基础功能模块保存到所述功能模块池中。

通过以上对本发明实施例的描述可知,在本发明实施例中,首先根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,功能模块池中存储有多个基础功能模块,然后根据用户配置的发布流程对第一基础功能模块和第二基础功能模块进行模块重组,从而生成目标发布场景,最后将目标发布场景发送给发布管控机器,由发布管控机器按照发布流程在第一目标机器上依次执行第一基础功能模块和第二基础功能模块。本发明实施例中无论哪种业务场景都会用到基础功能模块,本发明实施例提供的功能模块池中存储有多个基础功能模块,当用户提供第一任务信息时可以从该功能模块池中选择出所需要的多个基础功能模块,然后通过这些基础功能模块的组合就可以创建出目标发布场景,而可以实现不同发布流程对不同业务场景的需求,所创建的目标发布场景也适用于当前的第一任务信息,不需要用户手动操作。并且对于复杂场景也可以通过功能模块池中的多个基础功能模块进行组合来实现,因此对于复杂场景具有通用性,从而可以提高发布效率。

图5是本发明实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。

服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述实施例中由服务器所执行的任务发布方法步骤可以基于该图5所示的服务器结构。具体的,本发明实施例提供的cpu1122,用于执行如下步骤:

根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,所述功能模块池中存储有多个基础功能模块;

根据所述用户配置的发布流程对所述第一基础功能模块和所述第二基础功能模块进行模块重组,从而生成目标发布场景;

将所述目标发布场景发送给发布管控机器,由所述发布管控机器按照所述发布流程在第一目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

在本发明的一些实施例中,cpu1122,还用于执行如下步骤:

根据所述用户配置的发布流程对所述第一基础功能模块和所述第二基础功能模块进行模块重组,从而生成目标发布场景之后,对所述目标发布场景进行重组测试,若所述目标发布场景测试成功后,触发执行如下步骤:将所述目标发布场景发送给发布管控机器,若所述目标发布场景测试失败后,重新执行如下步骤:根据用户提供的任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块。

在本发明的一些实施例中,cpu1122,还用于执行如下步骤:

将所述目标发布场景发送给发布管控机器之后,判断所述第一目标机器的执行结果是否达到验收条件;若所述执行结果达到所述验收条件,触发所述发布管控机器按照所述发布流程在第二目标机器上依次执行所述第一基础功能模块和所述第二基础功能模块。

在本发明的一些实施例中,cpu1122,还用于执行如下步骤:

若所述执行结果达到所述验收条件,将所述目标发布场景保存到自定义发布场景池中。

在本发明的一些实施例中,cpu1122,还用于执行如下步骤:

根据所述用户提供的第二任务信息从自定义发布场景池中选择出自定义发布场景;将所述自定义发布场景发送给发布管控机器,由所述发布管控机器在第三目标机器上执行所述自定义发布场景中设置的基础功能模块。

在本发明的一些实施例中,cpu1122,具体用于执行如下步骤:

将所述目标发布场景通过灰度发布的方式发送给所述发布管控机器。

在本发明的一些实施例中,cpu1122,还用于执行如下步骤:

获取所述用户提供的自定义基础功能模块;将所述自定义基础功能模块保存到所述功能模块池中。

在本发明的一些实施例中,cpu1122,还用于执行如下步骤:

将目标发布场景通过灰度发布的方式发送给发布管控机器之后,判断第一目标机器的执行结果是否达到验收条件;

若执行结果达到验收条件,由发布管控机器按照发布流程在所有的目标机器上依次执行第一基础功能模块和第二基础功能模块。

通过以上实施例对本发明实施例的描述可知,在本发明实施例中,首先根据用户提供的第一任务信息从功能模块池中选择出第一基础功能模块和第二基础功能模块,功能模块池中存储有多个基础功能模块,然后根据用户配置的发布流程对第一基础功能模块和第二基础功能模块进行模块重组,从而生成目标发布场景,最后将目标发布场景发送给发布管控机器,由发布管控机器按照发布流程在第一目标机器上依次执行第一基础功能模块和第二基础功能模块。本发明实施例中无论哪种业务场景都会用到基础功能模块,本发明实施例提供的功能模块池中存储有多个基础功能模块,当用户提供第一任务信息时可以从该功能模块池中选择出所需要的多个基础功能模块,然后通过这些基础功能模块的组合就可以创建出目标发布场景,而可以实现不同发布流程对不同业务场景的需求,所创建的目标发布场景也适用于当前的第一任务信息,不需要用户手动操作。并且对于复杂场景也可以通过功能模块池中的多个基础功能模块进行组合来实现,因此对于复杂场景具有通用性,从而可以提高发布效率。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1