CN108509230A - 高精细智能灰度发布*** - Google Patents

高精细智能灰度发布*** Download PDF

Info

Publication number
CN108509230A
CN108509230A CN201810200944.1A CN201810200944A CN108509230A CN 108509230 A CN108509230 A CN 108509230A CN 201810200944 A CN201810200944 A CN 201810200944A CN 108509230 A CN108509230 A CN 108509230A
Authority
CN
China
Prior art keywords
gray scale
user
uid
identification information
module
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
Application number
CN201810200944.1A
Other languages
English (en)
Other versions
CN108509230B (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.)
Zhou Pu Data Technology Nanjing Co Ltd
Original Assignee
Zhou Pu Data Technology Nanjing Co Ltd
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 Zhou Pu Data Technology Nanjing Co Ltd filed Critical Zhou Pu Data Technology Nanjing Co Ltd
Priority to CN201810200944.1A priority Critical patent/CN108509230B/zh
Publication of CN108509230A publication Critical patent/CN108509230A/zh
Application granted granted Critical
Publication of CN108509230B publication Critical patent/CN108509230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及高精细智能灰度发布***,属于灰度发布***;***启动后先进入用户是否有识别信息模块,若有识别信息则进入根据识别信息分配版本模块;若没有识别信息则进入***稳定版本模块,而后再次进入根据识别信息分配版本模块,最后进入***最新版本模块;其中用户是否有识别信息模块中***判断用户是否存在有相应的用户标识;用户在使用web端或移动端登录***。通过回馈信息和数据分析信息,本技术能够智能化分析发布预案;在无感知的情况下通过定向群体逐步保障用户使用到的版本一致。

Description

