CN106453549B - 一种分布式软件版本发布方法及系统 - Google Patents

一种分布式软件版本发布方法及系统 Download PDF

Info

Publication number
CN106453549B
CN106453549B CN201610878474.5A CN201610878474A CN106453549B CN 106453549 B CN106453549 B CN 106453549B CN 201610878474 A CN201610878474 A CN 201610878474A CN 106453549 B CN106453549 B CN 106453549B
Authority
CN
China
Prior art keywords
version
target server
push
content
server node
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.)
Active
Application number
CN201610878474.5A
Other languages
English (en)
Other versions
CN106453549A (zh
Inventor
雷赛龄
潘晨隐
郑文斌
沈栋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201610878474.5A priority Critical patent/CN106453549B/zh
Publication of CN106453549A publication Critical patent/CN106453549A/zh
Application granted granted Critical
Publication of CN106453549B publication Critical patent/CN106453549B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version 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 (12)

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

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 CN106453549A (zh) 2017-02-22
CN106453549B true 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)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018227548A1 (en) * 2017-06-16 2018-12-20 Alibaba Group Holding Limited Analyzing performance impact of system update
CN109933501B (zh) * 2017-12-15 2022-08-23 中国移动通信集团浙江有限公司 一种应用系统的容量评估方法及装置
CN110007940B (zh) * 2018-11-12 2022-08-09 创新先进技术有限公司 灰度发布的验证方法、系统、服务器及可读存储介质
CN109634638B (zh) * 2018-12-17 2021-10-29 郑州云海信息技术有限公司 一种集群软件升级方法、装置、设备及介质
CN109462706A (zh) * 2018-12-20 2019-03-12 中国银行股份有限公司 一种处理方法及装置
CN109901997B (zh) * 2019-01-29 2023-08-11 平安科技(深圳)有限公司 金融系统升级方法及装置、电子设备、存储介质
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 上海趣蕴网络科技有限公司 一种产品健康度评估方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
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 电子湾有限公司 零停机时间部署和回滚

Patent Citations (8)

* Cited by examiner, † Cited by third party
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 华为软件技术有限公司 分布式应用的升级方法、设备和分布式系统

Also Published As

Publication number Publication date
CN106453549A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN106453549B (zh) 一种分布式软件版本发布方法及系统
CN108090225B (zh) 数据库实例的运行方法、装置、系统及计算机可读存储介质
CN104579761B (zh) 一种基于云计算的nosql集群自动配置系统及自动配置方法
US7469285B2 (en) Generation of computer resource utilization data per computer application
CN109194584A (zh) 一种流量监控方法、装置、计算机设备及存储介质
CN107241384A (zh) 一种基于多云架构的内容分发服务资源优化调度方法
US20120324463A1 (en) System for Managing Data Collection Processes
US20150039601A1 (en) Pre-delivery of content to a user device
CN105302497B (zh) 一种缓存管理方法与系统
CN109788315A (zh) 视频转码方法、装置及系统
CN101420458B (zh) 基于内容分发网络的多媒体内容监控系统、方法及装置
IL278825A (en) Methods and system for data transfer
CN106357442A (zh) 一种服务器集群监控方法及系统
CN103970641A (zh) 一种基于容量预测技术的设备扩容方法
CN108282501A (zh) 一种云服务器资源信息同步方法、装置和系统
CN110191160A (zh) 一种并发控制方法和装置
CN104077640B (zh) 网络媒介信息的投放控制系统和方法
CN108376103A (zh) 一种云平台的资源平衡控制方法及服务器
da Silva et al. A science-gateway workload archive to study pilot jobs, user activity, bag of tasks, task sub-steps, and workflow executions
CN109189431A (zh) 一种客户端升级方法、装置、设备及可读存储介质
CN107924345A (zh) 用于度量的聚合测量结果的数据存储区
CN107885859A (zh) 一种文件个数配额的方法、装置和计算机可读存储介质
CN108280007A (zh) 一种用于评估设备资源利用率的方法和装置
CN103957230B (zh) 一种客户端用户数确定方法、服务器、客户端及系统
CN109361739A (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