一种分布式软件升级系统及其实现方法技术方案

技术编号:18006867 阅读:50 留言:0更新日期:2018-05-21 07:29
本发明专利技术涉及软件升级技术领域,特别是一种分布式软件升级系统及其实现方法。本发明专利技术所述方法包括升级包服务端、控制端和代理端三部分,升级包服务端主要负责代码更新编译、制作打包与发布;控制端主要负责版本检测和平台所有节点服务的升级流程,代理端安装在平台的每个节点上,包括数据库升级插件工具、配置文件插件工具、环境依赖插件工具,根据控制端的调用执行相应操作。本发明专利技术适用于分布式异构软件系统的升级与更新,以独立插件工具的方式运行在各异构软件系统中,可以多种方式灵活配置升级相应的模块。

【技术实现步骤摘要】
一种分布式软件升级系统及其实现方法
本专利技术涉及软件升级
,特别是一种分布式软件升级系统及其实现方法。
技术介绍
随着虚拟化的发展,越来越多的云平台诞生。在云平台快速迭代开发的同时,更新客户的云平台环境通常会遇到以下问题:某产品经过多个版本迭代,系统架构变化较大;相关人员离职,新来人员对业务不熟悉。要对旧有客户环境升级,通常需要维护人员手工升级各节点组件,评估客户的原有环境、升级的难度以及升级后会不会带来其他问题等。这样的做法往往造成维护难度大,升级耗时长,升级成功率不高,不便于需求变更的快速响应,增加了系统的维护成本。
技术实现思路
本专利技术解决的技术问题在于提供一种分布式软件升级系统及其实现方法,以便在即使不熟悉客户环境、不熟悉产品版本特性的情况下都能很容易的做到快速成功升级云平台。本专利技术解决上述技术问题的技术方案是:所述的系统包括升级包服务端、控制端和代理端三部分;所述的升级包服务端实现:一键发布功能,包括代码更新编译、打包制作、上传发布;版本信息管理,包括升级版本特性、说明和注意事项等;对外提供升级包版本信息接口;对外提供升级包下载接口;所述的控制端实现:定时检测是否有新版本;升级包下载;一键升级;根据配置好的升级步骤,并发远程对平台各节点进行服务升级;所述的安装在平台的每个节点上的代理端包括数据库升级插件工具、配置文件升级插件工具和环境依赖插件工具;根据当前组件服务版本与发布的版本进行版本差升级,根据升级还是降级来判断需要执行哪些文件。所述的代理端数据库升级插件工具,只有被控制端调用时才触发数据库升级过程,并提供数据库升级日志查看工具供控制端调用;所述的代理端配置项升级插件工具,只有被控制端调用时才触发配置项升级过程,并提供配置项升级日志查看工具供控制端调用;所述的代理端环境依赖升级插件工具,只有被控制端调用时才触发环境依赖升级过程,并提供配置项升级日志查看工具供控制端调用。所述的方法是:下载升级包;判断所有节点升级是否完成,是则进行平台服务检测、关键功能检测;如无错误则结束;如检测出错,则判断此次升级失败,并记录失败原因;然后回滚;回滚后结束;如有节点升级未完成,则获取一个未升级的节点;判断是否需要回滚,如需要回滚,则回滚操作后结束;如不需要回滚,则进行一键升级;一键升级包括停止服务、备份、代码升级、数据库升级、配置文件升级、依赖库升级;如升级过程中出现异常;则判断此次升级失败,并记录失败原因;然后回滚;回滚后结束;某节点升级完成后再次判断所有节点升级是否完成,直至所有节点升级完成。所述的控制端一键升级流程由组件升级步骤管理配置决定。所述的控制端回滚,只有升级中途出现异常时才会进入该阶段或者人工触发回滚操作。本专利技术方案的有益效果如下:1、提供一种分布式软件升级的实现方法及系统,支持代码、数据库结构、数据库数据、配置文件、配置项、环境依赖工具等形式的升级。2、本专利技术具有通用性,开发人员只需要在开发过程中配置相应的升级配置文件即可。附图说明下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图;图2为本专利技术结构框架图。具体实施方式请参见图1、2,为本专利技术实施例提供的一种分布式软件升级的实现方法及系统的流程示意图和结构框图;本专利技术包括升级包服务端、控制端和代理端三部分:控制端:定时检测是否有新版本;升级包下载;整个升级过程有停止服务阶段、备份阶段、代码升级阶段、组件升级阶段、平台服务检测阶段、关键功能检测阶段、回滚阶段;根据配置好的升级步骤,并发远程对平台各节点的进行服务升级;各节点的升级包括停止服务、备份、代码升级、组件升级等。控制端:定时检测是否有新版本;升级包下载;整个升级过程有停止服务阶段、备份阶段、代码升级阶段、组件升级阶段、平台服务检测阶段、关键功能检测阶段、回滚阶段;根据配置好的升级步骤,并发远程对平台各节点的进行服务升级;各节点的升级包括停止服务、备份、代码升级、组件升级等。控制端定时检测新版本,升级包下载,一键升级。控制端检测到有新版本,用户登录运维平台,系统提示新版本特性并展示一键升级按钮,用户点击一键升级按钮,运维系统开始对平台进行升级。一,根据运维系统中记录的节点与组件列表,并发对平台各节点的组件进行备份,用于在后续升级过程中出现错误时回滚;二、并发对平台各节点组件进行停止服务;三、并发对平台各节点组件进行代码升级;四、并发调用平台各节点组件的数据库升级插件;五、并发调用平台各节点组件的配置项升级插件;六、并发调用平台各节点组件的环境依赖升级插件;七、控制端检测平台组件服务是否正常;八、控制端对平台关键功能进行检测;九、以上步骤如果出现异常,控制端将对平台升级进行回滚操作并记录升级过程日志;十、平台升级完成。代理端,每个组件都有相应的数据库升级插件工具、配置文件升级插件工具、环境依赖拆件工具;根据控制端的调用执行相应的数据库升级、配置文件升级、环境依赖升级。根据当前组件服务版本与发布的版本进行版本差升级,以数据库升级为例,每个版本均有up和down两个文件,版本号_up_数据库名#备注.sql、版本号_down_数据库名#备注.sql,根据升级还是降级来判断需要执行哪些文件。本文档来自技高网...
一种分布式软件升级系统及其实现方法