高精细智能灰度发布***
技术领域
本发明涉及高精细智能灰度发布***。
背景技术
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体***的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
互联网产品有一个特点,就是不停的升级,升级,再升级。很多项目组,基本上保持每周一次的发布频率,***升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,***down机的风险.....为了避免这些风险,很多产品都采用了灰度发布的策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况后很容易就回退。
现有***发布技术缺陷:会针对***所有使用用户进行版本更新及升级,更新后的***中存在的问题全面呈现到所有用户的面前,影响范围太广,用户体验差,不能满足***稳定性需求。
目前行业内的灰度发布***针对用户区域性发布,不能再细粒度的控制所需要发布的客户群体。且在***回馈方便不能够积极,***回馈信息不够精细化。
发明内容
本发明的目的在于针对现有技术的缺陷和不足,提供一种设计合理、操作方便的高精细智能灰度发布***。
为实现上述目的,本发明采用的技术方案是:***启动后先进入用户是否有识别信息模块,若有识别信息则进入根据识别信息分配版本模块;若没有识别信息则进入***稳定版本模块,而后再次进入根据识别信息分配版本模块,最后进入***最新版本模块;其中用户是否有识别信息模块中***判断用户是否存在有相应的用户标识;用户在使用web端或移动端登录***,需要判断用户是否存在用户标识信息,使用uid,根据是否存在进行后端版本的转发;所述根据识别信息分配版本模块中存在uid还需要进行判断uid发布状态;已存在uid的请求进入后,判断该uid在灰度发布中的状态,根据后台分配的uid进行匹配,转发后续请求到相应的***;所述***稳定版本模块中用户不存在用户标识;用户不存在标识,灰度发布***则直接将用户请求分配给稳定版本,稳定版本会给该用户一个uid,后续请求根据存在uid的情况进行转发;如果用户uid不在发布状态中,灰度***将所有请求转发给stable版本进行处理,用户不会感知到有新版本的发布;所述***最新版本模块中如果用户uid存在发布状态中,灰度***将所有请求转发给latest版本进行处理,用户将体验到新最版本的***服务。
本发明的***中HTTP请求的入口都在请求调试器上,请求调试器会根据location的配置进行uri的选择。此时请求数据会判断当前应用是否已经开启灰度,再次判断是应用级别的灰度还是服务级别的灰度,然后根据灰度管控平台配置的灰度策略进行灰度,当前支持指定用户uid、正则表达式等。灰度管控平台会调用引擎管理执行相应的指令,进行关闭、开启、更新策略和uid设置等,每次nginx重新reload和重启时会从灰度管理***调用接口读取配置应用的信息,加入缓存。
本发明为了提升性能,应用的基本信息、灰度策略、uid是否灰度等数据缓存在nginx的共享内存块中,nginx的每个worker进程都共享此数据,在引擎管理的操纵下进行缓存数据的更新。
本发明***中的调试器与调试核心相互配合;其中调试核心中包含引擎核心、引擎管理、缓存灰度列表和花村灰度策略;所述引擎核心中包含接受前端请求、灰度状态判断、灰度策略判断和灰度策略转发;所述引擎管理包含加载灰度策略、更新灰度策略、维护灰度列表和灰度策略转发;所述调试器将灰度策略转发至稳定应用***或灰度应用***。
本发明的高精细智能灰度发布***一个全新的改版***或者网站在还没有正式发布之前先进行小范畴的,筛选指定用户进行发布,通过已发布的用户数据总结出问题以及需要改进的地方,完善以后再全面进行的一种可定向的智能灰度发布技术。
根据latest版本的用户的反馈可以对***作出相应的调整及完善,提升稳定性的同时,可以思考一个大部分处于stable版本的用户稳定的使用***处理相应工作。
采用上述结构后,本发明所述的高精细智能灰度发布***,具有以下有益效果:改善传统灰度发布过程中降低上线风险的同时又能给高密度的收集回馈信息;降低影响范围,并且范围可控在单粒度群体;降低对测试的依赖,减少线下自测的数据构造成本;特定的请求能够指向特定的服务器,方便集中监控日志,方便跟踪完整的调用链路;方便***流量切入;方便回滚;指定特定人群,方便***回访,方便产品需求收集,完善产品功能,提升产品质量;通过回馈信息和数据分析信息,本技术能够智能化分析发布预案;在无感知的情况下通过定向群体逐步保障用户使用到的版本一致。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的流程图;
图2是本发明的***图;
图3是本发明中调试核心的内部模块框图。
具体实施方式
下面结合附图对本发明作进一步的说明。
参看如图1--图3所示,本具体实施方式的***启动后先进入用户是否有识别信息模块,所述用户是否有识别信息模块中设有S10,若有识别信息则进入根据识别信息分配版本模块,所述根据识别信息分配版本模块中设有S20;若没有识别信息则进入***稳定版本模块,所述***稳定版本模块中设有S11和S21,而后再次进入根据识别信息分配版本模块,最后进入***最新版本模块,所述***最新版本模块中设有S30;
其中,S10:判断用户是否存在有相应的用户标识;用户在使用web端或移动端登录***,需要判断用户是否存在用户标识信息,使用uid,根据是否存在进行后端版本的转发;
S20:存在uid还需要进行判断uid发布状态;已存在uid的请求进入后,判断该uid在灰度发布中的状态,根据后台分配的uid进行匹配,转发后续请求到相应的***;
S11:用户不存在用户标识;用户不存在标识,灰度发布***则直接将用户请求分配给稳定版本,稳定版本会给该用户一个uid,后续请求根据存在uid的情况进行转发;
S21:如果用户uid不在发布状态中,灰度***将所有请求转发给stable版本进行处理,用户不会感知到有新版本的发布;
S30:如果用户uid存在发布状态中,灰度***将所有请求转发给latest版本进行处理,用户将体验到新最版本的***服务。
本具体实施方式的***中HTTP请求的入口都在请求调试器上,请求调试器会根据location的配置进行uri的选择。此时请求数据会判断当前应用是否已经开启灰度,再次判断是应用级别的灰度还是服务级别的灰度,然后根据灰度管控平台配置的灰度策略进行灰度,当前支持指定用户uid、正则表达式等。灰度管控平台会调用引擎管理执行相应的指令,进行关闭、开启、更新策略和uid设置等,每次nginx重新reload和重启时会从灰度管理***调用接口读取配置应用的信息,加入缓存。
本具体实施方式为了提升性能,应用的基本信息、灰度策略、uid是否灰度等数据缓存在nginx的共享内存块中,nginx的每个worker进程都共享此数据,在引擎管理的操纵下进行缓存数据的更新。
本具体实施方式***中的调试器与调试核心相互配合;其中调试核心中包含引擎核心、引擎管理、缓存灰度列表和花村灰度策略;所述引擎核心中包含接受前端请求、灰度状态判断、灰度策略判断和灰度策略转发;所述引擎管理包含加载灰度策略、更新灰度策略、维护灰度列表和灰度策略转发;所述调试器将灰度策略转发至稳定应用***或灰度应用***。
本具体实施方式的高精细智能灰度发布***一个全新的改版***或者网站在还没有正式发布之前先进行小范畴的,筛选指定用户进行发布,通过已发布的用户数据总结出问题以及需要改进的地方,完善以后再全面进行的一种可定向的智能灰度发布技术。
根据latest版本的用户的反馈可以对***作出相应的调整及完善,提升稳定性的同时,可以思考一个大部分处于stable版本的用户稳定的使用***处理相应工作。
采用上述结构后,本具体实施方式具有以下有益效果:
1、改善传统灰度发布过程中降低上线风险的同时又能给高密度的收集回馈信息;
2、降低影响范围,并且范围可控在单粒度群体;
3、降低对测试的依赖,减少线下自测的数据构造成本;
4、特定的请求能够指向特定的服务器,方便集中监控日志,方便跟踪完整的调用链路;
5、方便***流量切入;
6、方便回滚;
7、指定特定人群,方便***回访,方便产品需求收集,完善产品功能,提升产品质量;
8、通过回馈信息和数据分析信息,本技术能够智能化分析发布预案;
9、在无感知的情况下通过定向群体逐步保障用户使用到的版本一致;
10、避免停止服务给用户带来不好的体验。
以上所述,仅用以说明本发明的技术方案而非限制,本领域普通技术人员对本发明的技术方案所做的其它修改或者等同替换,只要不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

