系统升级方法、升级系统、计算机设备和可读存储介质技术方案

技术编号:35672337 阅读:29 留言:0更新日期:2022-11-23 14:08
本发明专利技术提供了一种系统升级方法、升级系统、计算机设备和可读存储介质。获取状态文件配置,其中,所述状态文件配置包括对若干状态文件进行变更操作的配置,所述状态文件为所述系统运行所在环境中可被修改的系统内容;确定所述状态文件配置中的待执行变更操作;以及根据所述待执行变更操作的状态文件的类型调用升级插件,以使所述升级插件对所述状态文件进行变更。通过本发明专利技术,能够降低系统升级的复杂性和故障率。性和故障率。性和故障率。

【技术实现步骤摘要】
系统升级方法、升级系统、计算机设备和可读存储介质


[0001]本专利技术涉及分布式系统
,尤其涉及一种系统升级方法、升级系统、计算机设备和可读存储介质。

技术介绍

[0002]面对大型复杂分布式系统,总是会面临各种各样的系统升级,随着分布式、集群、模块化等技术的广泛引用,系统运行和部署的架构越来越复杂,系统升级往往会涉及数据库、SQL脚本、配置、目录文件、程序文件等内容的升级,还需要兼顾现场运维对系统的修改,使得升级和回退逻辑越来越复杂,且经常需要定制升级脚本,严重影响成功率,造成升级回退成了必备的保障机制,而回退相比升级更加复杂,且本身存在可靠性和一致性问题。
[0003]在现有技术中,升级方法包括面向数据的升级方法和面向业务流程的升级方法。前者主要针对的是简单的文件替换和增量SQL执行框架,这些技术不能完全覆盖复杂场景下的系统升级,例如系统有过定制、运维修改过系统配置、部分业务涉及复杂的数据迁移、无法通过SQL升级等。对于复杂系统,通常采用后者,也即面向业务流程的升级方法进行升级,具体地,由升级程序负责升级主流程,如校验、基线升级以及模块升级等,通过插件来实现业务的各个升级子流程,对于不同的业务,定制不同的插件。这种方法中,升级插件与业务及环境高度耦合,导致升级系统的每个版本时,都需要定制插件,不仅升级复杂,开发维护成本高,还会因插件代码过多而容易出现升级故障。
[0004]因此,如何降低系统升级的复杂性和故障率,成为本领域亟需解决的技术问题。

技术实现思路

