CN112181475A - 一种灰度发布方法及装置 - Google Patents
一种灰度发布方法及装置 Download PDFInfo
- Publication number
- CN112181475A CN112181475A CN201910600860.1A CN201910600860A CN112181475A CN 112181475 A CN112181475 A CN 112181475A CN 201910600860 A CN201910600860 A CN 201910600860A CN 112181475 A CN112181475 A CN 112181475A
- Authority
- CN
- China
- Prior art keywords
- version
- gray level
- gray
- client
- service
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Abstract
本发明公开了一种灰度发布方法及装置,通过使用灰度发布,可以对新功能进行实际客户的验证,提高了系统的可靠性。同时基于nginx的灰度发布过程,避免了在客户使用的服务上进行启动和更新,只通过修改分发策略进行版本的替换,减少了客户中断时间,可以实现无缝升级。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种灰度发布方法及装置。
背景技术
灰度发布作为一种在系统应用发布过程中能平滑从老版本切换到新版的发布控制方法,在现今大型后台应用系统发布、手机等终端设备系统、手机应用APP等系统应用发布过程中都是经常使用的方式。
系统发布过程中比较难解决的问题主要有新老系统切换时如何实现平滑切换,也既灰度发布,如何方便精细化控制切换过程。
目前的灰度发布方案主要部署多个不同版本的线上环境,在接入层分发不同的请求到不同的环境中。
nginx作为web接入层,提供了配置策略进行分发的能力,同时在更新分发策略时可以优雅重启,避免业务中断。nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。
灰度发布是指在当前版本和新的灰度测试版本之间平滑过渡的一种版本发布方式,可以保证系统的稳定。
目前的灰度发布方法可以先部署多个不同的版本,让部分客户体验灰度测试版本,经过客户充分验证后,再全量发布。如果使用过程中版本出现问题,修复后重新灰度,直到没有明显问题,再全量发布。
针对于企业服务的灰度发布,一般会根据不同客户的需求分组进行灰度发布。因为企业客户会有定制需求,某一客户的定制版本需要优先让该客户进行体验,体验过程中可能根据客户的要求进行修改,客户使用满意后再进行全量发布。
发明内容
本发明提供一种避免了在真实客户流量的服务上进行重启,减少服务中断时间的灰度发布方法。为此,本发明公开了一种灰度发布方法,所述方法包括:在新客户接入服务时设置客户的唯一ID,且每次客户访问服务的请求都携带该ID;
配置默认访问策略,将所有客户的访问分发到全量版本;
在新版本发布时确定使用该版本的客户,在灰度发布时获取系统基于客户分发的灰度策略;将携带这些客户ID的访问分发到灰度版本;
所述灰度策略确保同一用户的请求分发到同一版本的环境中,根据所述系统为每个客户设置不同的ID,每次客户发起请求会携带唯一ID,配置根据用户ID匹配环境的分发策略。
进一步地说,所述灰度版本发布需要新增客户时,调整灰度策略,增加新的客户ID,重新部署灰度版本;需要移除客户时;调整灰度客户策略,移除客户ID,重新部署灰度版本,当经过客户重新测试后进行全量发布,调整访问策略,将所有客户的访问分发到灰度版本,取消原有全量版本。
进一步地说,所述灰度策略包括:
测试阶段,用于新版本的代码经过测试验证后进入灰度阶段;
重新灰度阶段,用于在灰度过程中代码有问题,或者需要增加新的用户到灰度版本进行重新灰度;
预全量阶段,用于在灰度验证达到预期之后进行预全量;
全量阶段,经过预全量阶段后,新版本的服务已经在线上服务器上正常运行。
进一步地说,所述测试阶段在灰度服务器上启动新版本的服务,修改分发策略后,将指定的用户分发到新的服务上去,测试服务是否正常。
进一步地说,所述重新灰度阶段在原有灰度服务上更新,验证服务是否正常,若正常,则修改分发策略,若不正常,则不修改。
进一步地说,所述预全量在灰度测试版本启动服务后,修改分发策略,在灰度验证达到预期之后进行预全量。
进一步地说,所述全量阶段经过预全量阶段后,新版本的服务已经在线上服务器上正常运行,修改分发策略,将所有用户导入到新服务器上即可。
进一步地说,所述装置包括:服务部署模块、灰度配置模块与灰度控制模块,所述服务部署模块,用于部署新的灰度版本,更新已有的灰度版本,所述灰度配置模块,用于向分发服务器配置不同的灰度版本与客户之前的关联信息,所述灰度控制模块,用于将新的客户加入灰度配置或者将已有的客户移除灰度配置。
本发明的有益效果在于:
本发明公开了一种灰度发布方法及装置,通过使用灰度发布,可以对新功能进行实际客户的验证,提高了系统的可靠性。同时基于nginx的灰度发布过程,避免了在客户使用的服务上进行启动和更新,只通过修改分发策略进行版本的替换,减少了客户中断时间,可以实现无缝升级。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式结合附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种灰度发布方法及装置的工作流程图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,所述方法包括:在新客户接入服务时设置客户的唯一ID,且每次客户访问服务的请求都携带该ID;
配置默认访问策略,将所有客户的访问分发到全量版本;
在新版本发布时确定使用该版本的客户,在灰度发布时获取系统基于客户分发的灰度策略;将携带这些客户ID的访问分发到灰度版本;
灰度策略确保同一用户的请求分发到同一版本的环境中,根据所述系统为每个客户设置不同的ID,每次客户发起请求会携带唯一ID,配置根据用户ID匹配环境的分发策略。
在本实施例中,灰度版本发布需要新增客户时,调整灰度策略,增加新的客户ID,重新部署灰度版本;需要移除客户时;调整灰度客户策略,移除客户ID,重新部署灰度版本,当经过客户重新测试后进行全量发布,调整访问策略,将所有客户的访问分发到灰度版本,取消原有全量版本。
在本实施例中,灰度策略包括:
测试阶段,用于新版本的代码经过测试验证后进入灰度阶段;
重新灰度阶段,用于在灰度过程中代码有问题,或者需要增加新的用户到灰度版本进行重新灰度;
预全量阶段,用于在灰度验证达到预期之后进行预全量;
全量阶段,经过预全量阶段后,新版本的服务已经在线上服务器上正常运行。
在本实施例中,所述测试阶段在灰度服务器上启动新版本的服务,修改分发策略后,将指定的用户分发到新的服务上去,测试服务是否正常。新版本的代码经过测试验证后可以进入灰度阶段。测试阶段过程如下:在灰度的服务器上启动新版本的服务,修改nginx分发策略,将指定的用户分发到新的服务上去,测试服务是否正常。这个过程存在服务启动失败的可能,但是服务的验证是需要修改分发策略后才能进行,因此指定的用户是测试用户。
在本实施例中,重新灰度阶段在原有灰度服务上更新,验证服务是否正常,若正常,则修改分发策略,若不正常,则不修改。灰度过程中代码有问题,或者需要增加新的用户到灰度版本可以进行重新灰度。重新灰度过程如下:在原有灰度服务上更新,验证服务是否正常,修改nginx分发策略。这个过程需要使用已经在灰度版本的客户进行验证,验证通过后再修改nginx分发策略添加新的客户,减少对新客户的影响。
在本实施例中,预全量在灰度测试版本启动服务后,修改分发策略,在灰度验证达到预期之后进行预全量。在灰度验证达到预期之后可以进行预全量。预全量过程如下:在线上机器上启动新版本的服务,修改nginx分发策略,将指定的用户分发到新的服务上去,测试服务是否正常。这个过程与灰度阶段类似,主要是在灰度阶段使用的服务器与线上使用的服务器不同时使用,保证在全量之前服务是正常运行的。
在本实施例中,全量阶段经过预全量阶段后,新版本的服务已经在线上服务器上正常运行,修改分发策略,将所有用户导入到新服务器上即可。经过预全量阶段后,新版本的服务已经在线上服务器上正常运行,此时修改nginx分发策略,将所有用户导入到新服务器上即可。这个过程避免了服务的启动,只修改了分发策略,提高了版本切换过程中的可靠性。
装置包括:服务部署模块、灰度配置模块与灰度控制模块,服务部署模块,用于部署新的灰度版本,更新已有的灰度版本,灰度配置模块,用于向分发服务器配置不同的灰度版本与客户之前的关联信息,灰度控制模块,用于将新的客户加入灰度配置或者将已有的客户移除灰度配置。
以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进。这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。
Claims (8)
1.一种灰度发布方法,其特征在于,所述方法包括:在新客户接入服务时设置客户的唯一ID,且每次客户访问服务的请求都携带该ID;
配置默认访问策略,将所有客户的访问分发到全量版本;
在新版本发布时确定使用该版本的客户,在灰度发布时获取系统基于客户分发的灰度策略;将携带这些客户ID的访问分发到灰度版本;
所述灰度策略确保同一用户的请求分发到同一版本的环境中,根据所述系统为每个客户设置不同的ID,每次客户发起请求会携带唯一ID,配置根据用户ID匹配环境的分发策略。
2.如权利要求1所述的一种灰度发布方法,其特征在于,所述灰度版本发布需要新增客户时,调整灰度策略,增加新的客户ID,重新部署灰度版本;需要移除客户时;调整灰度客户策略,移除客户ID,重新部署灰度版本,当经过客户重新测试后进行全量发布,调整访问策略,将所有客户的访问分发到灰度版本,取消原有全量版本。
3.如权利要求2所述的一种灰度发布方法,其特征在于,所述灰度策略包括:
测试阶段,用于新版本的代码经过测试验证后进入灰度阶段;
重新灰度阶段,用于在灰度过程中代码有问题,或者需要增加新的用户到灰度版本进行重新灰度;
预全量阶段,用于在灰度验证达到预期之后进行预全量;
全量阶段,经过预全量阶段后,新版本的服务已经在线上服务器上正常运行。
4.如权利要求3所述的一种灰度发布方法,其特征在于,所述测试阶段在灰度服务器上启动新版本的服务,修改分发策略后,将指定的用户分发到新的服务上去,测试服务是否正常。
5.如权利要求3所述的一种灰度发布方法,其特征在于,所述重新灰度阶段在原有灰度服务上更新,验证服务是否正常,若正常,则修改分发策略,若不正常,则不修改。
6.如权利要求3所述的一种灰度发布方法,其特征在于,所述预全量在灰度测试版本启动服务后,修改分发策略,在灰度验证达到预期之后进行预全量。
7.如权利要求1所述的一种灰度发布方法,其特征在于,所述全量阶段经过预全量阶段后,新版本的服务已经在线上服务器上正常运行,修改分发策略,将所有用户导入到新服务器上即可。
8.一种灰度发布装置,其特征在于,所述装置包括:服务部署模块、灰度配置模块与灰度控制模块,所述服务部署模块,用于部署新的灰度版本,更新已有的灰度版本,所述灰度配置模块,用于向分发服务器配置不同的灰度版本与客户之前的关联信息,所述灰度控制模块,用于将新的客户加入灰度配置或者将已有的客户移除灰度配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910600860.1A CN112181475A (zh) | 2019-07-04 | 2019-07-04 | 一种灰度发布方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910600860.1A CN112181475A (zh) | 2019-07-04 | 2019-07-04 | 一种灰度发布方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112181475A true CN112181475A (zh) | 2021-01-05 |
Family
ID=73915982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910600860.1A Pending CN112181475A (zh) | 2019-07-04 | 2019-07-04 | 一种灰度发布方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181475A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113518119A (zh) * | 2021-05-25 | 2021-10-19 | 深圳壹账通智能科技有限公司 | ABTest的服务分发方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509230A (zh) * | 2018-03-12 | 2018-09-07 | 舟谱数据技术南京有限公司 | 高精细智能灰度发布系统 |
CN108632374A (zh) * | 2018-05-09 | 2018-10-09 | 星络科技有限公司 | 软件灰度发布方法及装置 |
CN109683936A (zh) * | 2018-12-20 | 2019-04-26 | 恒生电子股份有限公司 | 灰度发布方法及装置、存储介质及电子设备 |
US20190146773A1 (en) * | 2017-11-16 | 2019-05-16 | Atlassian Pty Ltd | Systems and processes for updating computer applications |
CN109871224A (zh) * | 2019-02-13 | 2019-06-11 | 北京炎黄新星网络科技有限公司 | 一种基于用户标识的灰度发布方法、系统、介质及设备 |
-
2019
- 2019-07-04 CN CN201910600860.1A patent/CN112181475A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190146773A1 (en) * | 2017-11-16 | 2019-05-16 | Atlassian Pty Ltd | Systems and processes for updating computer applications |
CN108509230A (zh) * | 2018-03-12 | 2018-09-07 | 舟谱数据技术南京有限公司 | 高精细智能灰度发布系统 |
CN108632374A (zh) * | 2018-05-09 | 2018-10-09 | 星络科技有限公司 | 软件灰度发布方法及装置 |
CN109683936A (zh) * | 2018-12-20 | 2019-04-26 | 恒生电子股份有限公司 | 灰度发布方法及装置、存储介质及电子设备 |
CN109871224A (zh) * | 2019-02-13 | 2019-06-11 | 北京炎黄新星网络科技有限公司 | 一种基于用户标识的灰度发布方法、系统、介质及设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113518119A (zh) * | 2021-05-25 | 2021-10-19 | 深圳壹账通智能科技有限公司 | ABTest的服务分发方法、装置、设备及存储介质 |
CN113518119B (zh) * | 2021-05-25 | 2023-05-02 | 深圳壹账通智能科技有限公司 | ABTest的服务分发方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8839221B2 (en) | Automatic acquisition and installation of software upgrades for collections of virtual machines | |
US11106453B2 (en) | Method and system for a client to server deployment via an online distribution platform | |
CN109726099B (zh) | 一种应用灰度发布方法、装置及设备 | |
JP5437270B2 (ja) | 下位互換性の無いサーババージョンをクライアント/サーバコンピューティング環境に展開するための方法およびシステム | |
US8640124B2 (en) | Multi-installer product advertising | |
US20120167073A1 (en) | Managed upgrades of components in an integrated software and hardware system | |
CN111090452B (zh) | 服务环境的切换方法及计算机可读存储介质 | |
JP2006268172A (ja) | サーバシステムおよびオンラインソフトウェア更新方法 | |
CN107707584A (zh) | 一种应用加载方法、终端及平台服务器 | |
WO2010145315A1 (zh) | 数据卡的更新方法及装置 | |
US10162619B1 (en) | Fleet-wide management of software packages | |
CN112181475A (zh) | 一种灰度发布方法及装置 | |
CN109471799B (zh) | 一种需求环境的部署方法、装置、存储介质及终端 | |
CN102724165A (zh) | 终端通信的控制方法和装置、以及管理服务器 | |
CN104572255B (zh) | 一种多层应用托管方法、装置及系统 | |
CN116126372A (zh) | 一种应用程序升级方法、装置、电子设备和存储介质 | |
CN113076248B (zh) | 一种应用处理方法、装置、设备及可读存储介质 | |
CN112636986A (zh) | 网关插件更新方法及装置 | |
CN114675902A (zh) | 基于嵌入式设备的软件版本的管理方法与管理装置 | |
CN109672551B (zh) | 跨数据中心应用发布方法、设备、存储介质及装置 | |
CN113452622A (zh) | 一种基于客户端的灰度分流方法 | |
CN112882733B (zh) | 应用更新方法及装置、电子设备、存储介质 | |
CN113157436B (zh) | 资源请求分发方法、装置、服务器和存储介质 | |
CN110874238A (zh) | 一种线上业务更新方法及其装置 | |
CN116319321A (zh) | 配置定向下发方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210105 |
|
RJ01 | Rejection of invention patent application after publication |