一种分布式软件版本发布方法及系统技术方案

技术编号:14694541 阅读:71 留言:0更新日期:2017-02-23 18:09
本发明专利技术提供了一种分布式软件版本发布方法及系统,涉及软件版本发布技术领域。节点控制装置将新版本内容、版本生效策略和版本推送策略发送到各第一层级目标服务器节点;第一层级目标服务器节点继续推送新版本内容、版本生效策略和版本推送策略到第二层级目标服务器节点,以此类推,完成各层级目标服务器节点的逐级推送。在各层级目标服务器节点本地部署新版本;各层级目标服务器节点根据版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据采集线程采集新版本内容的评估指标;根据版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容,完成版本发布。

【技术实现步骤摘要】

本专利技术涉及软件版本发布
,尤其涉及一种分布式软件版本发布方法及系统
技术介绍
当前,随着互联网的日新月异,用户和业务的需求变化越来越频繁。为此,软件项目的版本发布密度也越来越高。一般情况下,一个软件版本从立项到上线需要经过需求确认、功能设计、程序开发、软件测试等多个阶段,这样的方式虽然保证了版本的质量,但是延长了开发周期,造成了版本更新频度无法满足业务需求变化的现状。为解决这个问题,现在比较常用的是一种“灰度发布”的方式,该方式主要是压缩了软件测试阶段,将新版本先行发布给一小部分用户使用,收集其用户反馈和运行指标,如果正常则推送到所有的用户,如果存在问题则立即回退版本。但这种方式目前还存在以下一些问题:①软件版本更新过程中需要暂停当前版本,可能造成短时内其他未更新的软件程序吞吐量增加,影响系统稳定;②版本在更新过程中可能会引起发送版本的服务器网络流量激增,影响其他功能的正常使用;③版本的更新和回退存在人工介入,无法实现自动操作,容易产生操作失误等风险。
技术实现思路
本专利技术的实施例提供一种分布式软件版本发布方法及系统,以解决当前软件版本发布影响系统稳定、服务器网络流量激增且难以实现自动操作发布的问题。为达到上述目的,本专利技术采用如下技术方案:一种分布式软件版本发布方法,应用于一分布式软件版本发布系统,所述分布式软件版本发布系统包括节点控制装置和预先设置的多层级目标服务器,每层级目标服务器包括多个目标服务器节点;所述分布式软件版本发布方法,包括:节点控制装置获取新版本内容与用户自定义的版本生效策略;节点控制装置生成各层级目标服务器清单,并根据所述各层级目标服务器清单生成版本推送策略;节点控制装置将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第一层级目标服务器中的各第一层级目标服务器节点;所述第一层级目标服务器节点在第一层级目标服务器节点本地部署所述新版本;所述第一层级目标服务器节点继续推送所述新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点;其中,n≥2;其中,第n层级目标服务器为多层级目标服务器的最后一层级;各层级目标服务器节点在各层级目标服务器节点本地部署所述新版本;各层级目标服务器节点根据所述版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;各层级目标服务器节点根据所述采集线程采集新版本内容的评估指标;各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;各层级目标服务器节点根据所述待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。具体的,节点控制装置生成各层级目标服务器清单,包括:节点控制装置根据网络服务器实际数量、新版本内容文件大小总和以及节点控制装置所占用的最大网络带宽确定所述第一层级目标服务器节点的数量;其中,所述第一层级目标服务器节点的数量N1为:N1′>N实际;或者N1=N实际,N1′≤N实际;A为所述节点控制装置所占用的最大网络带宽;B为新版本内容文件大小总和;N1′为A除以B,并向下取整得到的结果;N实际为所述网络服务器实际数量;节点控制装置以随机方式在网络服务器中确定第一层级目标服务器清单;节点控制装置确定第n层级目标服务器节点的数量;其中,所述第n层级目标服务器节点的数量Nn为:Nn=N1n,或者,N实际为所述网络服务器实际数量;节点控制装置以随机方式在网络服务器中确定第n层级目标服务器清单。进一步的,所述的分布式软件版本发布方法,还包括:各层级目标服务器节点将其接收所述新版本内容、版本生效策略和版本推送策略的推送结果反馈到各层级目标服务器节点的上一层数据推送端;所述上一层数据推送端包括各层级目标服务器节点或第一层级目标服务器节点对应的节点控制装置;若上一层数据推送端在一预先设置的超时时间内接受到所述推送结果,根据各推送结果判断上一层数据推送端向各层级目标服务器节点推送所述新版本内容、版本生效策略和版本推送策略是否成功;若所述推送结果为推送失败,则上一层数据推送端记录推送失败的目标服务器节点,形成推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器;若上一层数据推送端在预先设置的超时时间内未接收到所述推送结果,判断上一层数据推送端向未反馈推送结果的目标服务器节点的推送次数是否超过一预设次数阈值;若所述推送次数小于所述预设次数阈值,上一层数据推送端继续向未反馈推送结果的目标服务器节点推送一次所述新版本内容、版本生效策略和版本推送策略;若所述推送次数大于等于所述预设次数阈值,上一层数据推送端将未反馈推送结果的目标服务器节点放入推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器。具体的,各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容,包括:各层级目标服务器节点获取历史版本内容的评估指标;各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标;若新版本内容的评估指标大于所述历史版本内容的评估指标,记录采用新版本内容的评估结果,生成包含待发布的新版本内容的单版本执行策略;若新版本内容的评估指标小于所述历史版本内容的评估指标,记录采用旧版本内容的评估结果,生成包含待发布的旧版本内容的单版本执行策略。此外,所述的分布式软件版本发布方法,还包括:各层级目标服务器节点不比较新版本内容的评估指标与历史版本内容的评估指标,生成包含多个待发布的版本内容的多版本执行策略。进一步的,所述的分布式软件版本发布方法,还包括:各层级目标服务器节点根据单版本执行策略和多版本执行策略,确定在目标服务器节点上是否需要多版本并发执行;若确定在目标服务器节点上需要多版本并发执行,目标服务器节点根据多版本执行策略中的多个待发布的版本内容,为每个版本启动一个线程,并注册版本线程信息,并启动采集线程采集各版本的评估指标;若确定在目标服务器节点上需要单版本执行,目标服务器节点获取已经注册的注册版本线程信息,终止所有与单版本执行策略中的版本不一致的版本线程,删除与单版本执行策略中的版本不一致的版本的注册版本线程信息,关闭与单版本执行策略中的版本不一致的版本的采集线程。具体的,所述版本生效策略包括版本的各评分项和各评分项加权值;版本的各评分项包括:CPU平均占用率评分、内存平均占用量评分、用户对版本的投诉频率评分;所述分布式软件版本发布方法,还包括:根据版本的各评分项和各评分项加权值形成版本的评估指标;其中,第i个版本的评估指标为:Si=Ci×x%+Di×y%+Ei×z%Ci为第i个版本的CPU平均占用率评分;x%为CPU平均占用率评分的加权值;Di为第i个版本的内存平均占用量评分;y%为内存平均占用量评分的加权值;Ei为用户对版本的投诉频率评分;z%为用户对版本的投诉频率评分的加权值。一种分布式软件版本发布系统,包括节点控制装置和预先设置的多层级目标服务器,每层级目本文档来自技高网...
一种分布式软件版本发布方法及系统