[0005]本专利技术的目的是提供一种系统升级方法、升级系统、计算机设备和可读存储介质,用于解决现有技术中的上述技术问题。
[0006]一方面,为实现上述目的,本专利技术提供了一种系统升级方法。
[0007]该系统升级方法包括:获取状态文件配置,其中,所述状态文件配置包括对若干状态文件进行变更操作的配置,所述状态文件为所述系统运行所在环境中可被修改的系统内容;确定所述状态文件配置中的待执行变更操作;以及根据所述待执行变更操作的状态文件的类型调用升级插件,以使所述升级插件对所述状态文件进行变更。
[0008]进一步地,所述状态文件包括实现数据库升级时被修改的内容、实现系统配置升级时被修改的内容和实现程序升级时被修改的内容。
[0009]进一步地,系统升级包括若干升级事务;在获取状态文件配置的步骤之前,所述系统升级方法还包括:解析所述升级事务的事务组件包,其中,所述事务组件包包括所述状态文件配置和事务流程配置,所述事务流程配置包括执行各所述变更操作的次序配置;确定所述待执行变更操作的步骤包括:根据所述事务流程配置确定所述待执行变更操作。
[0010]进一步地,所述升级插件还用于当所述变更操作执行异常时,生成异常信息,当所述变更操作执行成功时,记录升级日志;所述系统升级方法还包括:调用快照插件,对所述
待执行变更操作的状态文件进行快照,并保存快照文件;在接收到所述异常信息时,遍历所述升级日志,确定所述异常信息所在升级事务中,已被执行变更操作的状态文件,并基于所述已被执行变更操作的状态文件对应的快照文件进行恢复。
[0011]进一步地,对所述待执行变更操作的状态文件进行快照的步骤包括:当所述状态文件为实现数据库升级时被修改的内容时,通过数据库的checkpoint机制进行快照;当所述状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且所述状态文件小于预设阈值时,通过对状态文件进行备份来进行快照;当所述状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且所述状态文件大于或等于预设阈值时,计算变更操作前后的状态文件的二进制差异进行快照。
[0012]进一步地,所述系统升级方法还包括:在解析所述升级事务的事务组件包之前,获取并解析升级内容包,其中,所述升级内容包包括全局事务配置和若干所述事务组件包,所述全局事务配置用于对各个所述升级事务进行配置;根据所述全局事务配置创建事务目录,其中,所述升级事务的事务组件包中所有所述变更操作执行完成时,所述升级事务完成;以及在一个所述升级事务完成后,根据所述事务目录解析下一个所述升级事务的事务组件包。
[0013]进一步地,所述升级内容包还包括全局校验规则和升级结果校验配置,所述事务组件包还包括事务校验规则,所述系统升级方法还包括:在解析所述升级内容包之后,根据所述全局事务配置创建事务目录之前,调用规则校验插件,以根据所述全局校验规则进行校验,其中,当所述全局校验规则校验成功时,执行根据所述全局事务配置创建事务目录的步骤;在解析所述升级事务的事务组件包之后,根据所述事务流程配置确定所述待执行变更操作之前,调用所述规则校验插件,以根据所述事务校验规则进行校验,其中,当所述事务校验规则校验成功时,执行根据所述事务流程配置确定所述待执行变更操作的步骤;在一个所述升级事务完成后,调用所述结果校验插件,以根据所述升级结果校验配置对所述升级事务的升级结果进行校验。
[0014]另一方面,为实现上述目的,本专利技术提供了一种升级系统。
[0015]该升级系统包括状态变更框架和升级插件,其中,所述状态变更框架用于获取状态文件配置,确定所述状态文件配置中的待执行变更操作,以及根据所述待执行变更操作的状态文件的类型调用升级插件,其中,所述状态文件配置包括对若干状态文件进行变更操作的配置,所述状态文件为所述系统运行所在环境中可被修改的系统内容;所述升级插件用于对所述状态文件进行变更。
[0016]进一步地,系统升级包括若干升级事务,所述升级系统还包括升级框架,所述升级框架用于解析所述升级事务的事务组件包,并提交所述事务组件包至所述状态变更框架,其中,所述事务组件包包括所述状态文件配置和事务流程配置,所述事务流程配置包括执行各所述变更操作的次序配置;所述状态变更框架在确定所述待执行变更操作时,具体执行的步骤包括:根据所述事务流程配置确定所述待执行变更操作。
[0017]进一步地,所述升级系统还包括事务管理器和快照插件,所述快照插件用于对所述待执行变更操作的状态文件进行快照,并将快照文件提交至所述事务管理器;所述事务管理器用于保存所述快照文件;所述升级插件还用于当所述变更操作执行异常时,生成异常信息,并向所述状态变更框架提交所述异常信息,当所述变更操作执行成功时,向所述事
务管理器提交升级记录;所述事务管理器还用于根据所述升级记录形成升级日志;所述状态变更框架还用于在接收到所述异常信息时,向所述事务管理器发起事务回退;所述事务管理器还用于在接收到事务回退时,遍历所述升级日志,确定所述异常信息所在升级事务中,已被执行变更操作的状态文件,并基于所述已被执行变更操作的状态文件对应的快照文件进行恢复。
[0018]进一步地,所述升级框架还用于获取并解析升级内容包,其中,所述升级内容包包括全局事务配置和若干所述事务组件包,所述全局事务配置用于对各个所述升级事务进行配置;所述升级框架还用于根据所述全局事务配置,将各个所述升级事本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种系统升级方法,其特征在于,包括:获取状态文件配置,其中,所述状态文件配置包括对若干状态文件进行变更操作的配置,所述状态文件为所述系统运行所在环境中可被修改的系统内容;确定所述状态文件配置中的待执行变更操作;以及根据所述待执行变更操作的状态文件的类型调用升级插件,以使所述升级插件对所述状态文件进行变更。2.根据权利要求1所述的系统升级方法,其特征在于,所述状态文件包括实现数据库升级时被修改的内容、实现系统配置升级时被修改的内容和实现程序升级时被修改的内容。3.根据权利要求1或2所述的系统升级方法,其特征在于,系统升级包括若干升级事务;在获取状态文件配置的步骤之前,所述系统升级方法还包括:解析所述升级事务的事务组件包,其中,所述事务组件包包括所述状态文件配置和事务流程配置,所述事务流程配置包括执行各所述变更操作的次序配置;确定所述待执行变更操作的步骤包括:根据所述事务流程配置确定所述待执行变更操作。4.根据权利要求3所述的系统升级方法,其特征在于,所述升级插件还用于当所述变更操作执行异常时,生成异常信息,当所述变更操作执行成功时,记录升级日志;所述系统升级方法还包括:调用快照插件,对所述待执行变更操作的状态文件进行快照,并保存快照文件;在接收到所述异常信息时,遍历所述升级日志,确定所述异常信息所在升级事务中,已被执行变更操作的状态文件,并基于所述已被执行变更操作的状态文件对应的快照文件进行恢复。5.根据权利要求4所述的系统升级方法,其特征在于,对所述待执行变更操作的状态文件进行快照的步骤包括:当所述状态文件为实现数据库升级时被修改的内容时,通过数据库的checkpoint机制进行快照;当所述状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且所述状态文件小于预设阈值时,通过对状态文件进行备份来进行快照;当所述状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且所述状态文件大于或等于预设阈值时,计算变更操作前后的状态文件的二进制差异进行快照。6.根据权利要求4所述的系统升级方法,其特征在于,所述系统升级方法还包括:在解析所述升级事务的事务组件包之前,获取并解析升级内容包,其中,所述升级内容包包括全局事务配置和若干所述事务组件包,所述全局事务配置用于对各个所述升级事务进行配置;根据所述全局事务配置创建事务目录,其中,所述升级事务的事务组件包中所有所述变更操作执行完成时,所述升级事务完成;以及在一个所述升级事务完成后,根据所述事务目录解析下一个所述升级事务的事务组件
包。7.根据权利要求6所述的系统升级方法,其特征在于,所述升级内容包还包括全局校验规则和升级结果校验配置,所述事务组件包还包括事务校验规则,所述系统升级方法还包括:在解析所述升级内容包之后,根据所述全局事务配置创建事务目录之前,调用规则校验插件,以根据所述全局校验规则进行校验,其中,当所述全局校验规则校验成功时,执行根据所述全局事务配置创建事务目录的步骤;在解析所述升级事务的事务组件包之后,根据所述事务流程配置确定所述待执行变更操作之前,调用所述规则校验插件,以根据所述事务校验规则进行校验,其中,当所述事务校验规则校验成功时,执行根据所述事务流程配置确定所述待执行变更操作的步骤;在一个所述升级事务完成后,调用所述结果校验插件,以根据所述升级结果校验配置对所述升级事务的升级结果进行校验。8.一种升级系统,其特征在于,包括状态变更框架和升级插件,其中,所述状态变更框架用于获取状态文件配置,确定所述状态文件配置中的待执行变更操作,以及根据所述待执行变更操作的状态文件的类型调用升级插件,其中,所述状态文件配置包括对若干状态文件进行变更操作的配置,所述状态文件为所述...

【专利技术属性】
技术研发人员:毛颖
申请(专利权)人:网神信息技术北京股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1