Claims (4)

1.高精细智能灰度发布***,其特征在于:***启动后先进入用户是否有识别信息模块,若有识别信息则进入根据识别信息分配版本模块;若没有识别信息则进入***稳定版本模块,而后再次进入根据识别信息分配版本模块,最后进入***最新版本模块;其中用户是否有识别信息模块中***判断用户是否存在有相应的用户标识;用户在使用web端或移动端登录***,需要判断用户是否存在用户标识信息,使用uid,根据是否存在进行后端版本的转发;所述根据识别信息分配版本模块中存在uid还需要进行判断uid发布状态;已存在uid的请求进入后,判断该uid在灰度发布中的状态,根据后台分配的uid进行匹配,转发后续请求到相应的***;所述***稳定版本模块中用户不存在用户标识;用户不存在标识,灰度发布***则直接将用户请求分配给稳定版本,稳定版本会给该用户一个uid,后续请求根据存在uid的情况进行转发;如果用户uid不在发布状态中,灰度***将所有请求转发给stable版本进行处理,用户不会感知到有新版本的发布;所述***最新版本模块中如果用户uid存在发布状态中,灰度***将所有请求转发给latest版本进行处理,用户将体验到新最版本的***服务。
2.根据权利要求1所述的高精细智能灰度发布***,其特征在于:***中HTTP请求的入口都在请求调试器上,请求调试器会根据location的配置进行uri的选择;此时请求数据会判断当前应用是否已经开启灰度,再次判断是应用级别的灰度还是服务级别的灰度,然后根据灰度管控平台配置的灰度策略进行灰度,当前支持指定用户uid、正则表达式等;灰度管控平台会调用引擎管理执行相应的指令,进行关闭、开启、更新策略和uid设置等,每次nginx重新reload和重启时会从灰度管理***调用接口读取配置应用的信息,加入缓存。
3.根据权利要求2所述的高精细智能灰度发布***,其特征在于:***中的调试器与调试核心相互配合;其中调试核心中包含引擎核心、引擎管理、缓存灰度列表和花村灰度策略;所述引擎核心中包含接受前端请求、灰度状态判断、灰度策略判断和灰度策略转发;所述引擎管理包含加载灰度策略、更新灰度策略、维护灰度列表和灰度策略转发;所述调试器将灰度策略转发至稳定应用***或灰度应用***。
4.根据权利要求2所述的高精细智能灰度发布***,其特征在于:它应用的基本信息、灰度策略、uid是否灰度等数据缓存在nginx的共享内存块中,nginx的每个worker进程都共享此数据,在引擎管理的操纵下进行缓存数据的更新。
CN201810200944.1A 2018-03-12 2018-03-12 高精细智能灰度发布*** Active CN108509230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810200944.1A CN108509230B (zh) 2018-03-12 2018-03-12 高精细智能灰度发布***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810200944.1A CN108509230B (zh) 2018-03-12 2018-03-12 高精细智能灰度发布***

