一种软件升级的灰度发布方法及系统技术方案

技术编号:16818800 阅读:77 留言:0更新日期:2017-12-16 12:06
一种软件升级的灰度发布方法和系统,该系统先为灰度发布过程的多个阶段配置对应的观察时间的参数,其中,第一个阶段对应的观察时间最长;然后依次进行所述灰度发布过程的多个阶段,在每一阶段对部分待升级的软件实例进行升级,并基于该阶段对应的观察时间对新版本的软件实例的运行状态进行观察,以确定所述软件实例是否升级成功。本申请在灰度发布的第一个阶段使用更长的观察时间,使发布更加稳健,而在后续阶段加快观察时间,可以使正确的版本尽快完成发布。

A method and system for distributing gray level of software upgrade

Gray released a software upgrade method and system, the system parameters, multiple stage configuration corresponding to a gray release process of the observed time in which the first stage corresponds to the observation of the longest time; followed by multiple stages of the gray release process, in each stage of the software to be part of an example upgrade to upgrade, and based on the running state of the corresponding stage of the observation time of the new version of the software case were observed to determine the software instance whether successful upgrade. This application uses longer observation time in the first stage of grayscale release, making publishing more robust, and accelerating observation time in subsequent stages, enabling the correct version to be released as soon as possible.

