一种基于云环境的应用同步方法、发布主机和生产主机与流程

文档序号:11250681阅读:229来源:国知局
一种基于云环境的应用同步方法、发布主机和生产主机与流程

本发明涉及数据传输领域,特别涉及一种基于云环境的应用同步方法、发布主机和生产主机。



背景技术:

基于互联网背景和电信运营商等方面的需求,每个系统均向着大数据和云化方向发展,而由于生产主机的增多,代码的上传和应用重启工作也成倍的增加,同时为了保证上线成功率,还需要耗费大量时间和精力对上传的代码进行检查,因此极大地增加了程序员的工作量。



技术实现要素:

本发明旨在至少解决上述技术问题之一。

为此,本发明的一个目的在于提出一种基于云环境的应用同步方法,该应用同步方法能够保证代码上传的准确度和上传效率,减少代码上传和应用重启过程中人为的干预,保证上线成功率。

本发明的另一个目的在于提供一种发布主机和生产主机。

为了实现上述目的,本发明的一个实施例提出了一种基于云环境的应用同步方法,应用于发布主机,包括以下步骤:

步骤1,获取预先设定的编译命令和配置文件,并从配置文件中提取生产主机列表;

步骤2,采用第一预设脚本获取已测试完成的源代码,并采用所述编译命令将所述源代码编译成至少一个可执行文件的上线代码;

步骤3,根据所述配置文件的内容将至少一个上线代码发布到生产主机列表中对应的生产主机;

步骤4,获取生产主机返回的上线代码同步完成指令,并判断所有的上线代码是否均发布到对应的生产主机,若是,则结束同步过程,若否,则返回至步骤3。

根据本发明实施例的一种基于云环境的应用同步方法,可以将上线代码同时发布到几个生产主机,同时代码发布过程自动进行,无需人为干预,提高了代码发布结果的准确率和代码发布的效率,也减少了程序员的工作量。

另外,根据本发明上述实施例的一种基于云环境的应用同步方法还可以具有如下附加的技术特征:

在一些示例中,所述配置文件包括生产主机ip信息、生产主机类型信息和上线时间。

在一些示例中,所述步骤3具体为:按照配置文件中的生产主机类型信息和生产主机ip信息获取所述上线代码分别对应的生产主机,然后在所述上线时间,将所述上线代码发布到对应的生产主机。

在一些示例中,所述步骤3中,采用sshpass工具连接对应的生产主机后,将所述上线代码发布到所述生产主机。

本发明第二方面的实施例还提出了一种基于云环境的应用同步方法,应用于生产主机,包括以下步骤:

步骤11,采用第二预设脚本获取上线代码;

步骤12,备份当前可执行文件对应的原始代码后,采用所述上线代码覆盖所述原始代码;

步骤13,重启所述可执行文件,验证所述可执行文件的功能,并生成包含验证结果的第一验证日志;

步骤14,向所述发布主机返回上线代码同步完成指令。

根据本发明实施例的一种基于云环境的应用同步方法,生产主机可以自动获取所述上线代码,同时在采用上线代码对原始代码覆盖完成后,自动对可执行文件的功能进行验证,并生成包括验证结果的日志,程序员读取对应的日志即可了解上线代码是否正确,实现过程简单、可用性强。

另外,根据本发明上述实施例的一种基于云环境的应用同步方法还可以具有如下附加的技术特征:

在一些示例中,所述步骤12和步骤13之间还包括代码校验步骤,具体为:获取覆盖过程结束后的当前代码,比较当前代码和所述上线代码是否一致,并生成包含比较结果的第二验证日志。

本发明第三方面的实施例还提出了一种发布主机,包括:

第一获取模块,用于获取预先设定的编译命令和配置文件,并从配置文件中提取生产主机列表;

编译模块,用于采用第一预设脚本获取已测试完成的源代码,并采用所述编译命令将所述源代码编译成至少一个可执行文件的上线代码;

发布模块,用于根据所述配置文件的内容将至少一个上线代码发布到生产主机列表中对应的生产主机;

判断模块,用于获取生产主机返回的上线代码同步完成指令,并判断所有的上线代码是否均发布到对应的生产主机,若是,则结束同步过程,若否,则驱动发布模块。

在一些示例中,所述发布模块具体用于按照配置文件中的生产主机类型信息和生产主机ip信息获取所述上线代码分别对应的生产主机,然后在上线时间,将上线代码发布到对应的生产主机。

本发明第四方面的实施例还提出了一种生产主机,包括:

第二获取模块,用于采用第二预设脚本获取所述上线代码;

代码覆盖模块,用于备选当前可执行文件对应的原始代码后,采用所述上线代码覆盖所述原始代码;

第一验证模块,用于在生产主机上重启所述可执行文件,验证所述可执行文件的功能,并生成包含验证结果的第一验证日志;

指令发送模块,用于向所述发布主机返回上线代码同步完成指令。

在一些示例中,还包括第二验证模块,所述第二验证模块用于获取覆盖过程结束后的当前代码,比较当前代码和所述上线代码是否一致,并生成包含比较结果的第二验证日志。

本发明第四方面的实施例还提出了一种基于云环境下的应用同步系统,包括以上所述的发布主机和生产主机。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为实施例1提供的一种应用于发布主机的基于云环境的应用同步方法的流程示意图;

图2为实施例2提供的一种应用于生产主机的基于云环境的应用同步方法的流程示意图;