Publications (2)

Publication Number Publication Date
CN108509230A true CN108509230A (zh) 2018-09-07
CN108509230B CN108509230B (zh) 2021-03-23

Family

ID=63377459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810200944.1A Active CN108509230B (zh) 2018-03-12 2018-03-12 高精细智能灰度发布***

Country Status (1)

Country Link
CN (1) CN108509230B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739537A (zh) * 2018-12-29 2019-05-10 中电福富信息科技有限公司 一种灰度发布管理平台及灰度发布管理方法
CN110784409A (zh) * 2019-10-31 2020-02-11 湖南御家科技有限公司 一种基于Spring Cloud的微服务灰度发布方法
CN112181475A (zh) * 2019-07-04 2021-01-05 深圳市观麦网络科技有限公司 一种灰度发布方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176790A (zh) * 2011-12-26 2013-06-26 阿里巴巴集团控股有限公司 应用发布方法和***
CN105099988A (zh) * 2014-04-24 2015-11-25 阿里巴巴集团控股有限公司 用于支持灰度发布的方法、访问方法以及装置和***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176790A (zh) * 2011-12-26 2013-06-26 阿里巴巴集团控股有限公司 应用发布方法和***
CN105099988A (zh) * 2014-04-24 2015-11-25 阿里巴巴集团控股有限公司 用于支持灰度发布的方法、访问方法以及装置和***

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739537A (zh) * 2018-12-29 2019-05-10 中电福富信息科技有限公司 一种灰度发布管理平台及灰度发布管理方法
CN112181475A (zh) * 2019-07-04 2021-01-05 深圳市观麦网络科技有限公司 一种灰度发布方法及装置
CN110784409A (zh) * 2019-10-31 2020-02-11 湖南御家科技有限公司 一种基于Spring Cloud的微服务灰度发布方法
CN110784409B (zh) * 2019-10-31 2022-08-09 长沙水羊网络科技有限公司 一种基于Spring Cloud的微服务灰度发布方法

Also Published As

Publication number Publication date
CN108509230B (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
CN108509230A (zh) 高精细智能灰度发布***
US7853609B2 (en) Update distribution system architecture and method for distributing software
CN103049334B (zh) 一种任务处理的方法和虚拟机
KR100942127B1 (ko) 업데이트 배포 시스템에서 업데이트 메타데이터를 배포시키기 위한 태그-기반 스키마
US9607001B2 (en) Automated failover of a metadata node in a distributed file system
US9904689B2 (en) Processing a file system operation in a distributed file system
CN106021445B (zh) 一种加载缓存数据的方法及装置
CN102081650A (zh) 嵌入式平台用户界面加速显示的方法
US20110082833A1 (en) Database parallel editing method
CN105827446A (zh) 一种智能交通api网关及智能交通业务***
CN108334370A (zh) 一种分布式测试***的软件自动增量更新升级方法
US20080005747A1 (en) System and method for object state management
CN105808274A (zh) 软件升级方法、***及对应的客户端与服务器
CN106357778A (zh) 一种会话信息的共享方法、装置及***
CN103729247B (zh) 数据获取请求的处理方法、***及服务器
CN105677789A (zh) 一种分布式文件***的目录容量管理方法及***
CN109360029B (zh) 一种远程终端广告机的自我管理方法
CN104615710A (zh) 一种电子地图框架数据更新方法
CN104462497A (zh) 基于关系型数据库的跨库事务处理方法和***
CN106557347A (zh) 软件更新方法及装置
CN110019469A (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
CN102075581A (zh) 一种面向分布式文件***的数据传输方法及装置
CN110059096A (zh) 数据版本管理方法、装置、设备及存储介质
CN111913937B (zh) 数据库运维方法和装置
DE202023104916U1 (de) Verteilte Ausführung von transaktionalen Abfragen

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
GR01 Patent grant
GR01 Patent grant