【技术保护点】
一种分布式软件升级系统,其特征在于,所述的系统包括升级包服务端、控制端和代理端三部分;所述的升级包服务端实现:一键发布功能,包括代码更新编译、打包制作、上传发布;版本信息管理,包括升级版本特性、说明和注意事项等;对外提供升级包版本信息接口;对外提供升级包下载接口;所述的控制端实现:定时检测是否有新版本;升级包下载;一键升级;根据配置好的升级步骤,并发远程对平台各节点进行服务升级;所述的安装在平台的每个节点上的代理端包括数据库升级插件工具、配置文件升级插件工具和环境依赖插件工具;根据当前组件服务版本与发布的版本进行版本差升级,根据升级还是降级来判断需要执行哪些文件。

【技术特征摘要】
1.一种分布式软件升级系统,其特征在于,所述的系统包括升级包服务端、控制端和代理端三部分;所述的升级包服务端实现:一键发布功能,包括代码更新编译、打包制作、上传发布;版本信息管理,包括升级版本特性、说明和注意事项等;对外提供升级包版本信息接口;对外提供升级包下载接口;所述的控制端实现:定时检测是否有新版本;升级包下载;一键升级;根据配置好的升级步骤,并发远程对平台各节点进行服务升级;所述的安装在平台的每个节点上的代理端包括数据库升级插件工具、配置文件升级插件工具和环境依赖插件工具;根据当前组件服务版本与发布的版本进行版本差升级,根据升级还是降级来判断需要执行哪些文件。2.根据权利要求1所述的系统,其特征在于:所述的代理端数据库升级插件工具,只有被控制端调用时才触发数据库升级过程,并提供数据库升级日志查看工具供控制端调用;所述的代理端配置项升级插件工具,只有被控制端调用时才触发配置项升级过程,并提供配置项升级日志查看工具供控制端调用;所述的代理端环境依赖升级插件工具...

【专利技术属性】
技术研发人员:邓玉芳季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:广东,44

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

1