本发明涉及计算机自动化技术领域,尤其涉及一种基于分布式系统的版本自动部署方法及系统。
背景技术:
银行支付系统包括大额系统(hvps)、小额系统(beps)、网银(ibps)、轧差系统(nets)和账户清算系统(saps)等业务系统,每个业务系统根据业务需求的应用变更,开发人员都需将应用程序在研发环境中进行编译验证后,生成应用程序的部署版本,并编写对应业务系统的安装手册,由安装人员按照应用程序安装手册分步执行,应用程序的部署版本安装过程中每一步骤的执行结果均需由开发中心和安装人员进行反复的人工确认,完成应用程序的实施部署工作。
而随着银行业务的增加,各业务系统的应用程序的部署版本增多,导致安装人员的工作量增大,提高了人力成本,并降低了应用程序部署的工作效率。
因此,如何降低人力成本,提高工作效率是当前急需解决的技术问题。
技术实现要素:
为了解决现有技术中的缺陷,本发明提供了一种基于分布式系统的版本自动部署方法及系统,通过批量调度文件及节点脚本对分布式系统的版本自动部署(包括程序升级和程序回滚),具有节约人力成本、提高作业效率降低操作失误风险的有益效果。
为了实现上述目的,本发明提供的一种基于分布式系统的版本自动部署方法,包括:
获取应用程序版本配置文件、批量调度文件及初始信息;所述批量调度文件包括:各作业节点号、各作业节点状态及各节点脚本名称;
根据所述初始信息及所述应用程序版本配置文件对所述批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本;
根据各所述作业节点状态依次执行各作业节点号对应的节点脚本并反馈各所述节点脚本的执行结果。
本发明还提供的一种基于分布式系统的版本自动部署系统,包括:
获取单元,用于获取应用程序版本配置文件、批量调度文件及初始信息;所述批量调度文件包括:各作业节点号、各作业节点状态及各节点脚本名称;
初始化单元,用于根据所述初始信息及所述应用程序版本配置文件对所述批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本;
执行单元,用于根据各所述作业节点状态依次执行各作业节点号对应的节点脚本并反馈各所述节点脚本的执行结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于分布式系统的版本自动部署方法的步骤。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的基于分布式系统的版本自动部署方法的步骤。
本发明提供的一种基于分布式系统的版本自动部署方法及系统,包括:获取应用程序版本配置文件、批量调度文件及初始信息;所述批量调度文件包括:各作业节点号、各作业节点状态及各节点脚本名称;根据所述初始信息及所述应用程序版本配置文件对所述批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本;根据多个所述作业节点号的作业节点状态,迭代执行多个作业节点号分别对应的节点脚本进行版本部署。本申请通过批量调度文件及节点脚本对分布式系统的版本自动部署(包括程序升级和程序回滚),具有节约人力成本、提高作业效率降低操作失误风险的有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一种基于分布式系统的版本自动部署方法流程图;
图2是本申请一实施例中的基于分布式系统的版本自动部署方法流程图;
图3是本申请一实施例中的步骤s203的迭代流程图;
图4是是本申请的一种基于分布式系统的版本自动部署系统的结构示意图;
图5是本申请一实施例中的初始化单元的结构示意图;
图6是本申请一实施例中的基于分布式系统的版本自动部署的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部组合。
针对现有技术中存在的缺陷,本发明提供的一种基于分布式系统的版本自动部署方法,其流程图如图1所示,该方法包括:
s101:获取应用程序版本配置文件、批量调度文件及初始信息。其中,批量调度文件包括:各作业节点号、各作业节点状态、各节点脚本名称、开始时间、结束时间、执行结果等,本发明不以此为限。
s102:根据初始信息及应用程序版本配置文件对批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本。
s103:根据多个作业节点号的作业节点状态,迭代执行多个作业节点号分别对应的节点脚本进行版本部署。
由图1所示的流程可知,本申请根据获取的初始信息及应用程序版本配置文件对获取的批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本;根据多个作业节点号的作业节点状态,迭代执行多个作业节点号分别对应的节点脚本进行版本部署。本申请通过批量调度文件及节点脚本对分布式系统的版本自动部署(包括程序升级和程序回滚),具有节约人力成本、提高作业效率降低操作失误风险的有益效果。
为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,如图2所示,本发明实施例提供的一种基于分布式系统的版本自动部署方法,该方法包括以下步骤:
s201:获取应用程序版本配置文件、批量调度文件及初始信息。
其中,批量调度文件包括:各作业节点号、各作业节点状态、各节点脚本名称、开始时间、结束时间、执行结果等,本发明不以此为限。
作业节点号:用于对作业节点顺序进行编号,例如作业节点号为a010(根节点即起始节点),字符长度为4bit。
作业节点状态:用于表示作业节点目前的运行状态,具体包括:初始化i、未启用u、执行中p、执行成功n及执行失败e等,本发明不以此为限。作业节点状态的字符长度为1bit。
节点脚本名称具体为rexx脚本名:用于生成版本自动部署作业的脚本名,字符长度为8bit,例如节点脚本名称为@rexx1。
开始时间:用于标记作业节点开始运行的时间,字符长度为15bit,具体为begintimestamp。
结束时间:用于标记作业节点结束运行的时间,字符长度为15bit,具体为endtimestamp。
执行结果:用于标记作业节点执行的结果,字符长度为4bit。执行结果包括:脚本成功(标识符0)、member存在(标识符1)、节点未启用(标识符2)、脚本逻辑错(标识符3)、获取reponse信息失败(标识符4)、节点初始化失败(标识符5)、脚本异常(标识符7)。
其中,初始信息包括:初始作业节点号(例如a010)、部署业务系统名(例如网银系统:ibps)及部署日期(例如1010版本)、逻辑分区名、主站点标识参数及备站点标识参数等,本发明不以此为限。
其中应用程序版本配置文件包括:部署业务系统的主机程序版本号、部署日期、应用程序名、所属业务系统名、变更类型、三改一标志、程序接口、dbrmlibhash值、loadlibhash值等,本发明不以此为限,具体结构如表1所示:
表1
s202:根据初始信息及应用程序版本配置文件对批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本。
如图2所示,步骤s202具体执行包括以下步骤:
s301:根据初始信息及应用程序版本配置文件对批量调度文件进行初始化赋值。
具体实施时,按照key:value形式,编写批量调度文件格式。
s302:根据应用程序版本配置文件及初始化后的批量调度文件,生成各节点脚本名称对应的节点脚本。
具体实施时,程序脚本根据应用配置文件中的程序名,按照不同的变更类型(新增或者变更),处理不同的部署逻辑,新增程序需增加应用程序在cics中的定义,并对数据库写入接口信息,变更程序需要检查当前环境备份的应用程序版本,并生成新的版本备份程序,并在部署过程中,通过hash值及数据库token值的校验,确定应用程序版本配置文件正确无误,部署应用的过程中,还需检查当前环境的业务往来是否停止,最后生成当前应用程序版本信息数据,记入数据库,同时删除部署过程中,产生的中间文件。
s203:根据多个作业节点号的作业节点状态,迭代执行多个作业节点号分别对应的节点脚本进行版本部署。
其中,初始化后的各作业节点状态包括:初始化i或未启用u。
具体实施时,如图3所示,步骤s203的具体执行步骤为:
第一步:获取的初始作业节点号对应的作业节点状态;
第二步:判断当前作业节点号对应的作业节点状态是否为初始化状态;如果是,执行第三步;如果否,执行第六步;
第三步:执行当前作业节点号对应的节点脚本并反馈当前节点脚本的执行结果;
其中,节点脚本开始运行后,当前作业节点号对应的作业节点状态将更新为执行中。
第四步:根据当前执行结果,更新当前作业节点号对应的作业节点状态;
其中,执行结果包括:执行成功或执行失败;
当执行结果为“执行成功”时,将当前作业节点号对应的作业节点状态从“执行中”更新为“执行成功”;
当执行结果为“执行失败”时,将当前作业节点号对应的作业节点状态从“执行中”更新为“执行失败”;
第五步:判断更新后的当前作业节点号对应的作业节点状态是否为执行成功;如果是,执行第六步;如果否,执行第七步;
第六步:判断当前作业节点号是否最后一个作业节点号;如果是,执行第八步;如果否,执行第九步;
第七步:根据当前执行结果中上报的异常信息对当前节点脚本进行修正,并重新执行第二步;
第八步:获取下一作业节点号对应的作业节点状态,并执行第二步;
第九步:版本自动部署结束。
s204:实时监控及更新各作业节点状态。
具体实施时,实时监控各作业节点状态,并根据节点脚本的执行结果实时更新各作业节点状态。
本发明为解决现有技术缺陷,通过批量调度文件及节点脚本执行自动部署,从而替代手工操作,部署安装过程按照预先设定的作业节点号顺序调用并执行各作业节点号对应的节点脚本文件,无需安装人员手动干预,并对应用程序版本的相关信息,记录到数据库保存,以利于程序版本信息的查询以及应用程序版本的回滚功能。本发明适用于基于分布式系统的版本自动升级部署及版本自动回滚部署,具有提升业务系统的自动化水平,减少人工操作失误的风险,提高作业效率及节约人力成本的有益效果。
场景一:版本升级自动部署
以网银系统v10101版本进行版本升级自动部署为例,具体过程如下:
首先,获取应用程序版本配置文件、批量调度文件及初始信息,其中批量调度文件包括:各作业节点号、各作业节点状态及各节点脚本名称。其中初始信息包括:初始作业节点号(例如a010)、部署业务系统名(网银系统:ibps)及部署日期(v10101版本对应的部署日期1010)、逻辑分区名、主站点标识参数及备站点标识参数等,本发明不以此为限。
其中版本升级自动部署时各作业节点具体如下:
1、用程序所属系统loadlib与dbrmlib进行备份;
2、变更程序备份/新增程序定义、安装、接口、导入cics;
3、应用程序lib解压;
4、版本一致性检查(hash值检查);
5、应用版本更新;
6、应用版本确认(dbrmlib与loadlib的token匹配);
7、检查cics没有应用交易;
8、应用程序bind;
9、应用程序刷新;
10、应用程序版本信息保存到pubs.versnzdt001表;
11、设置版本信息文件;
12、删除部署过程中产生的临时文件。
根据初始信息及应用程序版本配置文件对批量调度文件进行初始化赋值,根据应用程序版本配置文件的变更类型,生成版本升级自动部署的多个作业节点记录。
根据应用程序版本配置文件及初始化后的批量调度文件,生成各节点脚本名称对应的节点脚本。
场景二:版本回滚自动部署
版本回滚即当前网银系统当前版本是v10101,现需要将版本回退到v10100。
其中版本回滚自动部署时各作业节点具体如下:
1、根据应用程序版本管理表,初始化回滚文件;
2、删除新增程序定义,释放资源/变更程序恢复到目标库;
3、应用程序版本确认;
4、检查cics没有应用交易;
5、应用程序bind;
6、应用程序刷新;
7、回滚版本信息文件。
基于与上述基于分布式系统的版本自动部署方法相同的申请构思,本发明还提供了一种基于分布式系统的版本自动部署系统,如下面实施例所述。由于该基于分布式系统的版本自动部署系统解决问题的原理与基于分布式系统的版本自动部署方法相似,因此该基于分布式系统的版本自动部署系统的实施可以参见基于分布式系统的版本自动部署方法的实施,重复之处不再赘述。
图4为本申请实施例的基于分布式系统的版本自动部署系统的结构示意图,如图4所示,该基于分布式系统的版本自动部署系统包括:获取单元101、初始化单元102及执行单元103。
获取单元101,用于获取应用程序版本配置文件、批量调度文件及初始信息;批量调度文件包括:各作业节点号、各作业节点状态及各节点脚本名称;
初始化单元102,用于根据初始信息及应用程序版本配置文件对批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本;
执行单元103,用于根据多个作业节点号的作业节点状态,迭代执行多个作业节点号分别对应的节点脚本进行版本部署。
其中,初始信息包括:初始作业节点号及部署业务系统名。
其中,作业节点状态包括:初始化、未启用、执行中、执行成功或执行失败。
在一个实施例中,如图5所示,初始化单元102包括:初始化模块201及脚本生成模块202。
初始化模块201,用于根据初始信息及应用程序版本配置文件对批量调度文件进行初始化赋值;
脚本生成模块202,用于根据应用程序版本配置文件及初始化后的批量调度文件,生成各节点脚本名称对应的节点脚本。
在一个实施例中,如图6所示,该基于分布式系统的版本自动部署系统还包括:监控单元104。
监控单元104,用于实时监控及更新各作业节点状态。
基于与上述基于分布式系统的版本自动部署方法相同的申请构思,本申请提供一种计算机设备,如下面实施例所述。由于该计算机设备解决问题的原理与基于分布式系统的版本自动部署方法相似,因此该计算机设备的实施可以参见基于分布式系统的版本自动部署方法的实施,重复之处不再赘述。
在一个实施例中,电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的基于分布式系统的版本自动部署方法的全部步骤,例如,如图1所示,所述处理器执行所述计算机程序时实现下述步骤:
s101:获取应用程序版本配置文件、批量调度文件及初始信息。其中,批量调度文件包括:各作业节点号、各作业节点状态、各节点脚本名称、开始时间、结束时间、执行结果等,本发明不以此为限。
s102:根据初始信息及应用程序版本配置文件对批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本。
s103:根据多个作业节点号的作业节点状态,迭代执行多个作业节点号分别对应的节点脚本进行版本部署。
基于与上述基于分布式系统的版本自动部署方法相同的申请构思,本申请提供一种计算机可读存储介质,如下面实施例所述。由于该计算机可读存储介质解决问题的原理与基于分布式系统的版本自动部署方法相似,因此该计算机可读存储介质的实施可以参见基于分布式系统的版本自动部署方法的实施,重复之处不再赘述。
在一个实施例中,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的基于分布式系统的版本自动部署方法的全部步骤,例如,如图1所示,该计算机程序被处理器执行时实现以下步骤:
s101:获取应用程序版本配置文件、批量调度文件及初始信息。其中,批量调度文件包括:各作业节点号、各作业节点状态、各节点脚本名称、开始时间、结束时间、执行结果等,本发明不以此为限。
s102:根据初始信息及应用程序版本配置文件对批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本。
s103:根据多个作业节点号的作业节点状态,迭代执行多个作业节点号分别对应的节点脚本进行版本部署。
本发明提供的一种基于分布式系统的版本自动部署方法及系统,包括:获取应用程序版本配置文件、批量调度文件及初始信息;所述批量调度文件包括:各作业节点号、各作业节点状态及各节点脚本名称;根据所述初始信息及所述应用程序版本配置文件对所述批量调度文件进行初始化,并生成各节点脚本名称对应的节点脚本;根据多个所述作业节点号的作业节点状态,迭代执行多个作业节点号分别对应的节点脚本进行版本部署。本申请通过批量调度文件及节点脚本对分布式系统的版本自动部署(包括程序升级和程序回滚),具有节约人力成本、提高作业效率降低操作失误风险的有益效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。