【技术保护点】
一种分布式软件版本发布方法,其特征在于,应用于一分布式软件版本发布系统,所述分布式软件版本发布系统包括节点控制装置和预先设置的多层级目标服务器,每层级目标服务器包括多个目标服务器节点;所述分布式软件版本发布方法,包括:节点控制装置获取新版本内容与用户自定义的版本生效策略;节点控制装置生成各层级目标服务器清单,并根据所述各层级目标服务器清单生成版本推送策略;节点控制装置将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第一层级目标服务器中的各第一层级目标服务器节点;所述第一层级目标服务器节点在第一层级目标服务器节点本地部署所述新版本;所述第一层级目标服务器节点继续推送所述新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n‑1层级目标服务器中的各第n‑1层级目标服务器节点将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点;其中,n≥2;其中,第n层级目标服务器为多层级目标服务器的最后一层级;各层级目标服务器节点在各层级目标服务器节点本地部署所述新版本;各层级目标服务器节点根据所述版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;各层级目标服务器节点根据所述采集线程采集新版本内容的评估指标;各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;各层级目标服务器节点根据所述待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。...

【技术特征摘要】
1.一种分布式软件版本发布方法,其特征在于,应用于一分布式软件版本发布系统,所述分布式软件版本发布系统包括节点控制装置和预先设置的多层级目标服务器,每层级目标服务器包括多个目标服务器节点;所述分布式软件版本发布方法,包括:节点控制装置获取新版本内容与用户自定义的版本生效策略;节点控制装置生成各层级目标服务器清单,并根据所述各层级目标服务器清单生成版本推送策略;节点控制装置将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第一层级目标服务器中的各第一层级目标服务器节点;所述第一层级目标服务器节点在第一层级目标服务器节点本地部署所述新版本;所述第一层级目标服务器节点继续推送所述新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点;其中,n≥2;其中,第n层级目标服务器为多层级目标服务器的最后一层级;各层级目标服务器节点在各层级目标服务器节点本地部署所述新版本;各层级目标服务器节点根据所述版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;各层级目标服务器节点根据所述采集线程采集新版本内容的评估指标;各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;各层级目标服务器节点根据所述待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。2.根据权利要求1所述的分布式软件版本发布方法,其特征在于,节点控制装置生成各层级目标服务器清单,包括:节点控制装置根据网络服务器实际数量、新版本内容文件大小总和以及节点控制装置所占用的最大网络带宽确定所述第一层级目标服务器节点的数量;其中,所述第一层级目标服务器节点的数量N1为:N′1>N实际;或者N1=N实际,N′1≤N实际;A为所述节点控制装置所占用的最大网络带宽;B为新版本内容文件大小总和;N′1为A除以B,并向下取整得到的结果;N实际为所述网络服务器实际数量;节点控制装置以随机方式在网络服务器中确定第一层级目标服务器清单;节点控制装置确定第n层级目标服务器节点的数量;其中,所述第n层级目标服务器节点的数量Nn为:Nn=N1n,或者,N实际为所述网络服务器实际数量;节点控制装置以随机方式在网络服务器中确定第n层级目标服务器清单。3.根据权利要求2所述的分布式软件版本发布方法,其特征在于,还包括:各层级目标服务器节点将其接收所述新版本内容、版本生效策略和版本推送策略的推送结果反馈到各层级目标服务器节点的上一层数据推送端;所述上一层数据推送端包括各层级目标服务器节点或第一层级目标服务器节点对应的节点控制装置;若上一层数据推送端在一预先设置的超时时间内接受到所述推送结果,根据各推送结果判断上一层数据推送端向各层级目标服务器节点推送所述新版本内容、版本生效策略和版本推送策略是否成功;若所述推送结果为推送失败,则上一层数据推送端记录推送失败的目标服务器节点,形成推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器;若上一层数据推送端在预先设置的超时时间内未接收到所述推送结果,判断上一层数据推送端向未反馈推送结果的目标服务器节点的推送次数是否超过一预设次数阈值;若所述推送次数小于所述预设次数阈值,上一层数据推送端继续向未反馈推送结果的目标服务器节点推送一次所述新版本内容、版本生效策略和版本推送策略;若所述推送次数大于等于所述预设次数阈值,上一层数据推送端将未反馈推送结果的目标服务器节点放入推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器。4.根据权利要求3所述的分布式软件版本发布方法,其特征在于,各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容,包括:各层级目标服务器节点获取历史版本内容的评估指标;各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标;若新版本内容的评估指标大于所述历史版本内容的评估指标,记录采用新版本内容的评估结果,生成包含待发布的新版本内容的单版本执行策略;若新版本内容的评估指标小于所述历史版本内容的评估指标,记录采用旧版本内容的评估结果,生成包含待发布的旧版本内容的单版本执行策略。5.根据权利要求4所述的分布式软件版本发布方法,其特征在于,还包括:各层级目标服务器节点不比较新版本内容的评估指标与历史版本内容的评估指标,生成包含多个待发布的版本内容的多版本执行策略。6.根据权利要求5所述的分布式软件版本发布方法,其特征在于,还包括:各层级目标服务器节点根据单版本执行策略和多版本执行策略,确定在目标服务器节点上是否需要多版本并发执行;若确定在目标服务器节点上需要多版本并发执行,目标服务器节点根据多版本执行策略中的多个待发布的版本内容,为每个版本启动一个线程,并注册版本线程信息,并启动采集线程采集各版本的评估指标;若确定在目标服务器节点上需要单版本执行,目标服务器节点获取已经注册的注册版本线程信息,终止所有与单版本执行策略中的版本不一致的版本线程,删除与单版本执行策略中的版本不一致的版本的注册版本线程信息,关闭与单版本执行策略中的版本不一致的版本的采集线程。7.根据权利要求6所述的分布式软件版本发布方法,其特征在于,所述版本生效策略包括版本的各评分项和各评分项加权值;版本的各评分项包括:CPU平均占用率评分、内存平均占用量评分、用户对版本的投诉频率评分;所述分布式软件版本发布方法,还包括:根据版本的各评分项和各评分项加权值形成版本的评估指标;其中,第i个版本的评估指标为:Si=Ci×x%+Di×y%+Ei×z%Ci为第i个版本的CPU平均占用率评分;x...

【专利技术属性】
技术研发人员:雷赛龄潘晨隐郑文斌沈栋
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1