【技术实现步骤摘要】
一种软件升级的灰度发布方法及系统
本专利技术涉及一种计算机领域,更具体地,涉及一种软件升级的灰度发布方法及相应的灰度发布系统。
技术介绍
灰度发布是在黑与白之间,能够平滑过渡的一种发布方式。AB测试(test)就是一种灰度发布方式,先让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题。灰度发布可用于将软件从旧版本逐步升级到新版本的过程。软件升级的灰度发布过程分为多个阶段依次升级,前一阶段升级成功后,再对下一组服务器升级,如果某一阶段升级失败,会停止灰度发布过程,将服务器上的服务回滚到升级前的版本。目前,在灰度发布过程的各个阶段,对软件实例升级是否成功的观察方式是相同的,对有功能缺陷的版本的影响范围尚不能做到有效控制。
技术实现思路
有鉴于此,本专利技术提供了以下方案。一种软件升级的灰度发布方法,应用于灰度发布系统,包括:为灰度发布过程的多个阶段配置对应的观察时间的参数,其中,第一个阶段对应的观察时间最长;依次进行所述灰度发布过程的多个阶段,在每一阶段对部分待升级的软件实例进行升级,并基于该阶段对应的观察时间对新版本的软件实例的运行状态进行观察,以确定所述软件实例是否升级成功。一种灰度发布系统,包括参数配置模块和灰度发布模块,其中:所述参数配置模块,用于为灰度发布过程的多个阶段配置对应的观察时间的参数,其中,第一个阶段对应的观察时间最长;所述灰度发布模块,用于依次进行所述灰度发布过程的多个阶段,在每一阶段对部分待升级的软件实例进行升级,并基于该阶段对应的观察时间对新版本的软件实例的运行状态进行观察,以确定所述软件实例是否升级成功。上述软件升级的灰度发布方法和系统实现了“慢启动”模式的灰度发布,在灰度发布的第一个阶段使用更长的观察时间,使发布更加稳健,而在后续阶段加快观察时间,可以使正确的版本尽快完成发布。附图说明图1是本专利技术实施例一灰度发布方法的流程图;图2是本专利技术实施例一灰度发布系统的模块图;图3是本专利技术应用示例的系统架构图(只列出与灰度发布相关部分);图4是本专利技术应用示例软件实例状态跳转的示意图;图5A、图5B和图5C是软件实例状态变化的几种情况的示意图;图6是本专利技术应用示例慢启动模式的灰度发布过程的示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。实施例一软件部署到机器上的实例称为软件实例,软件升级具体是对部署在机器(如服务器)上的软件实例的升级。本实施例的灰度发布系统以服务器集群的管理系统为例,但本专利技术不局限于此。在灰度发布过程的各个阶段,管理系统需要对服务器上新版本的软件实例的运行状态进行观察,以确定软件实例是否升级成功。现有技术中,各阶段都是使用相同的配置参数,观察的时间都是一样的。而灰度发布是为了保证系统的稳定性,如果在灰度发布的第一个阶段就可以发现新版本的问题而进行调整,就可以减少问题的影响范围。因而如果灰度发布的第一个阶段观察时间更长,可以让潜在的问题得以显露,有效控制有功能缺陷的版本的影响范围。而当足够多的服务器上的软件实例在第一个阶段完成升级并工作正常后,可以恢复正常的升级速度来完成其他服务器上软件实例的升级,将正确的版本部署到服务器集群上。文中将其称为“慢启动”模式的灰度发布。为了支持“慢启动”模式,本实施例提供了一种自动化的“慢启动”模式的灰度发布方法,如图1所示,包括:步骤110,为灰度发布过程的多个阶段配置对应的观察时间的参数,其中,第一个阶段对应的观察时间最长;本实施例中,所述灰度发布过程包括两个阶段,其中第一个阶段为慢启动阶段,第二个阶段为正常阶段。但在其他实施例中,灰度发布过程也可以包括三个以上的阶段,各阶段对应的观察时间可以不同,也可以有部分阶段对应的观察时间相同。本实施例中,所述观察时间的参数包括:观察超时时间Tout和状态正常时间窗口Twin。本实施例中,服务器集群的管理系统进行灰度发布时,可以根据配置信息确定每一阶段需要进行软件实例升级的服务器,并对所述服务器上待升级的软件实例进行升级。其中,所述配置信息包括以下一种或多种信息:每一阶段需要进行软件实例升级的服务器的数量;每一阶段需要进行软件实例升级的服务器占所有需要进行软件实例升级的服务器的比例;每一阶段需要进行软件实例升级的服务器的标识信息;每一阶段需要进行软件实例升级的服务器集合的标识信息。例如,在配置了第一个阶段需要进行软件实例升级的服务器的数量时,管理系统可以随机从服务器集群中选择相应数量的服务器,在第一个阶段对这些选择的服务器上的软件实例进行升级。又如,配置了第一个阶段需要进行软件实例升级的服务器集合的标识信息时(例如采用某个机架的标识,代表该机架上的所有服务器),管理系统则在第一个阶段对所述服务器集合中服务器上的软件实例进行升级。以上配置信息也可以组合使用,例如,对不同的阶段使用不同的配置信息,或者在同一阶段,除配置相应的标识信息外,还可以按照配置的数量或比例随机选择部分服务器等。另外,灰度发布过程的多个阶段中有一个阶段的配置信息可以由其他阶段推定,即隐含在其他阶段的配置信息中。步骤120,依次进行所述灰度发布过程的多个阶段,在每一阶段对部分待升级的软件实例进行升级,并基于该阶段对应的观察时间对新版本的软件实例的运行状态进行观察,以确定所述软件实例是否升级成功。本实施例中,基于该阶段对应的观察时间对新版本的软件实例的运行状态进行观察,以确定所述软件实例是否升级成功,包括:在一软件实例更新为新版本并运行后,启动定时时长为Tout的第一定时器和定时时长为Twin的第二定时器,Twin≤Tout;在所述第二定时器每次超时前,观察是否收到对该软件实例的报错,如果没有收到,则判定该软件实例升级成功,结束;如果收到,在对该软件实例的报错停止后重新启动所述第二定时器并继续观察;如果所述第一定时器超时前该软件实例没有升级成功,则判定该软件实例升级失败。本实施例中,所述第一个阶段对应的观察时间最长,是指第一个阶段和所述多个阶段中的其他阶段相比,对应的Twin较大。Twin较大意味着在更大的时间窗口观察是否收到对软件实例的报错,在该更大的时间窗口没有收到报错时才会判定为软件实例升级成功,这使得软件实例必须有更长的时间不报错才能升级成功。观察时间最长意味着软件实例启动后不出错的时间更长才能升级成功,在有多个这使得第一个阶段的发布更加稳健,可以及时发现升级版本的缺陷,减少有缺陷的版本的影响范围。应当说明的是,上述Tout和Twin可以有其他等同的配置方式,例如,配置Twin和使用Twin进行观察的次数N,这相当于将Tout配置为N×Twin。又如,只使用一个时间参数T,如果在T超时前收到对软件实例的报错,则判定该软件实例升级成功,否则判决该软件实例升级失败。这相当于将Tout和Twin配置为相等的情况。此外,还可以采用其他的配置方式如为观察过程配置多个不同的Twin等,对于观察时间的具体参数本专利技术并不局限。本实施例中,依次进行所述灰度发布过程的本文档来自技高网...
一种软件升级的灰度发布方法及系统

