CN106453549A - 一种分布式软件版本发布方法及系统 - Google Patents
一种分布式软件版本发布方法及系统 Download PDFInfo
- Publication number
- CN106453549A CN106453549A CN201610878474.5A CN201610878474A CN106453549A CN 106453549 A CN106453549 A CN 106453549A CN 201610878474 A CN201610878474 A CN 201610878474A CN 106453549 A CN106453549 A CN 106453549A
- Authority
- CN
- China
- Prior art keywords
- version
- target server
- level
- pushing
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000011156 evaluation Methods 0.000 claims description 129
- 238000010200 validation analysis Methods 0.000 claims description 100
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种分布式软件版本发布方法及系统,涉及软件版本发布技术领域。节点控制装置将新版本内容、版本生效策略和版本推送策略发送到各第一层级目标服务器节点;第一层级目标服务器节点继续推送新版本内容、版本生效策略和版本推送策略到第二层级目标服务器节点,以此类推,完成各层级目标服务器节点的逐级推送。在各层级目标服务器节点本地部署新版本;各层级目标服务器节点根据版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据采集线程采集新版本内容的评估指标;根据版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容,完成版本发布。
Description
技术领域
本发明涉及软件版本发布技术领域,尤其涉及一种分布式软件版本发布方法及系统。
背景技术
当前,随着互联网的日新月异,用户和业务的需求变化越来越频繁。为此,软件项目的版本发布密度也越来越高。一般情况下,一个软件版本从立项到上线需要经过需求确认、功能设计、程序开发、软件测试等多个阶段,这样的方式虽然保证了版本的质量,但是延长了开发周期,造成了版本更新频度无法满足业务需求变化的现状。
为解决这个问题,现在比较常用的是一种“灰度发布”的方式,该方式主要是压缩了软件测试阶段,将新版本先行发布给一小部分用户使用,收集其用户反馈和运行指标,如果正常则推送到所有的用户,如果存在问题则立即回退版本。但这种方式目前还存在以下一些问题:①软件版本更新过程中需要暂停当前版本,可能造成短时内其他未更新的软件程序吞吐量增加,影响系统稳定;②版本在更新过程中可能会引起发送版本的服务器网络流量激增,影响其他功能的正常使用;③版本的更新和回退存在人工介入,无法实现自动操作,容易产生操作失误等风险。
发明内容
本发明的实施例提供一种分布式软件版本发布方法及系统,以解决当前软件版本发布影响系统稳定、服务器网络流量激增且难以实现自动操作发布的问题。
为达到上述目的,本发明采用如下技术方案:
一种分布式软件版本发布方法,应用于一分布式软件版本发布系统,所述分布式软件版本发布系统包括节点控制装置和预先设置的多层级目标服务器,每层级目标服务器包括多个目标服务器节点;
所述分布式软件版本发布方法,包括:
节点控制装置获取新版本内容与用户自定义的版本生效策略;
节点控制装置生成各层级目标服务器清单,并根据所述各层级目标服务器清单生成版本推送策略;
节点控制装置将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第一层级目标服务器中的各第一层级目标服务器节点;
所述第一层级目标服务器节点在第一层级目标服务器节点本地部署所述新版本;
所述第一层级目标服务器节点继续推送所述新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第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=N1 n,或者,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层级目标服务器为多层级目标服务器的最后一层级;
各层级目标服务器节点,用于在各层级目标服务器节点本地部署所述新版本;根据所述版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据所述采集线程采集新版本内容的评估指标;根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;根据所述待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。
另外,所述节点控制装置,具体用于:
根据网络服务器实际数量、新版本内容文件大小总和以及节点控制装置所占用的最大网络带宽确定所述第一层级目标服务器节点的数量;
其中,所述第一层级目标服务器节点的数量N1为:
N1′>N实际;或者N1=N实际,N1′≤N实际;A为所述节点控制装置所占用的最大网络带宽;B为新版本内容文件大小总和;N1′为A除以B,并向下取整得到的结果;N实际为所述网络服务器实际数量;
以随机方式在网络服务器中确定第一层级目标服务器清单;
确定第n层级目标服务器节点的数量;其中,所述第n层级目标服务器节点的数量Nn为:
Nn=N1 n,或者,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层级目标服务器节点;这样,各层级目标服务器节点在各层级目标服务器节点本地部署新版本;根据版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据采集线程采集新版本内容的评估指标;根据版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;根据待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。可见,本发明通过多版本并行机制实现了版本更新过程中的不间断服务,并实现公正评估新版本各项性能指标;通过服务器间分层渐进的版本推送方式解决了版本发布过程中单点网络开销过大的问题;通过预先设定版本生效策略实现了自动化的版本更新与回退,从而提供了一种高可用、低消耗的分布式版本发布方式,可以解决当前软件版本发布影响系统稳定、服务器网络流量激增且难以实现自动操作发布的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式软件版本发布方法的流程图一;
图2为本发明实施例提供的一种分布式软件版本发布方法的流程图二;
图3为本发明实施例提供中的推送结果反馈方式的流程图;
图4为本发明实施例提供的一种分布式软件版本发布系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种分布式软件版本发布方法,应用于一分布式软件版本发布系统,所述分布式软件版本发布系统包括节点控制装置和预先设置的多层级目标服务器,每层级目标服务器包括多个目标服务器节点。
所述分布式软件版本发布方法,包括:
步骤101、节点控制装置获取新版本内容与用户自定义的版本生效策略。
步骤102、节点控制装置生成各层级目标服务器清单,并根据所述各层级目标服务器清单生成版本推送策略。
步骤103、节点控制装置将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第一层级目标服务器中的各第一层级目标服务器节点。
步骤104、所述第一层级目标服务器节点在第一层级目标服务器节点本地部署所述新版本。
步骤105、所述第一层级目标服务器节点继续推送所述新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点。
其中,n≥2;第n层级目标服务器为多层级目标服务器的最后一层级。
步骤106、各层级目标服务器节点在各层级目标服务器节点本地部署所述新版本。
步骤107、各层级目标服务器节点根据所述版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程。
步骤108、各层级目标服务器节点根据所述采集线程采集新版本内容的评估指标。
步骤109、各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容。
步骤110、各层级目标服务器节点根据所述待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。
本发明实施例提供的一种分布式软件版本发布方法,节点控制装置可将新版本内容、版本生效策略和版本推送策略发送到第一层级目标服务器中的各第一层级目标服务器节点;之后,第一层级目标服务器节点在第一层级目标服务器节点本地部署新版本;继续推送新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点;这样,各层级目标服务器节点在各层级目标服务器节点本地部署新版本;根据版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据采集线程采集新版本内容的评估指标;根据版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;根据待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。可见,本发明通过多版本并行机制实现了版本更新过程中的不间断服务,并实现公正评估新版本各项性能指标;通过服务器间分层渐进的版本推送方式解决了版本发布过程中单点网络开销过大的问题;通过预先设定版本生效策略实现了自动化的版本更新与回退,从而提供了一种高可用、低消耗的分布式版本发布方式,可以解决当前软件版本发布影响系统稳定、服务器网络流量激增且难以实现自动操作发布的问题。
为了使本领域的技术人员更好的了解本发明,下面结合具体实例列举一个更为详细的实施例,如图2所示,本发明实施例提供一种分布式软件版本发布方法,包括:
步骤201、节点控制装置获取新版本内容与用户自定义的版本生效策略。
具体的,所述版本生效策略包括版本的各评分项和各评分项加权值;版本的各评分项可以包括:CPU平均占用率评分、内存平均占用量评分、用户对版本的投诉频率评分。此处仅以CPU平均占用率评分、内存平均占用量评分、用户对版本的投诉频率评分为例,该版本的各评分项还可以包括数据吞吐量评分等。
版本的各评估项可以分为技术类评估指标和业务类评估指标,其中技术类评估指标由指标采集线程通过调用操作系统接口(API)在指定的统计周期内以每秒一次的频度采集,可采集指标包括CPU、内存、硬盘、网络带宽等,每次采集后指标采集线程即以算数平均数的方式计算指标在统计周期内的平均值,统计周期结束后根据指标评分公式计算每一项技术类评估指标的得分。
业务类评估指标由指标采集线程通过连接外部评价类业务系统以触发器的方式采集。以版本生效策略为例,该版本生效策略要求用户对于该版本的投诉小于10人/天,统计周期7天。指标采集线程会在每次客服系统收到客户对该版本投诉后触发计数器加1操作,每日凌晨对统计期内截止前一日的投诉量计算其算数平均值,统计期结束后根据指标评分公式计算每一项业务类评估指标的得分。例如:
指标评分=100-(指标平均值-指标阈值)÷指标阈值×100
该指标评分正常情况下最高为100分,最低为0分,如果最终结果超出该区间则取最临近区间内的值。
此处的版本生效策略中,可根据版本的各评分项和各评分项加权值形成版本的评估指标;其中,第i个版本的评估指标为:
Si=Ci×x%+Di×y%+Ei×z%
Ci为第i个版本的CPU平均占用率评分;x%为CPU平均占用率评分的加权值;Di为第i个版本的内存平均占用量评分;y%为内存平均占用量评分的加权值;Ei为用户对版本的投诉频率评分;z%为用户对版本的投诉频率评分的加权值。
步骤202、节点控制装置根据网络服务器实际数量、新版本内容文件大小总和以及节点控制装置所占用的最大网络带宽确定所述第一层级目标服务器节点的数量。
其中,所述第一层级目标服务器节点的数量N1为:
N1′>N实际;或者N1=N实际,N1′≤N实际;A为所述节点控制装置所占用的最大网络带宽;B为新版本内容文件大小总和;N1′为A除以B,并向下取整得到的结果;N实际为所述网络服务器实际数量。
步骤203、节点控制装置以随机方式在网络服务器中确定第一层级目标服务器清单。
步骤204、节点控制装置确定第n层级目标服务器节点的数量。
其中,所述第n层级目标服务器节点的数量Nn为:
Nn=N1 n,或者,N实际为所述网络服务器实际数量。
步骤205、节点控制装置以随机方式在网络服务器中确定第n层级目标服务器清单。
步骤206、节点控制装置根据各层级目标服务器清单生成版本推送策略。
版本推送策略一般定义了分层渐进的版本推送方式,从而缓解推送新版本时可能引起的网络瞬间流量激增。
步骤207、节点控制装置将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第一层级目标服务器中的各第一层级目标服务器节点。
步骤208、所述第一层级目标服务器节点在第一层级目标服务器节点本地部署所述新版本。
步骤209、所述第一层级目标服务器节点继续推送所述新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点。
其中,n≥2;第n层级目标服务器为多层级目标服务器的最后一层级。
步骤210、各层级目标服务器节点在各层级目标服务器节点本地部署所述新版本。在步骤210之后继续执行步骤211。
此处,在步骤207至步骤210中,可能存在推送结果反馈的方式,如图3所示,该推送结果反馈的方式为:
步骤301、各层级目标服务器节点将其接收所述新版本内容、版本生效策略和版本推送策略的推送结果反馈到各层级目标服务器节点的上一层数据推送端。
其中,所述上一层数据推送端包括各层级目标服务器节点或第一层级目标服务器节点对应的节点控制装置。
在步骤301之后,执行步骤302或者步骤304。
步骤302、若上一层数据推送端在一预先设置的超时时间内接受到所述推送结果,根据各推送结果判断上一层数据推送端向各层级目标服务器节点推送所述新版本内容、版本生效策略和版本推送策略是否成功。
步骤303、若所述推送结果为推送失败,则上一层数据推送端记录推送失败的目标服务器节点,形成推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器。在步骤303之后可以返回步骤301。
步骤304、若上一层数据推送端在预先设置的超时时间内未接收到所述推送结果,判断上一层数据推送端向未反馈推送结果的目标服务器节点的推送次数是否超过一预设次数阈值。
步骤305、若所述推送次数小于所述预设次数阈值,上一层数据推送端继续向未反馈推送结果的目标服务器节点推送一次所述新版本内容、版本生效策略和版本推送策略。
步骤306、若所述推送次数大于等于所述预设次数阈值,上一层数据推送端将未反馈推送结果的目标服务器节点放入推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器。在步骤306之后,可以返回步骤301。
步骤211、各层级目标服务器节点根据所述版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程。
步骤212、各层级目标服务器节点根据所述采集线程采集新版本内容的评估指标。
在步骤212之后,可执行步骤213或者步骤217。
步骤213、各层级目标服务器节点获取历史版本内容的评估指标。
步骤214、各层级目标服务器节点根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标。在步骤214之后,执行步骤215或者步骤216。
步骤215、若新版本内容的评估指标大于所述历史版本内容的评估指标,记录采用新版本内容的评估结果,生成包含待发布的新版本内容的单版本执行策略。
步骤216、若新版本内容的评估指标小于所述历史版本内容的评估指标,记录采用旧版本内容的评估结果,生成包含待发布的旧版本内容的单版本执行策略。
步骤217、各层级目标服务器节点不比较新版本内容的评估指标与历史版本内容的评估指标,生成包含多个待发布的版本内容的多版本执行策略。
在步骤215、216、217之后,可以执行步骤218。
步骤218、各层级目标服务器节点根据单版本执行策略和多版本执行策略,确定在目标服务器节点上是否需要多版本并发执行。在步骤218之后,执行步骤219或者步骤220。
步骤219、若确定在目标服务器节点上需要多版本并发执行,目标服务器节点根据多版本执行策略中的多个待发布的版本内容,为每个版本启动一个线程,并注册版本线程信息,并启动采集线程采集各版本的评估指标。
步骤220、若确定在目标服务器节点上需要单版本执行,目标服务器节点获取已经注册的注册版本线程信息,终止所有与单版本执行策略中的版本不一致的版本线程,删除与单版本执行策略中的版本不一致的版本的注册版本线程信息,关闭与单版本执行策略中的版本不一致的版本的采集线程。
本发明实施例提供的一种分布式软件版本发布方法,节点控制装置可将新版本内容、版本生效策略和版本推送策略发送到第一层级目标服务器中的各第一层级目标服务器节点;之后,第一层级目标服务器节点在第一层级目标服务器节点本地部署新版本;继续推送新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点;这样,各层级目标服务器节点在各层级目标服务器节点本地部署新版本;根据版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据采集线程采集新版本内容的评估指标;根据版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;根据待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。可见,本发明通过多版本并行机制实现了版本更新过程中的不间断服务,并实现公正评估新版本各项性能指标;通过服务器间分层渐进的版本推送方式解决了版本发布过程中单点网络开销过大的问题;通过预先设定版本生效策略实现了自动化的版本更新与回退,从而提供了一种高可用、低消耗的分布式版本发布方式,可以解决当前软件版本发布影响系统稳定、服务器网络流量激增且难以实现自动操作发布的问题。
对应于上述图1、图2和图3所示的方法实施例,如图4所示,本发明实施例提供一种分布式软件版本发布系统40,包括节点控制装置401和预先设置的多层级目标服务器402,每层级目标服务器402包括多个目标服务器节点403。
该节点控制装置401,用于获取新版本内容与用户自定义的版本生效策略;生成各层级目标服务器清单,并根据所述各层级目标服务器清单生成版本推送策略;将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第一层级目标服务器404中的各第一层级目标服务器节点405。
第一层级目标服务器节点405,用于在第一层级目标服务器节点本地部署所述新版本;继续推送所述新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器406中的各第n层级目标服务器节点407;其中,n≥2;其中,第n层级目标服务器为多层级目标服务器的最后一层级。
各层级目标服务器节点403,用于在各层级目标服务器节点本地部署所述新版本;根据所述版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据所述采集线程采集新版本内容的评估指标;根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;根据所述待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。
另外,所述节点控制装置401,具体用于:
根据网络服务器实际数量、新版本内容文件大小总和以及节点控制装置所占用的最大网络带宽确定所述第一层级目标服务器节点的数量。
其中,所述第一层级目标服务器节点的数量N1为:
N1′>N实际;或者N1=N实际,N1′≤N实际;A为所述节点控制装置所占用的最大网络带宽;B为新版本内容文件大小总和;N1′为A除以B,并向下取整得到的结果;N实际为所述网络服务器实际数量。
以随机方式在网络服务器中确定第一层级目标服务器清单。
确定第n层级目标服务器节点的数量;其中,所述第n层级目标服务器节点的数量Nn为:
Nn=N1 n,或者,N实际为所述网络服务器实际数量。
以随机方式在网络服务器中确定第n层级目标服务器清单。
此外,各层级目标服务器节点403,还用于将其接收所述新版本内容、版本生效策略和版本推送策略的推送结果反馈到各层级目标服务器节点的上一层数据推送端;所述上一层数据推送端包括各层级目标服务器节点或第一层级目标服务器节点对应的节点控制装置。
在上一层数据推送端在一预先设置的超时时间内接受到所述推送结果时,上一层数据推送端根据各推送结果判断上一层数据推送端向各层级目标服务器节点推送所述新版本内容、版本生效策略和版本推送策略是否成功。
在所述推送结果为推送失败时,上一层数据推送端记录推送失败的目标服务器节点,形成推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器。
在上一层数据推送端在预先设置的超时时间内未接收到所述推送结果时,判断上一层数据推送端向未反馈推送结果的目标服务器节点的推送次数是否超过一预设次数阈值。
在所述推送次数小于所述预设次数阈值时,上一层数据推送端继续向未反馈推送结果的目标服务器节点推送一次所述新版本内容、版本生效策略和版本推送策略。
在所述推送次数大于等于所述预设次数阈值时,上一层数据推送端将未反馈推送结果的目标服务器节点放入推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器。
此外,各层级目标服务器节点403,具体用于获取历史版本内容的评估指标;根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标;在新版本内容的评估指标大于所述历史版本内容的评估指标时,记录采用新版本内容的评估结果,生成包含待发布的新版本内容的单版本执行策略;在新版本内容的评估指标小于所述历史版本内容的评估指标时,记录采用旧版本内容的评估结果,生成包含待发布的旧版本内容的单版本执行策略。
此外,各层级目标服务器节点403,还用于不比较新版本内容的评估指标与历史版本内容的评估指标,生成包含多个待发布的版本内容的多版本执行策略。
进一步的,各层级目标服务器节点403,还用于根据单版本执行策略和多版本执行策略,确定在目标服务器节点上是否需要多版本并发执行。
在确定在目标服务器节点上需要多版本并发执行时,目标服务器节点403根据多版本执行策略中的多个待发布的版本内容,为每个版本启动一个线程,并注册版本线程信息,并启动采集线程采集各版本的评估指标。
在确定在目标服务器节点上需要单版本执行时,目标服务器节点403获取已经注册的注册版本线程信息,终止所有与单版本执行策略中的版本不一致的版本线程,删除与单版本执行策略中的版本不一致的版本的注册版本线程信息,关闭与单版本执行策略中的版本不一致的版本的采集线程。
具体的,所述版本生效策略包括版本的各评分项和各评分项加权值;版本的各评分项包括:CPU平均占用率评分、内存平均占用量评分、用户对版本的投诉频率评分。
所述分布式软件版本发布系统40,还用于根据版本的各评分项和各评分项加权值形成版本的评估指标;其中,第i个版本的评估指标为:
Si=Ci×x%+Di×y%+Ei×z%
Ci为第i个版本的CPU平均占用率评分;x%为CPU平均占用率评分的加权值;Di为第i个版本的内存平均占用量评分;y%为内存平均占用量评分的加权值;Ei为用户对版本的投诉频率评分;z%为用户对版本的投诉频率评分的加权值。
本发明实施例提供的一种分布式软件版本发布系统的具体实现方式可以参见上述的方法实施例,此处不再赘述。
本发明实施例提供的一种分布式软件版本发布系统,包括节点控制装置和预先设置的多层级目标服务器,每层级目标服务器包括多个目标服务器节点;节点控制装置可将新版本内容、版本生效策略和版本推送策略发送到第一层级目标服务器中的各第一层级目标服务器节点;之后,第一层级目标服务器节点在第一层级目标服务器节点本地部署新版本;继续推送新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点;这样,各层级目标服务器节点在各层级目标服务器节点本地部署新版本;根据版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据采集线程采集新版本内容的评估指标;根据版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;根据待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。可见,本发明通过多版本并行机制实现了版本更新过程中的不间断服务,并实现公正评估新版本各项性能指标;通过服务器间分层渐进的版本推送方式解决了版本发布过程中单点网络开销过大的问题;通过预先设定版本生效策略实现了自动化的版本更新与回退,从而提供了一种高可用、低消耗的分布式版本发布方式,可以解决当前软件版本发布影响系统稳定、服务器网络流量激增且难以实现自动操作发布的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
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=N1 n,或者,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%为CPU平均占用率评分的加权值;Di为第i个版本的内存平均占用量评分;y%为内存平均占用量评分的加权值;Ei为用户对版本的投诉频率评分;z%为用户对版本的投诉频率评分的加权值。
8.一种分布式软件版本发布系统,其特征在于,包括节点控制装置和预先设置的多层级目标服务器,每层级目标服务器包括多个目标服务器节点;
节点控制装置,用于获取新版本内容与用户自定义的版本生效策略;生成各层级目标服务器清单,并根据所述各层级目标服务器清单生成版本推送策略;将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第一层级目标服务器中的各第一层级目标服务器节点;
第一层级目标服务器节点,用于在第一层级目标服务器节点本地部署所述新版本;继续推送所述新版本内容、版本生效策略和版本推送策略,使得多层级目标服务器中的第n-1层级目标服务器中的各第n-1层级目标服务器节点将所述新版本内容、版本生效策略和版本推送策略发送到多层级目标服务器中的第n层级目标服务器中的各第n层级目标服务器节点;其中,n≥2;其中,第n层级目标服务器为多层级目标服务器的最后一层级;
各层级目标服务器节点,用于在各层级目标服务器节点本地部署所述新版本;根据所述版本生效策略启动一个或多个版本运行线程,并为每一个版本启动对应的采集线程;根据所述采集线程采集新版本内容的评估指标;根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标,确定待发布的版本内容;根据所述待发布的版本内容终止其他版本的运行线程,保留待发布的版本的运行线程。
9.根据权利要求8所述的分布式软件版本发布系统,其特征在于,所述节点控制装置,具体用于:
根据网络服务器实际数量、新版本内容文件大小总和以及节点控制装置所占用的最大网络带宽确定所述第一层级目标服务器节点的数量;
其中,所述第一层级目标服务器节点的数量N1为:
N′1>N实际;或者N1=N实际,N′1≤N实际;A为所述节点控制装置所占用的最大网络带宽;B为新版本内容文件大小总和;N′1为A除以B,并向下取整得到的结果;N实际为所述网络服务器实际数量;
以随机方式在网络服务器中确定第一层级目标服务器清单;
确定第n层级目标服务器节点的数量;其中,所述第n层级目标服务器节点的数量Nn为:
Nn=N1 n,或者,N实际为所述网络服务器实际数量;
以随机方式在网络服务器中确定第n层级目标服务器清单。
10.根据权利要求9所述的分布式软件版本发布系统,其特征在于,各层级目标服务器节点,还用于将其接收所述新版本内容、版本生效策略和版本推送策略的推送结果反馈到各层级目标服务器节点的上一层数据推送端;所述上一层数据推送端包括各层级目标服务器节点或第一层级目标服务器节点对应的节点控制装置;
在上一层数据推送端在一预先设置的超时时间内接受到所述推送结果时,上一层数据推送端根据各推送结果判断上一层数据推送端向各层级目标服务器节点推送所述新版本内容、版本生效策略和版本推送策略是否成功;
在所述推送结果为推送失败时,上一层数据推送端记录推送失败的目标服务器节点,形成推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器;
在上一层数据推送端在预先设置的超时时间内未接收到所述推送结果时,判断上一层数据推送端向未反馈推送结果的目标服务器节点的推送次数是否超过一预设次数阈值;
在所述推送次数小于所述预设次数阈值时,上一层数据推送端继续向未反馈推送结果的目标服务器节点推送一次所述新版本内容、版本生效策略和版本推送策略;
在所述推送次数大于等于所述预设次数阈值时,上一层数据推送端将未反馈推送结果的目标服务器节点放入推送失败清单,并将推送失败清单中的目标服务器节点随机替换为其他网络服务器。
11.根据权利要求10所述的分布式软件版本发布系统,其特征在于,
各层级目标服务器节点,具体用于获取历史版本内容的评估指标;根据所述版本生效策略,比较新版本内容的评估指标与历史版本内容的评估指标;在新版本内容的评估指标大于所述历史版本内容的评估指标时,记录采用新版本内容的评估结果,生成包含待发布的新版本内容的单版本执行策略;在新版本内容的评估指标小于所述历史版本内容的评估指标时,记录采用旧版本内容的评估结果,生成包含待发布的旧版本内容的单版本执行策略。
12.根据权利要求11所述的分布式软件版本发布系统,其特征在于,各层级目标服务器节点,还用于不比较新版本内容的评估指标与历史版本内容的评估指标,生成包含多个待发布的版本内容的多版本执行策略。
13.根据权利要求12所述的分布式软件版本发布系统,其特征在于,各层级目标服务器节点,还用于根据单版本执行策略和多版本执行策略,确定在目标服务器节点上是否需要多版本并发执行;
在确定在目标服务器节点上需要多版本并发执行时,目标服务器节点根据多版本执行策略中的多个待发布的版本内容,为每个版本启动一个线程,并注册版本线程信息,并启动采集线程采集各版本的评估指标;
在确定在目标服务器节点上需要单版本执行时,目标服务器节点获取已经注册的注册版本线程信息,终止所有与单版本执行策略中的版本不一致的版本线程,删除与单版本执行策略中的版本不一致的版本的注册版本线程信息,关闭与单版本执行策略中的版本不一致的版本的采集线程。
14.根据权利要求13所述的分布式软件版本发布系统,其特征在于,所述版本生效策略包括版本的各评分项和各评分项加权值;版本的各评分项包括:CPU平均占用率评分、内存平均占用量评分、用户对版本的投诉频率评分;
所述分布式软件版本发布系统,还用于根据版本的各评分项和各评分项加权值形成版本的评估指标;其中,第i个版本的评估指标为:
Si=Ci×x%+Di×y%+Ei×z%
Ci为第i个版本的CPU平均占用率评分;x%为CPU平均占用率评分的加权值;Di为第i个版本的内存平均占用量评分;y%为内存平均占用量评分的加权值;Ei为用户对版本的投诉频率评分;z%为用户对版本的投诉频率评分的加权值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610878474.5A CN106453549B (zh) | 2016-10-08 | 2016-10-08 | 一种分布式软件版本发布方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610878474.5A CN106453549B (zh) | 2016-10-08 | 2016-10-08 | 一种分布式软件版本发布方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106453549A true CN106453549A (zh) | 2017-02-22 |
CN106453549B CN106453549B (zh) | 2019-09-13 |
Family
ID=58171719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610878474.5A Active CN106453549B (zh) | 2016-10-08 | 2016-10-08 | 一种分布式软件版本发布方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106453549B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109462706A (zh) * | 2018-12-20 | 2019-03-12 | 中国银行股份有限公司 | 一种处理方法及装置 |
CN109634638A (zh) * | 2018-12-17 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种集群软件升级方法、装置、设备及介质 |
CN109901997A (zh) * | 2019-01-29 | 2019-06-18 | 平安科技(深圳)有限公司 | 金融系统升级方法及装置、电子设备、存储介质 |
CN109933501A (zh) * | 2017-12-15 | 2019-06-25 | 中国移动通信集团浙江有限公司 | 一种应用系统的容量评估方法及装置 |
CN110007940A (zh) * | 2018-11-12 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 灰度发布的验证方法、系统、服务器及可读存储介质 |
CN110998539A (zh) * | 2017-06-16 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 系统更新的性能影响分析 |
CN111258626A (zh) * | 2020-03-25 | 2020-06-09 | 平安养老保险股份有限公司 | 软件版本的质量控制方法、装置、计算机设备及存储介质 |
CN112036774A (zh) * | 2020-10-09 | 2020-12-04 | 北京嘀嘀无限科技发展有限公司 | 服务策略的评估方法、装置、设备及存储介质 |
CN112181443A (zh) * | 2019-07-01 | 2021-01-05 | 中国移动通信集团浙江有限公司 | 服务的自动化部署方法、装置及电子设备 |
CN112527611A (zh) * | 2020-09-24 | 2021-03-19 | 上海趣蕴网络科技有限公司 | 一种产品健康度评估方法及系统 |
WO2021072742A1 (en) * | 2019-10-18 | 2021-04-22 | Splunk Technology Consulting (Beijing) Co., Ltd. | Assessing an impact of an upgrade to computer software |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1296220A (zh) * | 1999-11-01 | 2001-05-23 | 城市集团发展中心有限公司 | 安装和/或升级自助金融交易终端的软件的方法和系统 |
CN1758607A (zh) * | 2005-11-10 | 2006-04-12 | 中国工商银行 | 分布式业务系统中的软件版本升级系统及其方法 |
CN101464888A (zh) * | 2008-12-29 | 2009-06-24 | 深圳市迈科龙电子有限公司 | 信息系统平滑升级的装置和方法 |
CN102761599A (zh) * | 2012-05-10 | 2012-10-31 | Ut斯达康通讯有限公司 | 一种分布式系统中升级文件分发方法 |
CN103873279A (zh) * | 2012-12-13 | 2014-06-18 | 腾讯科技(深圳)有限公司 | 一种服务器管理方法,及装置 |
CN104022913A (zh) * | 2013-12-18 | 2014-09-03 | 深圳市腾讯计算机系统有限公司 | 用于数据集群的测试方法和装置 |
CN105635216A (zh) * | 2014-11-03 | 2016-06-01 | 华为软件技术有限公司 | 分布式应用的升级方法、设备和分布式系统 |
CN105830017A (zh) * | 2013-11-19 | 2016-08-03 | 电子湾有限公司 | 零停机时间部署和回滚 |
-
2016
- 2016-10-08 CN CN201610878474.5A patent/CN106453549B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1296220A (zh) * | 1999-11-01 | 2001-05-23 | 城市集团发展中心有限公司 | 安装和/或升级自助金融交易终端的软件的方法和系统 |
CN1758607A (zh) * | 2005-11-10 | 2006-04-12 | 中国工商银行 | 分布式业务系统中的软件版本升级系统及其方法 |
CN101464888A (zh) * | 2008-12-29 | 2009-06-24 | 深圳市迈科龙电子有限公司 | 信息系统平滑升级的装置和方法 |
CN102761599A (zh) * | 2012-05-10 | 2012-10-31 | Ut斯达康通讯有限公司 | 一种分布式系统中升级文件分发方法 |
CN103873279A (zh) * | 2012-12-13 | 2014-06-18 | 腾讯科技(深圳)有限公司 | 一种服务器管理方法,及装置 |
CN105830017A (zh) * | 2013-11-19 | 2016-08-03 | 电子湾有限公司 | 零停机时间部署和回滚 |
CN104022913A (zh) * | 2013-12-18 | 2014-09-03 | 深圳市腾讯计算机系统有限公司 | 用于数据集群的测试方法和装置 |
CN105635216A (zh) * | 2014-11-03 | 2016-06-01 | 华为软件技术有限公司 | 分布式应用的升级方法、设备和分布式系统 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110998539A (zh) * | 2017-06-16 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 系统更新的性能影响分析 |
CN110998539B (zh) * | 2017-06-16 | 2023-06-13 | 阿里巴巴集团控股有限公司 | 系统更新的性能影响分析 |
CN109933501B (zh) * | 2017-12-15 | 2022-08-23 | 中国移动通信集团浙江有限公司 | 一种应用系统的容量评估方法及装置 |
CN109933501A (zh) * | 2017-12-15 | 2019-06-25 | 中国移动通信集团浙江有限公司 | 一种应用系统的容量评估方法及装置 |
CN110007940B (zh) * | 2018-11-12 | 2022-08-09 | 创新先进技术有限公司 | 灰度发布的验证方法、系统、服务器及可读存储介质 |
CN110007940A (zh) * | 2018-11-12 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 灰度发布的验证方法、系统、服务器及可读存储介质 |
CN109634638B (zh) * | 2018-12-17 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种集群软件升级方法、装置、设备及介质 |
CN109634638A (zh) * | 2018-12-17 | 2019-04-16 | 郑州云海信息技术有限公司 | 一种集群软件升级方法、装置、设备及介质 |
CN109462706A (zh) * | 2018-12-20 | 2019-03-12 | 中国银行股份有限公司 | 一种处理方法及装置 |
CN109901997B (zh) * | 2019-01-29 | 2023-08-11 | 平安科技(深圳)有限公司 | 金融系统升级方法及装置、电子设备、存储介质 |
CN109901997A (zh) * | 2019-01-29 | 2019-06-18 | 平安科技(深圳)有限公司 | 金融系统升级方法及装置、电子设备、存储介质 |
CN112181443A (zh) * | 2019-07-01 | 2021-01-05 | 中国移动通信集团浙江有限公司 | 服务的自动化部署方法、装置及电子设备 |
CN112181443B (zh) * | 2019-07-01 | 2023-04-07 | 中国移动通信集团浙江有限公司 | 服务的自动化部署方法、装置及电子设备 |
WO2021072742A1 (en) * | 2019-10-18 | 2021-04-22 | Splunk Technology Consulting (Beijing) Co., Ltd. | Assessing an impact of an upgrade to computer software |
CN111258626A (zh) * | 2020-03-25 | 2020-06-09 | 平安养老保险股份有限公司 | 软件版本的质量控制方法、装置、计算机设备及存储介质 |
CN112527611A (zh) * | 2020-09-24 | 2021-03-19 | 上海趣蕴网络科技有限公司 | 一种产品健康度评估方法及系统 |
CN112036774A (zh) * | 2020-10-09 | 2020-12-04 | 北京嘀嘀无限科技发展有限公司 | 服务策略的评估方法、装置、设备及存储介质 |
CN112036774B (zh) * | 2020-10-09 | 2024-05-17 | 北京嘀嘀无限科技发展有限公司 | 服务策略的评估方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106453549B (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106453549B (zh) | 一种分布式软件版本发布方法及系统 | |
CN109194584B (zh) | 一种流量监控方法、装置、计算机设备及存储介质 | |
CN106484528B (zh) | 分布式框架中用于实现集群动态伸缩的方法及装置 | |
US7627618B2 (en) | System for managing data collection processes | |
US20150295970A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
WO2016176060A1 (en) | Balancing resources in distributed computing environments | |
CN107169009B (zh) | 一种分布式存储系统的数据分裂方法及装置 | |
US11496413B2 (en) | Allocating cloud computing resources in a cloud computing environment based on user predictability | |
US10565021B2 (en) | Automated capacity management in distributed computing systems | |
CN106803790A (zh) | 一种集群系统的升级控制方法及装置 | |
CN111258746B (zh) | 资源分配方法和服务设备 | |
CN108574645B (zh) | 一种队列调度方法及装置 | |
CN114356557A (zh) | 一种集群扩容方法及装置 | |
CN111045808A (zh) | 一种分布式网络任务调度方法及装置 | |
CN112165436A (zh) | 流量控制方法、装置及系统 | |
CN111104226A (zh) | 一种多租户服务资源的智能管理系统及方法 | |
CN109582459A (zh) | 应用的托管进程进行迁移的方法及装置 | |
CN106557371B (zh) | 一种基于边追踪的分布式系统死锁检测方法 | |
CN106775470B (zh) | 一种数据存储的方法及系统 | |
WO2024152947A1 (zh) | 一种资源分配方法、电子设备及存储介质 | |
CN111124619B (zh) | 一种面向二次调度的容器调度方法 | |
CN103248622A (zh) | 一种自动伸缩的在线视频服务质量保障方法及系统 | |
CN116401024A (zh) | 基于云计算的集群扩缩容方法、装置、设备及介质 | |
Jammal et al. | A formal model for the availability analysis of cloud deployed multi-tiered applications | |
CN107071014B (zh) | 一种资源调整方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |