CN112835617A - 一种灰度发布方法、装置、服务器及可读介质 - Google Patents

一种灰度发布方法、装置、服务器及可读介质 Download PDF

Info

Publication number
CN112835617A
CN112835617A CN202110231328.4A CN202110231328A CN112835617A CN 112835617 A CN112835617 A CN 112835617A CN 202110231328 A CN202110231328 A CN 202110231328A CN 112835617 A CN112835617 A CN 112835617A
Authority
CN
China
Prior art keywords
configuration
target version
version configuration
audience
users
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
CN202110231328.4A
Other languages
English (en)
Other versions
CN112835617B (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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202110231328.4A priority Critical patent/CN112835617B/zh
Publication of CN112835617A publication Critical patent/CN112835617A/zh
Application granted granted Critical
Publication of CN112835617B publication Critical patent/CN112835617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开公开了一种灰度发布方法、装置、服务器及可读介质。该方法包括:在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。上述技术方案根据配置的更新情况自动生成目标版本配置,提高了灰度发布效率,并且通过根据发布进度灵活选择目标版本配置的受众用户,实现用户从历史版本配置到目标版本配置的平滑过渡,提高灰度发布的稳定性。

Description

一种灰度发布方法、装置、服务器及可读介质
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种灰度发布方法、装置、服务器及可读介质。
背景技术
随着生活和工作需求的不断增长,移动终端中各类应用软件的功能更新和版本迭代速度迅速,由于新功能和新版本的特性并不稳定,通常需要经过部分用户的测试和体验之后再逐步推广。灰度发布可以控制特定功能的生效与否,并可以设置新版本的受众用户与发布流量范围,实现新旧版本的平滑过度,尽可能减少新功能和新版本上线对用户的影响。
然而,在新版本的发布过程中,开发人员需要手动修改部分流量信息,无法自动更新版本配置,影响了发布效率。此外,新版本的受众用户通常是按照固定比例从全部用户中选择的,无法根据发布过程灵活选择,导致新版本的受众用户规模与发布过程不匹配,影响灰度发布的稳定性。
发明内容
本公开提供了一种灰度发布方法、装置、服务器及可读介质,以提高目标版本配置的灰度发布效率,并实现用户从历史版本配置到目标版本配置的平滑过渡,提高灰度发布的稳定性。
第一方面,本公开实施例提供了一种灰度发布方法,包括:
在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
第二方面,本公开实施例还提供了一种灰度发布装置,包括:
生成模块,用于在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;
发布模块,用于根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
第三方面,本公开实施例还提供了一种服务器,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例提供的方法。
第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开实施例提供的方法。
本公开实施例提供了一种灰度发布方法、装置、服务器及可读介质。首先在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置,然后根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。上述技术方案根据配置的更新情况自动生成目标版本配置,提高了灰度发布效率,并且通过根据发布进度灵活选择目标版本配置的受众用户,实现用户从历史版本配置到目标版本配置的平滑过渡,提高灰度发布的稳定性。
附图说明
图1为本公开实施例一提供的一种灰度发布方法的流程示意图;
图2为本公开实施例一提供的一种自动生成目标版本配置的示意图;
图3为本公开实施例二提供的一种灰度发布方法的流程示意图;
图4为本公开实施例三提供的一种灰度发布方法的流程示意图;
图5为本公开实施例三提供的一种用户分流的示意图;
图6为本公开实施例四提供的一种灰度发布方法的流程示意图;
图7为本公开实施例四提供的一种回滚历史版本配置的示意图;
图8为本公开实施例五提供的一种灰度发布装置的结构示意图;
图9为本公开实施例六提供的一种服务器的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。此外,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例一
图1为本公开实施例一提供的一种灰度发布方法的流程示意图,该方法可适用于针对目标版本配置逐步扩大受众用户范围的情况,具体的,用于在目标版本配置的灰度发布过程中自动选择受众用户的情况。该方法可以由灰度发布装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在服务器上,在本实施例中服务器包括但不限于笔记本电脑、台式计算机、集中式服务器或云端服务器等。
如图1所示,本公开实施例一提供的一种灰度发布方法,包括如下步骤:
S110、在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置。
本实施例中,配置数据包括用于描述产品特性的配置信息和配置文件等,例如对于一个应用软件,配置数据可以是描述软件界面的颜色以及软件界面中各个控件的布局和位置的数据、描述各个控件功能的数据、各个控件关联的链接地址以及描述该应用软件的封装代码等。
发布参数是指控制灰度发布过程的参数,包括该应用软件的受众用户规模(例如共有1000个用户使用该应用软件)、发布频率(例如每天发布10%的新的产品特性供受众用户测试,或者每天向100个用户发布目标版本配置等)、回滚策略(例如在接收到回滚指令时,或者负面反馈意见在参与测试的受众用户的反馈意见中的占比超过设定阈值时,使全部或部分参与测试的受众用户回退到历史版本配置)以及新旧版本部署策略(例如在1000个用户中挑选部分用户应用目标版本配置,其余用户应用历史版本配置)等。
受众用户的过滤条件是指选择应用目标版本配置或历史版本配置的用户的条件,例如,目标版本配置的受众用户必须是同意参与产品特性测试并且所使用的客户端支持目标版本配置运行的用户。此外,目标版本配置中可能有不同的配置项,例如应用软件中的一个控件可以显示为红色或蓝色,在目标版本配置的受众用户中,一部分受众用户可以应用红色,另一部分受众用户应用蓝色,这种情况下,受众用户的过滤条件还包括在目标版本配置中不同配置项的受众用户的过滤条件。
本实施例中,如果检测到配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新,说明产品特性更新和/或不同版本的目标受众发生变化,这种情况下自动生成目标版本配置,生成的目标版本配置中包括用于描述产品特性的配置信息和配置文件等,将生成的目标版本配置推送给目标版本配置的受众用户,以供这些受众用户测试产品特性。需要说明的是,在服务器中,生成的目标版本配置不会覆盖或替换历史版本配置,通过在服务器中保留历史版本配置,在目标版本配置存在问题的情况下可以实现回滚,从而保证受众用户不间断地正常使用产品功能。
图2为本公开实施例一提供的一种自动生成目标版本配置的示意图。如图2所示,当开发人员编辑灰度发布的配置信息时,配置数据、发布参数与过滤条件中的一个或者多个发生变更,都会自动生成新的配置版本并保存。本实施例不限定对配置数据、发布参数与过滤条件的检测顺序。
S120、根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
本实施例中,目标版本配置的受众用户根据目标版本配置的发布进度、发布参数以及受众用户的过滤条件确定。目标版本配置的发布进度可以是已生效的产品特性或配置数据在目标版本配置中的比例,例如,目标版本配置相比于历史版本配置新增或修改了10个功能,发布频率为每天发布10%的功能供部分用户测试使用,则到第五天时发布进度为50%。目标版本配置的发布进度也可以是目标版本配置在全部用户中的推广范围比例,例如,1000个用户中,每天向100个用户发布目标版本配置,则到第五天时发布进度为50%。
本实施例中,目标版本配置的发布进度与目标版本配置的受众用户的数量呈正相关。随着发布进度的逐步增大,目标版本配置的受众用户越来越多,直至目标版本配置的发布进度为100%,即目标版本配置已全量发布,全部用户都已过渡到目标版本配置,历史版本配置失效。
在一实施例中,在生成目标版本配置之后,还包括:为目标版本配置设置发布计划,发布计划包括发布时间和发布参数。具体的,灰度发布的目标配置版本生成完成后并不会立即生效,而是在设置发布计划后,按照发布计划生效目标版本配置。目标版本配置的灰度发布状态包括未发布、待发布、发布中和已全量,目标版本配置的灰度发布状态按照顺序依次转变,直至灰度发布完成。此外,在发布过程中可以点击回滚,取消发布中的目标版本配置并生效上一个已全量的历史版本配置。灰度发布状态有以下几种:
未发布:生成了目标版本配置,但是未设置发布计划;
待发布:为目标版本配置设置了发布计划,但发布时间未到;
发布中:发布计划已生效,但是未执行完;
已全量:发布计划已执行完,在100%流量上生效了目标版本配置;
已回滚:目标版本配置存在问题,将已生效的目标版本配置回退到历史版本配置。
在此基础上,在达到发布计划所指定的发布时间时,根据目标版本配置的发布进度、发布参数和受众用户的过滤条件,向目标版本配置的受众用户推送目标版本配置。通过设置发布计划,在发布进度对应时间控制目标版本配置的生效范围,提高了灰度发布的安全性与可用性。
需要说明的是,非目标版本配置的受众用户即为历史版本配置的受众用户。对于历史版本配置的受众用户,如果该用户在目标版本配置发布之前应用的就是历史版本配置,则保持其原有配置不变即可;如果其在目标版本配置发布之前应用的版本无法确定,或者为已失效的版本,或者其客户端不支持原版本运行等,则可以向其推送历史版本配置,供其使用历史版本配置中的功能。
本实施例提供的一种灰度发布方法,能够根据配置的更新情况自动生成目标版本配置,提高了灰度发布效率;并且通过根据发布进度灵活选择目标版本配置的受众用户,实现用户从历史版本配置到目标版本配置的平滑过渡,提高灰度发布的稳定性。
实施例二
图3为本公开实施例二提供的一种灰度发布方法的流程示意图。本实施例二在实施例一的基础上,对用户分流过程中确定目标版本配置的受众用户的分流比例的过程进行具体化。
在本实施例中,配置数据包括至少一种配置项;发布参数包括每种配置项的应用比例。例如,目标版本配置中软件界面中的一个控件有多种颜色,每种颜色可作为一种配置项,目标版本配置的受众用户可分为两部分,分别应用这几种配置项。以两个配置项为例,将目标版本配置中的两个配置项分别记为A和B。A的应用比例是20%,B的应用比例是40%,即,在目标版本配置的受众用户中,20%的受众用户应用A,40%的受众用户应用B,其余40%的受众用户可以随机应用或者默认应用A或B中的一种。通过设置至少一种配置项并为每种配置项分配应用比例,可提高目标版本配置的多样性,便于测试不同的产品特性。
本实施例中,根据目标版本配置的发布进度、发布参数和受众用户的过滤条件,向目标版本配置的受众用户推送目标版本配置,包括:根据目标版本配置的发布进度、发布参数和受众用户的过滤条件,确定目标版本配置中每种配置项的分流比例;按照目标版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的目标版本配置。通过根据目标版本配置的发布进度、发布参数和受众用户的过滤条件,可确定目标版本配置的受众用户中,有多少应用A,有多少应用B,从而实现对目标版本配置的不同配置项的用户分流,提高用户分流的灵活性,便于测试不同的产品特性。
可选的,配置数据还包括默认配置项;根据目标版本配置的发布进度、发布参数和受众用户的过滤条件,向目标版本配置的受众用户推送目标版本配置,还包括:根据目标版本配置中每种配置项的分流比例之和确定目标版本配置中默认配置项的分流比例;按照目标版本配置中默认配置项的分流比例向相应数量的受众用户推送包含默认配置项的目标版本配置。通过按照每种配置项的应用比例进行分流,提高用户分流的灵活性,尽可能保证目标版本配置的受众用户自动分流至目标版本配置。
本实施例尚未详尽的内容请参考实施例一。
如图3所示,本公开实施例二提供的一种灰度发布方法,包括如下步骤:
S210、在配置数据、发布参数和受众用户的筛选条件中的至少之一发生更新的情况下,生成目标版本配置。
S220、根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,确定所述目标版本配置中每种配置项的分流比例。
本实施例中,目标版本配置中每种配置项的分流比例是指应用该配置项的受众用户占用户总数的比例。具体的,目标版本配置中,每种配置项的分流比例与目标版本配置的发布进度、发布参数和受众用户的过滤条件有关。例如,用户总数为1000,目标版本配置发布了50%,则可以选择1000*50%=500个符合目标版本配置的受众用户的过滤条件的用户,作为目标版本配置的受众用户,这500个受众用户可以应用包含不同配置项的目标版本配置。每种配置项的应用比例是指应用该配置项的受众用户占目标版本配置的受众用户的比例,例如,对于目标版本配置的受众用户,A的应用比例是20%,B的应用比例是40%,在500个目标版本配置的受众用户中,有500*20%=100人应用A,500*40%=200人应用B。实际上,A对应的分流比例为100/1000=10%,B对应的分流比例为200/1000=20%。
可选的,对于目标版本配置,受众用户的过滤条件,包括以下至少之一:
1)目标版本配置的受众用户的分流比例不超过目标版本配置的发布进度,例如,目标版本发布了50%,则目标版本受众用户占全部用户的比例不能超过50%,随着目标版本配置的发布进度达到100%,逐步实现用户从历史版本配置到目标版本配置的平滑过渡;
2)目标版本配置的受众用户的用户标识属于白名单中的标识,即白名单中的用户在目标版本配置的灰度发布过程中总是固定应用目标版本配置,而不会分流至历史版本配置;
3)用户标识的哈希(Hash)运算结果对应于所述目标版本配置的受众用户,即通过对用户标识进行哈希运算,将用户分流至目标版本配置或历史版本配置。
S230、按照所述目标版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的目标版本配置。
具体的,根据目标版本配置中每种配置项的分流比例,可以确定目标版本配置中每种配置项的受众用户的数量,然后从符合目标版本配置受众用户过滤条件的受众用户中,选择与每种配置项相应数量的受众用户推送包含该配置项的目标版本配置以供其应用该配置项的功能。如上例,目标版本发布了50%,向全部用户中的10%推送包含A的目标版本配置,向全部用户中的20%的用户推送包含B的目标版本配置,对于其余的70%,在保证满足目标版本配置的受众用户的过滤条件的前提下,可以应用目标版本配置中的默认配置项,或者应用历史版本配置。
S240、根据所述目标版本配置中每种配置项的分流比例之和确定所述目标版本配置中默认配置项的分流比例。
本实施例中,除了确定目标版本配置中每种配置项的分流比例,还可以确定目标版本配置中默认配置项的分流比例。默认配置项可以理解为在目标版本配置的受众用户中,在每种配置项的分流比例之外的受众用户默认应用的配置项,这类分流比例之外的受众用户不满足目标版本配置中每种配置项的过滤条件,可以应用默认配置项。如上例,默认配置项为A,则在目标版本配置的受众用户中,有20%的受众用户应用A,有40%的受众用户应用B,其余的40%可默认应用A。
目标版本配置中默认配置项的分流比例是指应用默认配置项的受众用户占用户总数的比例,与目标版本配置的发布进度以及每种配置项的应用比例有关。在目标版本配置已全量的情况下,目标版本配置的受众用户中,20%应用A,40%应用B,则默认配置项的分流比例为1-20%-40%=40%。
在目标版本配置未全量的情况下,如上例,假设用户总数为1000,目标版本配置发布进度为50%,则目标版本配置的受众用户的分流比例为50%,其中,A对应的分流比例为100/1000=10%,B对应的分流比例为200/1000=20%,这种情况下,应用默认配置项(A)的受众用户的分流比例为目标版本配置的受众用户的分流比例与每种配置项的分流比例之和的差值,即50%-(10%+20%)=20%,即,1000个受众用户中,除了10%的受众用户应用包含A的目标版本配置、20%的受众用户应用包含B的目标版本配置以外,还有20%的受众用户应用默认配置项,其余的受众用户都应用历史版本配置,从而保证目标版本配置的受众用户不超过目标版本配置的发布进度,合理控制不同版本以及不同配置项的受众用户的分布,实现由历史版本配置到目标版本配置的平滑过渡。
S250、按照所述目标版本配置中默认配置项的分流比例向相应数量的受众用户推送包含所述默认配置项的目标版本配置。
在一实施例中,根据目标版本配置的发布进度、发布参数和受众用户的过滤条件,确定目标版本配置中每种配置项的分流比例,包括:若目标版本配置的发布进度为全量发布,则将全部用户作为目标版本配置的受众用户,并将每种配置项的应用比例分别作为目标版本配置中每种配置项的分流比例。
具体的,在目标版本配置的发布进度为全量发布的情况下,历史版本配置失效,全部用户作为目标版本配置的受众用户,这种情况下,目标版本配置中每种配置项的分流比例等于每种配置项的应用比例。如上例,全部用户(或目标版本配置的受众用户)中,20%应用A,40%应用B,40%应用默认配置项。
在一实施例中,根据目标版本配置的发布进度、发布参数和受众用户的过滤条件,确定目标版本配置中每种配置项的分流比例,包括:若目标版本配置的发布进度非全量发布,则根据发布进度将部分用户作为目标版本配置的受众用户,其中,目标版本配置的受众用户的分流比例不超过目标版本配置的发布进度;将发布进度与每种配置项的应用比例的乘积分别作为目标版本配置中每种配置项的分流比例。
具体的,在目标版本配置的发布进度非全量发布的情况下,部分用户作为目标版本配置的受众用户,这种情况下,目标版本配置中每种配置项的分流比例等于发布进度与每种配置项的应用比例的乘积。例如,如上例,发布进度为50%,则全部用户中,有50%*20%=10%应用A,50%*40%=20%应用B,此外,默认配置项的应用比例为1-20%-40%=40%,则还可由50%*(1-20%-40%)=20%的用户可以应用目标版本配置的默认配置项。
需要说明的是,历史版本配置通常为已全量发布的版本,即发布进度通常为100%。历史版本配置中也可以包含多种配置项,每种配置项对应于一种应用比例;对于历史版本配置的受众用户,也可以根据历史版本配置中每种配置项的应用比例,确定其应用哪种配置项,即确定历史版本配置的受众用户对每种配置项的分流比例;此外,历史版本配置的受众用户中,在历史版本配置中每种配置项的应用比例之外的受众用户,也可以应用历史版本配置中的默认配置项。
本公开实施例二提供的一种灰度发布方法,通过设置至少一种配置项并为每种配置项分配应用比例,提高目标版本配置的多样性,便于测试不同的产品特性;根据目标版本配置的发布进度对目标版本配置的受众用户进行分流,实现从历史版本配置到目标版本配置的平滑过渡;通过按照每种配置项的应用比例进行分流,并设置默认配置项,保证目标版本配置的受众用户可自动分流至目标版本配置的不同配置项,提高用户分流的灵活性。
实施例三
图4为本公开实施例三提供的一种灰度发布方法的流程示意图。实施例三在上述实施例的基础上,对确定用户命中的版本配置以及命中的配置项的过程进行具体化。
本实施例中,按照目标版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的目标版本配置,包括:根据目标版本配置中每种配置项的分流比例,对每个用户标识进行哈希运算;根据哈希运算结果确定每个用户为目标版本配置的受众用户或历史版本配置的受众用户;向目标版本配置的受众用户中的相应数量的受众用户推送包含相应配置项的目标版本配置。通过哈希运算对用户分流,可以保证将全部用户按照分流比例合理分流至不同版本配置以及包含不同配置项的版本配置中,并且在发布过程中,可以保证同一受众用户在不同发布进度的情况下可尽量分流至相同版本配置的相同配置项,减少除从历史版本配置到目标版本配置以外的不必要的迁移和切换,避免频繁的切换影响用户的正常使用。
本实施例尚未详尽的内容请参考上述实施例。
如图4所示,本公开实施例三提供的一种灰度发布方法,包括如下步骤:
S310、在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置。
S320、根据目标版本配置的发布进度、发布参数和受众用户的过滤条件,确定目标版本配置中每种配置项的分流比例。
S330、根据目标版本配置中每种配置项的分流比例,对每个用户标识进行哈希运算。
本实施例中,在用户分流过程中,根据目标版本配置中每种配置项的分流比例对用户标识(Identity document,ID)做哈希运算,以判断每个用户是目标版本配置的受众用户还是历史版本配置的受众用户。如上例,发布进度为50%,哈希运算应满足:在全部用户中,有50%*20%=10%的哈希运算结果对应于目标版本配置的A,50%*40%=20%的哈希运算结果对应于目标版本配置的B,50%*(1-20%-40%)=20%的哈希运算结果对应于目标版本配置的默认配置项,还有50%的哈希运算结果对应于历史版本配置。
S340、根据哈希运算结果确定每个用户为目标版本配置的受众用户或历史版本配置的受众用户。
具体的,根据用户ID的哈希运算结果,首先可判断用户是否命中目标版本配置,若命中则可进一步判断其命中目标版本中的哪一种配置项;若没有命中目标版本配置则判断用户是否命中历史版本配置。此外,如果历史版本配置也包含不同配置项,还可进一步判断其命中历史版本中的哪种配置项。
S350、向目标版本配置的受众用户中的相应数量的受众用户推送包含相应配置项的目标版本配置。
示例性的,向目标版本配置的配置项A的受众用户推送包含配置项A的目标版本配置;向目标版本配置的配置项B的受众用户推送包含配置项B的目标版本配置;向目标版本配置的默认配置项的受众用户推送包含默认配置项的目标版本配置;向历史版本配置的受众用户推送历史版本配置。
在一实施例中,还包括:若目标版本配置的发布进度非全量发布,则根据目标版本配置的发布进度确定历史版本配置的受众用户的分流比例;按照历史版本配置的受众用户的分流比例,向历史版本配置的受众用户推送历史版本配置。
具体的,若目标版本配置的发布进度非全量发布,则历史版本配置也有效,非目标版本配置的受众用户即为历史版本配置的受众用户。历史版本配置的受众用户的分流比例等于1与目标版本配置的受众用户的分流比例的差值。如上例,目标版本配置的发布进度为50%,在全部用户中,有50%应用目标版本配置,50%应用历史版本配置,则向50%的用户推送目标版本配置,向50%的用户推送历史版本配置。
在一实施例中,按照历史版本配置的受众用户的分流比例,向历史版本配置的受众用户推送历史版本配置,包括:按照历史版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的历史版本配置。
具体的,历史版本配置也包含至少两种配置项,假设为C和D,C的应用比例为20%,D的应用比例为40%。历史版本配置中每种配置项的分流比例是指应用该配置项的受众用户占用户总数的比例。如上例,目标版本配置的发布进度为50%,则在全部用户中有50%对应于历史版本配置,更具体的,在全部用户中,有50%*20%=10%的哈希运算结果对应于历史版本配置的C,50%*40%=20%的哈希运算结果对应于历史版本配置的D,据此向相应数量的受众用户分别推送包含C和D的历史版本配置。
在一实施例中,向历史版本配置的受众用户推送历史版本配置,包括:根据历史版本配置中每种配置项的应用比例之和确定历史版本配置中默认配置项的分流比例;按照历史版本配置中默认配置项的分流比例,向相应数量的受众用户推送包含默认配置项的历史版本配置。
具体的,对于历史版本配置的受众用户,在历史版本配置的每种配置项的比例之外的受众用户,也可以应用历史版本配置的默认配置项。历史版本配置中默认配置项的分流比例是指应用该默认配置项的受众用户占用户总数的比例。如上例,默认配置项例如为D。目标版本配置的发布进度为50%,在历史版本配置的受众用户中,有20%的受众用户应用C,40%的受众用户应用D,则历史版本配置的默认配置项的应用比例为1-20%-40%=40%。更具体的,在全部用户中,除了50%*20%=10%的哈希运算结果对应于历史版本配置的C,50%*40%=20%的哈希运算结果对应于历史版本配置的D,,还有50%*(1-20%-40%)=20%的哈希运算结果对应于历史版本配置的默认配置项,即,历史版本配置中默认配置项的分流比例为20%。
在上述的基础上,向历史版本配置的受众用户推送历史版本配置,包括:向历史版本配置的配置项C的受众用户推送包含配置项C的历史版本配置;向历史版本配置的配置项D的受众用户推送包含配置项D的历史版本配置;向历史版本配置的默认配置项的受众用户推送包含默认配置项的历史版本配置。
图5为本公开实施例三提供的一种用户分流的示意图。如图5所示,目标版本配置的发布过程逐步渐进,因此线上可能同时生效两个版本配置(即目标版本配置v2和历史版本配置v1),例如,v1已全量,而v2未全量。在v2发布之前,1000个用户都应用v1;当目标版本配置的发布进度为50%时,1000个用户中有50%,即500人分流至v2;随着发布进度逐步增大到100%,最终1000个用户都应用v2。
示例性的,目标版本配置包括A和B,应用比例分别为20%和40%,默认配置项为A;历史版本配置包括C和D,应用比例分别为20%和40%,默认配置项为D。
在v2发布之前,v1已全量,1000个用户都应用v1;这种情况下v1中每种配置项的分流比例等于应用比例,即,v1的受众用户中,20%应用C,40%应用D,其余的40%默认应用D。
假设目标版本配置的发布进度为50%,对于v2,根据用户ID的哈希运算结果,可以确定1000个用户中,有50%*20%=10%的用户应用A(对应于图5中v2的第一段区间,对应100个v1受众用户);有50%*40%=20%的用户应用B(对应于图5中v2的第二段区间,对应200个v1受众用户);此外还有50%*40%=20%的用户应用默认配置项(对应于图5中v2的第三段区间,对应300个v1受众用户),其余的500个用户被分流至v1。
需要说明的是,上述实施例中均是以两个版本配置以及一个版本配置中包括两种配置项的情况为例进行说明的。在一些实施例中,不排除同时生效三个及以上的版本配置的情况。以三个版本配置(分别为v3、v2和v1)的情况为例,v3的受众用户占全部用户的比例等于v3的发布进度,v2的受众用户占非v3受众用户(包括v2的受众用户以及v1的受众用户)的比例等于v2的发布进度,其余用户为v1的受众用户。也可以理解为,v2的受众用户占全部用户的比例等于(非v3的受众用户占全部用户的比例*v2的发布进度)。
进一步的,一个版本配置中也可以包含三种及以上的配置项,每个版本配置中每种配置项的分流比例等于该版本配置的受众用户占全部用户的比例*该配置项在该版本中的应用比例。此外,对于一个版本配置的受众用户,在该版本配置的每种配置项的应用比例之外的受众用户,可以应用默认配置项。
在一实施例中,在目标版本配置的发布进度增大的情况下,根据发布进度的增量在历史版本配置的受众用户中选择设定数量的用户作为目标版本配置的受众用户;其中,设定数量为用户总数与增量的乘积。
本实施例中,在目标版本配置的发布进度增大的情况下,可以根据发布进度、发布参数和受众用户的过滤条件,在全部用户中重新确定目标版本配置的受众用户并推送目标版本配置;也可以根据发布进度的增量在历史版本配置的受众用户中选择设定数量的用户作为目标版本配置的受众用户。例如,目标版本配置的发布进度由50%增大到80%,相当于在1000个用户中,有1000*(80%-50%)=300个用户从历史版本配置过渡到目标版本配置,这种情况下,可以在发布进度为50%的分流结果的基础上,保持目标版本配置的受众用户不变,而从历史版本配置的受众用户中选择300个并推送目标版本配置。可选的,对于所选择的设定数量的用户,也可以按照目标版本配置中每种配置项的应用比例(以及默认配置项),向相应数量的用户推送包含每种配置项(以及默认配置项)的目标版本配置。
本公开实施例三提供的一种灰度发布方法,通过哈希运算对用户分流,可以保证将用户按照分流比例合理分配至不同版本以及包含不同配置项的版本配置中,并且在发布过程中,可以保证同一用户在不同发布进度的情况下可尽量分流至相同版本的相同配置,减少除从历史版本配置到目标版本配置以外的不必要的迁移和切换,避免频繁的切换影响用户的正常使用。
实施例四
图6为本公开实施例四提供的一种灰度发布方法的流程示意图,实施例四在上述实施例的基础上,对灰度发布过程中的回滚过程进行具体化。
本实施例中,在目标版本配置的发布过程中,如果检测到回滚指令以及全量的历史版本配置,则将历史版本配置推送至目标版本配置的受众用户;如果不存在全量的历史版本配置,则停止向目标版本配置的受众用户发布目标版本配置。通过保留历史版本配置,在目标版本配置存在问题的情况下实现回滚,保证用户不间断地正常使用产品功能。
本实施例尚未详尽的内容请参考上述实施例。
如图6所示,本公开实施例四提供的一种灰度发布方法,包括如下步骤:
S410、在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置。
S420、根据目标版本配置的发布进度、发布参数和受众用户的筛选条件,向目标版本配置的受众用户推送目标版本配置。
S430、检测到回滚指令?若是,则执行S440,否则,返回继续执行S420。
本实施例中,目标版本配置不会覆盖或替换历史版本配置,在服务器中保留了历史版本配置,如果检测到回滚指令,可以向全部或部分目标版本配置的受众用户重新推送历史版本配置。可选的,回滚指令可以是开发人员输入的,也可以是目标版本配置的受众用户请求的,也可以是服务器根据目标版本配置的受众用户的反馈意见生成的,例如,在参与测试的用户反馈意见中存在问题的反馈意见的占比超过设定阈值时,使全部或部分参与测试的用户回退到历史版本配置。
S440、存在全量的历史版本配置?若是,则执行S450,否则,返回继续执行S460。
S450、将历史版本配置推送至目标版本配置的受众用户
S460、停止向所述目标版本配置的受众用户发布目标版本配置
图7为本公开实施例四提供的一种回滚历史版本配置的示意图。如图7所示,在接收到回滚指令时,检测是否存在全量的历史版本配置;如果存在全量的历史版本配置,则执行回滚,生效历史版本配置;如果不存在全量的历史版本配置,则停止下发目标版本配置,目标版本配置的受众用户将应用当前已下发的配置和功能。
本实施例中,通过保留历史版本配置,在目标版本配置存在问题的情况下实现回滚,保证用户不间断地正常使用产品功能,提高灰度发布的灵活性和回滚效率。
实施例五
图8为本公开实施例五提供的一种灰度发布装置的结构示意图。该装置可适用于针对产品功能特性有更新的目标版本配置逐步扩大受众群体范围的情况,具体的,用于在发布目标版本配置的过程中自动选择受众用户的情况。其中该装置可由软件和/或硬件实现,并一般集成在服务器上。
如图8所示,该装置包括:生成模块510以及发布模块520。
生成模块510,用于在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;
发布模块520,用于根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
在本实施例中,在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。上述技术方案根据配置的更新情况自动生成目标版本配置,提高了灰度发布效率,并且通过根据发布进度灵活选择目标版本配置的受众用户,实现用户从历史版本配置到目标版本配置的平滑过渡,提高灰度发布的稳定性。
在上述基础上,所述配置数据包括至少一种配置项;
所述发布参数包括:每种配置项的应用比例。
在上述基础上,所述受众用户的过滤条件,包括以下至少之一:
所述目标版本配置的受众用户的分流比例不超过所述目标版本配置的发布进度;
所述目标版本配置的受众用户的用户标识属于白名单中的标识;
用户标识的哈希运算结果对应于所述目标版本配置的受众用户。
在上述基础上,发布模块520,包括:
第一分流单元,用于根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,确定所述目标版本配置中每种配置项的分流比例;
第一推送单元,用于按照所述目标版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的目标版本配置。
在上述基础上,第一分流单元,用于:
若所述目标版本配置的发布进度为全量发布,则将全部用户作为所述目标版本配置的受众用户,并将每种配置项的应用比例分别作为所述目标版本配置中每种配置项的分流比例。
在上述基础上,第一分流单元,用于:
若所述目标版本配置的发布进度非全量发布,则根据所述发布进度将部分用户作为所述目标版本配置的受众用户,其中,所述目标版本配置的受众用户的分流比例不超过所述目标版本配置的发布进度;
将所述发布进度与每种配置项的应用比例的乘积分别作为所述目标版本配置中每种配置项的分流比例。
在上述基础上,所述配置数据还包括默认配置项;
发布模块520,还包括:
第二分流单元,用于根据所述目标版本配置中每种配置项的分流比例之和确定所述目标版本配置中默认配置项的分流比例;
第二推送单元,用于按照所述目标版本配置中默认配置项的分流比例向相应数量的受众用户推送包含所述默认配置项的目标版本配置。
在上述基础上,第一推送单元,用于:
根据所述目标版本配置中每种配置项的分流比例,对每个用户标识进行哈希运算;
根据哈希运算结果确定每个用户为所述目标版本配置的受众用户或历史版本配置的受众用户;
向所述目标版本配置的受众用户中的相应数量的受众用户推送包含相应配置项的目标版本配置。
在上述基础上,该装置还包括:
第三分流单元,用于若所述目标版本配置的发布进度非全量发布,则根据所述目标版本配置的发布进度确定所述历史版本配置的受众用户的分流比例;
第三推送单元,用于按照所述历史版本配置的受众用户的分流比例,向所述历史版本配置的受众用户推送所述历史版本配置。
在上述基础上,第三推送单元,用于:
按照所述历史版本配置中每种配置项的应用比例,向相应数量的受众用户推送包含相应配置项的历史版本配置。
在上述基础上,该装置还包括:
第四分流单元,用于根据所述历史版本配置中每种配置项的应用比例之和确定所述历史版本配置中默认配置项的分流比例;
第四推送单元,按照所述历史版本配置中默认配置项的分流比例,向相应数量的受众用户推送包含所述默认配置项的历史版本配置。
在上述基础上,还包括:
受众用户变更模块,用于在所述目标版本配置的发布进度增大的情况下,根据所述发布进度的增量在历史版本配置的受众用户中选择设定数量的用户作为所述目标版本配置的受众用户;其中,所述设定数量为用户总数与所述增量的乘积。
在上述基础上,还包括回滚模块,用于:
在所述目标版本配置的发布过程中,如果检测到回滚指令以及全量的历史版本配置,则将所述历史版本配置推送至所述目标版本配置的受众用户;
如果不存在全量的历史版本配置,则停止向所述目标版本配置的受众用户发布目标版本配置。
上述灰度发布装置可执行本公开任意实施例所提供的灰度发布方法,具备执行方法相应的功能模块和有益效果。
实施例六
图9为本公开实施例六提供的一种服务器的结构示意图。图9示出了适于用来实现本公开实施例的服务器600的结构示意图。本公开实施例中的服务器600包括但不限于笔记本电脑、台式计算机、集中式服务器或云端服务器等。图9示出的服务器600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,服务器600可以包括一个或多个处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储装置608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。一个或多个处理装置601实现如本公开提供的方法。在RAM603中,还存储有服务器600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM603通过总线605彼此相连。输入/输出(I/O)接口604也连接至总线605。
通常,以下装置可以连接至I/O接口604:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置606;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608,存储装置608用于存储一个或多个程序;以及通信装置609。通信装置609可以允许服务器600与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的服务器600,但是应理解的是,并不要求实施或具备全部示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述服务器600中所包含的;也可以是单独存在,而未装配入该服务器600中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该服务器执行时,使得该服务器600:在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种灰度发布方法,包括:
在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
根据本公开的一个或多个实施例,示例2根据示例1所述的方法,所述配置数据包括至少一种配置项;
所述发布参数包括:每种配置项的应用比例。
根据本公开的一个或多个实施例,示例3根据示例1所述的方法,所述受众用户的过滤条件,包括以下至少之一:
所述目标版本配置的受众用户的分流比例不超过所述目标版本配置的发布进度;
所述目标版本配置的受众用户的用户标识属于白名单中的标识;
用户标识的哈希运算结果对应于所述目标版本配置的受众用户。
根据本公开的一个或多个实施例,示例4根据示例2所述的方法,根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置,包括:
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,确定所述目标版本配置中每种配置项的分流比例;
按照所述目标版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的目标版本配置。
根据本公开的一个或多个实施例,示例5根据示例4所述的方法,
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,确定所述目标版本配置中每种配置项的分流比例,包括:
若所述目标版本配置的发布进度为全量发布,则将全部用户作为所述目标版本配置的受众用户,并将每种配置项的应用比例分别作为所述目标版本配置中每种配置项的分流比例。
根据本公开的一个或多个实施例,示例6根据示例4所述的方法,
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,确定所述目标版本配置中每种配置项的分流比例,包括:
若所述目标版本配置的发布进度非全量发布,则根据所述发布进度将部分用户作为所述目标版本配置的受众用户,其中,所述目标版本配置的受众用户的分流比例不超过所述目标版本配置的发布进度;
将所述发布进度与每种配置项的应用比例的乘积分别作为所述目标版本配置中每种配置项的分流比例。
根据本公开的一个或多个实施例,示例7根据示例4所述的方法,所述配置数据还包括默认配置项;
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置,还包括:
根据所述目标版本配置中每种配置项的分流比例之和确定所述目标版本配置中默认配置项的分流比例;
按照所述目标版本配置中默认配置项的分流比例向相应数量的受众用户推送包含所述默认配置项的目标版本配置。
根据本公开的一个或多个实施例,示例8根据示例4所述的方法,
所述按照所述目标版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的目标版本配置,包括:
根据所述目标版本配置中每种配置项的分流比例,对每个用户标识进行哈希运算;
根据哈希运算结果确定每个用户为所述目标版本配置的受众用户或历史版本配置的受众用户;
向所述目标版本配置的受众用户中的相应数量的受众用户推送包含相应配置项的目标版本配置。
根据本公开的一个或多个实施例,示例9根据示例2所述的方法,所述方法还包括:
若所述目标版本配置的发布进度非全量发布,则根据所述目标版本配置的发布进度确定所述历史版本配置的受众用户的分流比例;
按照所述历史版本配置的受众用户的分流比例,向所述历史版本配置的受众用户推送所述历史版本配置。
根据本公开的一个或多个实施例,示例10根据示例9所述的方法,按照所述历史版本配置的受众用户的分流比例,向所述历史版本配置的受众用户推送所述历史版本配置,包括:
按照所述历史版本配置中每种配置项的应用比例,向相应数量的受众用户推送包含相应配置项的历史版本配置
根据本公开的一个或多个实施例,示例11根据示例9所述的方法,所述向所述历史版本配置的受众用户推送所述历史版本配置,包括:
根据所述历史版本配置中每种配置项的应用比例之和确定所述历史版本配置中默认配置项的分流比例;
按照所述历史版本配置中默认配置项的分流比例,向相应数量的受众用户推送包含所述默认配置项的历史版本配置
根据本公开的一个或多个实施例,示例12根据示例1所述的方法,所述方法还包括:
在所述目标版本配置的发布进度增大的情况下,根据所述发布进度的增量在历史版本配置的受众用户中选择设定数量的用户作为所述目标版本配置的受众用户;其中,所述设定数量为用户总数与所述增量的乘积
根据本公开的一个或多个实施例,示例13根据示例1所述的方法,还包括:
在所述目标版本配置的发布过程中,如果检测到回滚指令以及全量的历史版本配置,则将所述历史版本配置推送至所述目标版本配置的受众用户;
如果不存在全量的历史版本配置,则停止向所述目标版本配置的受众用户发布目标版本配置
根据本公开的一个或多个实施例,示例14提供了一种灰度发布装置,包括:
生成模块,用于在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;
发布模块,用于根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
根据本公开的一个或多个实施例,示例15提供了一种服务器,包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如示例1-13中任一所述的方法。
根据本公开的一个或多个实施例,示例16提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现如示例1-13中任一所述的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (16)

1.一种灰度发布方法,其特征在于,包括:
在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
2.根据权利要求1所述的方法,其特征在于,所述配置数据包括至少一种配置项;
所述发布参数包括:每种配置项的应用比例。
3.根据权利要求1所述的方法,其特征在于,所述受众用户的过滤条件,包括以下至少之一:
所述目标版本配置的受众用户的分流比例不超过所述目标版本配置的发布进度;
所述目标版本配置的受众用户的用户标识属于白名单中的标识;
用户标识的哈希运算结果对应于所述目标版本配置的受众用户。
4.根据权利要求2所述的方法,其特征在于,根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置,包括:
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,确定所述目标版本配置中每种配置项的分流比例;
按照所述目标版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的目标版本配置。
5.根据权利要求4所述的方法,其特征在于,根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,确定所述目标版本配置中每种配置项的分流比例,包括:
若所述目标版本配置的发布进度为全量发布,则将全部用户作为所述目标版本配置的受众用户,并将每种配置项的应用比例分别作为所述目标版本配置中每种配置项的分流比例。
6.根据权利要求4所述的方法,其特征在于,根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,确定所述目标版本配置中每种配置项的分流比例,包括:
若所述目标版本配置的发布进度非全量发布,则根据所述发布进度将部分用户作为所述目标版本配置的受众用户,其中,所述目标版本配置的受众用户的分流比例不超过所述目标版本配置的发布进度;
将所述发布进度与每种配置项的应用比例的乘积分别作为所述目标版本配置中每种配置项的分流比例。
7.根据权利要求4所述的方法,其特征在于,所述配置数据还包括默认配置项;
根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置,还包括:
根据所述目标版本配置中每种配置项的分流比例之和确定所述目标版本配置中默认配置项的分流比例;
按照所述目标版本配置中默认配置项的分流比例向相应数量的受众用户推送包含所述默认配置项的目标版本配置。
8.根据权利要求4所述的方法,其特征在于,所述按照所述目标版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的目标版本配置,包括:
根据所述目标版本配置中每种配置项的分流比例,对每个用户标识进行哈希运算;
根据哈希运算结果确定每个用户为所述目标版本配置的受众用户或历史版本配置的受众用户;
向所述目标版本配置的受众用户中的相应数量的受众用户推送包含相应配置项的目标版本配置。
9.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述目标版本配置的发布进度非全量发布,则根据所述目标版本配置的发布进度确定历史版本配置的受众用户的分流比例;
按照所述历史版本配置的受众用户的分流比例,向所述历史版本配置的受众用户推送所述历史版本配置。
10.根据权利要求9所述的方法,其特征在于,按照所述历史版本配置的受众用户的分流比例,向所述历史版本配置的受众用户推送所述历史版本配置,包括:
按照所述历史版本配置中每种配置项的分流比例,向相应数量的受众用户推送包含相应配置项的历史版本配置。
11.根据权利要求9所述的方法,其特征在于,所述向所述历史版本配置的受众用户推送所述历史版本配置,包括:
根据所述历史版本配置中每种配置项的分流比例之和确定所述历史版本配置中默认配置项的分流比例;
按照所述历史版本配置中默认配置项的分流比例,向相应数量的受众用户推送包含所述默认配置项的历史版本配置。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标版本配置的发布进度增大的情况下,根据所述发布进度的增量在历史版本配置的受众用户中选择设定数量的用户作为所述目标版本配置的受众用户;其中,所述设定数量为用户总数与所述增量的乘积。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标版本配置的发布过程中,如果检测到回滚指令以及全量的历史版本配置,则将所述历史版本配置推送至所述目标版本配置的受众用户;
如果不存在全量的历史版本配置,则停止向所述目标版本配置的受众用户发布目标版本配置。
14.一种灰度发布装置,其特征在于,包括:
生成模块,用于在配置数据、发布参数和受众用户的过滤条件中的至少之一发生更新的情况下,生成目标版本配置;
发布模块,用于根据所述目标版本配置的发布进度、所述发布参数和所述受众用户的过滤条件,向所述目标版本配置的受众用户推送所述目标版本配置。
15.一种服务器,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-13中任一所述的灰度发布方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-13中任一所述的灰度发布方法。
CN202110231328.4A 2021-03-02 2021-03-02 一种灰度发布方法、装置、服务器及可读介质 Active CN112835617B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110231328.4A CN112835617B (zh) 2021-03-02 2021-03-02 一种灰度发布方法、装置、服务器及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110231328.4A CN112835617B (zh) 2021-03-02 2021-03-02 一种灰度发布方法、装置、服务器及可读介质