【技术保护点】
一种软件升级的灰度发布方法,应用于灰度发布系统,包括:为灰度发布过程的多个阶段配置对应的观察时间的参数,其中,第一个阶段对应的观察时间最长;依次进行所述灰度发布过程的多个阶段,在每一阶段对部分待升级的软件实例进行升级,并基于该阶段对应的观察时间对新版本的软件实例的运行状态进行观察,以确定所述软件实例是否升级成功。

【技术特征摘要】
1.一种软件升级的灰度发布方法,应用于灰度发布系统,包括:为灰度发布过程的多个阶段配置对应的观察时间的参数,其中,第一个阶段对应的观察时间最长;依次进行所述灰度发布过程的多个阶段,在每一阶段对部分待升级的软件实例进行升级,并基于该阶段对应的观察时间对新版本的软件实例的运行状态进行观察,以确定所述软件实例是否升级成功。2.如权利要求1所述的方法,其特征在于:所述观察时间的参数包括:观察超时时间Tout和状态正常时间窗口Twin;所述基于该阶段对应的观察时间对新版本的软件实例的运行状态进行观察,以确定所述软件实例是否升级成功,包括:在一软件实例更新为新版本并运行后,启动定时时长为Tout的第一定时器和定时时长为Twin的第二定时器,Twin≤Tout;在所述第二定时器每次超时前,观察是否收到对该软件实例的报错,如果没有收到,则判定该软件实例升级成功,结束;如果收到,在对该软件实例的报错停止后重新启动所述第二定时器并继续观察;如果所述第一定时器超时前该软件实例没有升级成功,则判定该软件实例升级失败。3.如权利要求2所述的方法,其特征在于:所述第一个阶段对应的观察时间最长,是指第一个阶段和所述多个阶段中的其他阶段相比,对应的Twin最大。4.如权利要求1至3中任一所述的方法,其特征在于:所述依次进行所述灰度发布过程的多个阶段,包括:在所述灰度发布过程的前一阶段升级成功后,再进行后一阶段的升级;其中,一个阶段升级成功指在该阶段升级的所有软件实例中有预定比例的软件实例升级成功,或者指有预定数量的软件实例在该阶段升级成功。5.如权利要求4所述的方法,其特征在于:所述灰度发布过程包括两个阶段,其中第一个阶段为慢启动阶段,第二个阶段为正常阶段。6.如权利要求1至3、5中任一所述的方法,其特征在于:所述灰度发布系统是服务器集群的管理系统;所述在每一阶段对部分待升级的软件实例进行升级,包括:根据配置信息,确定每一阶段需要进行软件实例升级的服务器,对所述服务器上待升级的软件实例进行升级,其中,所述配置信息包括以下一种或多种信息:每一阶段需要进行软件实例升级的服务器的数量;每一阶段需要进行软件实例升级的服务器占所有需要进行软件实例升级的服务器的比例;每一阶段需要进行软件实例升级的服务器的标识信息;每一阶段需要进行软件实例升级的服务器集合的标识信息。7.一种灰度发布系统,其特征在于,包括参数配置模块和灰度发布模块,其中:所述参数配置模块,...

【专利技术属性】
技术研发人员:黄江伟杨国强全良添
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1