图3为实施例3一种基于云环境下的应用同步系统的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

以下结合附图描述根据本发明实施例的一种基于云环境的应用同步方法、发布主机和生产主机。

图1为实施例1一种基于云环境的应用同步方法的流程示意图,应用于发布主机,如图1所示,所述应用同步方法包括以下步骤:

步骤1,获取预先设定的编译命令和配置文件,并从配置文件中提取生产主机列表;

步骤2,采用第一预设脚本获取已测试完成的源代码,并采用所述编译命令将所述源代码编译成至少一个可执行文件的上线代码;

步骤3,根据所述配置文件的内容将至少一个上线代码发布到生产主机列表中对应的生产主机;

步骤4,获取生产主机返回的上线代码同步完成指令,并判断所有的上线代码是否均发布到对应的生产主机,若是,则结束同步过程,若否,则返回至步骤3。

本发明实施例可以将上线代码同时发布到几个生产主机,同时代码发布过程自动进行,无需人为干预,提高了代码发布结果的准确率和代码发布的效率,也减少了程序员的工作量。

优选实施例中,所述配置文件包括生产主机ip信息、生产主机类型信息和上线时间,步骤3中首先采用sshpass工具连接对应的生产主机后,按照配置文件中的生产主机类型信息和生产主机ip信息获取所述上线代码分别对应的生产主机,然后在所述上线时间,将所述上线代码发布到对应的生产主机,通过上述方法即可自动将上线代码分别发布到不同的生产主机,进一步提高了上线代码同步的效率。

图2为实施例2一种基于云环境的应用同步方法的流程示意图,应用于生产主机,如图2所示,所述应用同步方法包括以下步骤:

步骤11,采用第二预设脚本获取上线代码;

步骤12,备份当前可执行文件对应的原始代码后,采用所述上线代码覆盖所述原始代码;

步骤13,在生产主机上重启所述可执行文件,验证所述可执行文件的功能,并生成包含验证结果的第一验证日志;

步骤14,向所述发布主机返回上线代码同步完成指令。

根据本发明实施例的一种基于云环境的应用同步方法,生产主机可以自动获取所述上线代码,同时在采用上线代码对原始代码覆盖完成后,自动对可执行文件的功能进行验证,并生成包括验证结果的日志,程序员读取对应的日志即可了解上线代码是否正确,当上线代码不能实现可执行文件的对应功能时,对测试代码进行修改,整个实现过程简单、可用性强。同时,由于对当前可执行文件对应的原始代码进行了备份,在有需要时,还可以对可执行文件的代码进行回滚,保证了生产主机上可执行文件的可用性。

在优选实施例中,所述步骤12和步骤13之间还包括代码校验步骤,具体为:获取覆盖过程结束后的当前代码,比较当前代码和所述上线代码是否一致,并生成包含比较结果的第二验证日志。本优选实施例,通过设置代码校验步骤,可自动校验代码上线前后的区别,进一步保证代码上传的准确性。

图3为实施例3一种基于云环境下的应用同步系统的结构示意图,包括发布主机和生产主机,通过所述基于云环境下的应用同步系统,可以将上线代码同时发布到几个生产主机,同时代码发布过程自动进行,无需人为干预,提高了代码发布结果的准确率和代码发布的效率,也减少了程序员的工作量。如图3所示,所述发布主机包括:

第一获取模块,用于获取预先设定的编译命令和配置文件,并从配置文件中提取生产主机列表;

编译模块,用于采用第一预设脚本获取已测试完成的源代码,并采用所述编译命令将所述源代码编译成至少一个可执行文件的上线代码;

发布模块,用于根据所述配置文件的内容将至少一个上线代码发布到生产主机列表中对应的生产主机;

判断模块,用于获取生产主机返回的上线代码同步完成指令,并判断所有的上线代码是否均发布到对应的生产主机,若是,则结束同步过程,若否,则驱动发布模块。

在优选实施例中,所述配置文件包括生产主机ip信息、生产主机类型信息和上线时间,所述发布模块具体用于采用sshpass工具连接对应的生产主机后,按照配置文件中的生产主机类型信息和生产主机ip信息获取所述上线代码分别对应的生产主机,然后在所述上线时间,将所述上线代码发布到对应的生产主机。上述优选实施例可以自动将上线代码分别发布到不同的生产主机,进一步提高了上线代码同步的效率。

如图3所示,所述生产主机包括:

第二获取模块,用于采用第二预设脚本获取所述上线代码;

代码覆盖模块,用于备选当前可执行文件对应的原始代码后,采用所述上线代码覆盖所述原始代码;

第一验证模块,用于在生产主机上重启所述可执行文件,验证所述可执行文件的功能,并生成包含验证结果的第一验证日志;

指令发送模块,用于向所述发布主机返回上线代码同步完成指令。

上述实施例中,生产主机可以自动获取所述上线代码,同时在采用上线代码对原始代码覆盖完成后,自动对可执行文件的功能进行验证,并生成包括验证结果的日志,程序员读取对应的日志即可了解上线代码是否正确,实现过程简单、可用性强。

优选的实施例中,所述生产主机还包括第二验证模块,所述第二验证模块用于获取覆盖过程结束后的当前代码,比较当前代码和所述上线代码是否一致,并生成包含比较结果的第二验证日志。该优选实施例通过设置第二验证模块,可自动校验代码上线前后的区别,进一步保证代码上传的准确性。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

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