Publications (2)

Publication Number Publication Date
CN112835617A true CN112835617A (zh) 2021-05-25
CN112835617B CN112835617B (zh) 2024-04-02

Family

ID=75934386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110231328.4A Active CN112835617B (zh) 2021-03-02 2021-03-02 一种灰度发布方法、装置、服务器及可读介质

Country Status (1)

Country Link
CN (1) CN112835617B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113989034A (zh) * 2021-12-27 2022-01-28 云账户技术(天津)有限公司 银行属性数据管理方法、装置、电子设备及存储介质
CN114594974A (zh) * 2022-03-15 2022-06-07 北京火山引擎科技有限公司 灰度发布方法、装置、存储介质及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202123A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 灰度发布的方法及设备
CN109558162A (zh) * 2017-09-26 2019-04-02 腾讯科技(深圳)有限公司 应用程序发布方法、装置、计算机设备及存储介质
CN109597643A (zh) * 2018-11-27 2019-04-09 平安科技(深圳)有限公司 应用灰度发布方法、装置、电子设备及存储介质
CN110071960A (zh) * 2019-03-12 2019-07-30 平安科技(深圳)有限公司 管理灰度发布的方法、系统、设备及存储介质
CN110597535A (zh) * 2019-08-27 2019-12-20 贝壳技术有限公司 一种灰度发布的方法、装置和存储介质
CN110750278A (zh) * 2019-09-24 2020-02-04 苏宁云计算有限公司 灰度发布方法、装置、路由设备和存储介质
CN110830234A (zh) * 2019-11-06 2020-02-21 腾讯科技(深圳)有限公司 一种用户流量分配方法及装置
CN110928555A (zh) * 2019-11-21 2020-03-27 广州品唯软件有限公司 一种灰度发布控制方法、装置、计算机设备及存储介质
CN111813415A (zh) * 2020-04-15 2020-10-23 北京三快在线科技有限公司 灰度分流方法、装置、电子设备及计算机可读存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106202123A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 灰度发布的方法及设备
CN109558162A (zh) * 2017-09-26 2019-04-02 腾讯科技(深圳)有限公司 应用程序发布方法、装置、计算机设备及存储介质
CN109597643A (zh) * 2018-11-27 2019-04-09 平安科技(深圳)有限公司 应用灰度发布方法、装置、电子设备及存储介质
CN110071960A (zh) * 2019-03-12 2019-07-30 平安科技(深圳)有限公司 管理灰度发布的方法、系统、设备及存储介质
WO2020181684A1 (zh) * 2019-03-12 2020-09-17 平安科技(深圳)有限公司 管理灰度发布的方法、系统、设备及存储介质
CN110597535A (zh) * 2019-08-27 2019-12-20 贝壳技术有限公司 一种灰度发布的方法、装置和存储介质
CN110750278A (zh) * 2019-09-24 2020-02-04 苏宁云计算有限公司 灰度发布方法、装置、路由设备和存储介质
CN110830234A (zh) * 2019-11-06 2020-02-21 腾讯科技(深圳)有限公司 一种用户流量分配方法及装置
CN110928555A (zh) * 2019-11-21 2020-03-27 广州品唯软件有限公司 一种灰度发布控制方法、装置、计算机设备及存储介质
CN111813415A (zh) * 2020-04-15 2020-10-23 北京三快在线科技有限公司 灰度分流方法、装置、电子设备及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113989034A (zh) * 2021-12-27 2022-01-28 云账户技术(天津)有限公司 银行属性数据管理方法、装置、电子设备及存储介质
CN114594974A (zh) * 2022-03-15 2022-06-07 北京火山引擎科技有限公司 灰度发布方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN112835617B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
CN111190718A (zh) 实现任务调度的方法、装置及系统
CN109886693B (zh) 区块链系统的共识实现方法、装置、设备和介质
US20110093868A1 (en) Application module for managing interactions of distributed modality components
CN112835617B (zh) 一种灰度发布方法、装置、服务器及可读介质
CN113032112A (zh) 资源调度方法及装置、电子设备和存储介质
CN112600878B (zh) 一种数据传输方法及装置
CN114924851B (zh) 训练任务的调度方法、装置、电子设备和存储介质
CN112463535A (zh) 多集群异常处理方法及装置
US20220121916A1 (en) Electronic device and operating method thereof
CN112787999B (zh) 跨链调用方法、装置、系统与计算机可读存储介质
CN108632085B (zh) 灰度用户管理方法、装置、平台及存储介质
CN112527436A (zh) 弹窗显示方法、装置、电子设备和计算机可读介质
US11258838B2 (en) Method, system, and non-transitory computer readable record medium for processing chatroom based on usage
CN112445574B (zh) 应用容器多集群迁移方法及装置
CN115809126A (zh) 混合部署场景下的作业调度方法、装置及电子设备
US20210354713A1 (en) Agent control device, agent control method, and storage medium storing agent control program
CN115440209A (zh) 语音控制方法、装置、设备及计算机可读存储介质
CN111414232B (zh) 虚拟机模板数据处理方法及装置
CN114153542A (zh) 投屏方法、装置、电子设备及计算机可读存储介质
CN114997805A (zh) 审批业务的配置方法、装置、电子设备和存储介质
CN112148448A (zh) 资源分配方法、装置、设备和计算机可读介质
CN111290799A (zh) 组件加载方法、装置、电子设备、及存储介质
CN110619079A (zh) 用于推送信息的方法和装置
CN113934453B (zh) 风险检测方法、装置及存储介质
CN114296961B (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
GR01 Patent grant
GR01 Patent grant