灰度发布方法、装置、存储介质及电子设备与流程

文档序号:18795958发布日期:2019-09-29 19:38阅读:143来源:国知局
灰度发布方法、装置、存储介质及电子设备与流程

本发明涉及计算机技术领域,尤其涉及一种灰度发布方法、装置、存储介质及电子设备。



背景技术:

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式,它能够在产品正式发布之前,让用户参与到产品测试中,加强与用户的互动,并及时获得用户的意见反馈,进而完善产品功能,提升产品质量。

随着互联网和移动计算等技术的快速发展,互联网产品有一个明显的特点,就是不停的更新或升级。由于业务需求短时间内需要上线新产品,上线后往往要在业务规则、操作便捷性上做多次修改,形成了很多不必要的二次开发。

新增产品、功能或组件现在只能在测试环境上进行验证,发布后即为生产环境,很难分析新产品上线带来的影响,以及评估对现有产品模型、资费体系的冲击。因此应用开发者经常允许一部分用户使用新功能或者新产品等,以达到上线测试和改善等目的;或者某些产品某些功能只对某些用户开放,那么开发者需要配置数据库中的灰度策略,用于对用户的访问请求进行处理。

现有技术中每个灰度场景都需要重新开发对应的灰度策略,重复工作量大,浪费人力。同时代码冗余累积,不便维护,如果策略调整,则需要修改代码发版,影响策略响应的效率。



技术实现要素:

针对现有技术中的问题,本发明的目的在于提供一种灰度发布方法、装置、存储介质及电子设备,以通过页面配置实时更新灰度策略,而无需修改线上代码。

根据本发明的一方面,提供一种灰度发布方法,所述灰度发布方法包括:

s110,确定一灰度版本的灰度场景;

s120,根据对一可编辑页面的编辑操作生成对应所述灰度场景的灰度策略;

s130,根据所述灰度策略将多个用户加入白名单以作为测试对象,所述灰度版本仅供所述测试对象使用;

s140,接收所述测试对象提供的关于所述灰度版本的反馈信息;

s150,将提供所述反馈信息的测试对象加入黑名单,并取消黑名单中的用户对所述灰度版本的使用权限;

s160,接收通过所述可编辑页面更新的灰度策略,以重新确定待加入白名单的用户;

s170,判断所述白名单中的用户数量是否满足所述灰度版本的预定发布条件;若是,则结束;若否,则返回步骤s130。

在本发明的一实施方式中,步骤s160包括:

对更新后的灰度策略进行安全性与语法以及逻辑校验;

当校验成功时,将前一灰度策略设置为无效策略,并将更新后的灰度策略设置为有效策略。

在本发明的一实施方式中,步骤s120包括:

生成可视化的可编辑页面;

接收对所述可编辑页面的策略数据的增加、修改或删除的编辑操作,以生成对应所述灰度场景的灰度策略。

在本发明的一实施方式中,步骤s160包括:

获取多个用户的特征参数,所述特征参数至少包括用户id;

根据所述特征参数将各用户划归至至少一个第一用户集合;

将至少一个第一用户集合中的用户加入白名单。

在本发明的一实施方式中,若黑名单中的用户数量超出预设值,则更新所述灰度版本并返回步骤s110。

在本发明的一实施方式中,步骤s150包括:

获取提供所述反馈信息的测试对象的特征参数;

根据所述反馈信息的测试对象的特征参数将各用户划归至至少一个第二用户集合;

将至少一个第二用户集合中的用户加入黑名单。

在本发明的一实施方式中,步骤s160之前还包括:

于所述可编辑页面提供拟更新的灰度策略;

步骤s160还包括:

接收对所述可编辑页面的提供的拟更新的灰度策略的策略数据的增加、修改或删除的编辑操作,以生成更新的灰度策略。

根据本发明的另一方面,提供一种灰度发布装置,所述灰度发布装置包括:

识别模块,用以确定一灰度版本的灰度场景;

灰度策略生成模块,用以根据对一可编辑页面的编辑操作生成对应所述灰度场景的灰度策略;

白名单模块,用以根据所述灰度策略将多个用户加入白名单以作为测试对象,所述灰度版本仅供所述测试对象使用;

第一接收模块,用以接收所述测试对象提供的关于所述灰度版本的反馈信息;

黑名单模块,用以将提供所述反馈信息的测试对象加入黑名单,并取消黑名单中的用户对所述灰度版本的使用权限;

第二接收模块,用以接收通过所述可编辑页面更新的灰度策略,用以重新确定待加入白名单的用户。

判断模块,用以判断所述白名单中的用户数量是否满足所述灰度版本的预定发布条件,若否,则通过白名单模块根据更新后的灰度策略将多个用户加入白名单以作为测试对象。

根据本发明的又一方面,提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述灰度发布方法中的步骤。

根据本发明的又一方面,提供一种电子设备,所述电子设备包括:

处理器;

存储介质,其上存储有计算机程序,所述计算机程序被所述处理器运行时执行如上所述灰度发布方法中的步骤。

本发明可以通过页面配置实时更新灰度策略,且无需修改线上代码,使得所述灰度发布方法更加灵活,实用性更强。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。

图1是本发明一实施例中灰度发布方法的流程图。

图2是本发明另一实施例中灰度发布方法的局部流程图。

图3是本发明一实施例中灰度发布装置的结构示意图。

图4是本发明一实施例中计算机可读存储介质的结构示意图。以及

图5是本发明一实施例中电子设备的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

为了解决现有技术的不足,本发明提供一种灰度发布方法、装置、存储介质及电子设备,以通过页面配置实时更新灰度策略,且无需修改线上代码,使得所述灰度发布方法更加灵活,实用性更强。根据本发明的一方面,提供一种灰度发布方法,图1是本发明一实施例中灰度发布方法的流程图。如图1所示,所述灰度发布方法包括:

s110,确定一灰度版本的灰度场景。

其中,灰度场景可以是执行某种操作、展示某个应用或使用某个功能等时,只针对部分用户进行开放或配置的一种业务场景,而不是针对所有用户。示例性的,某个网站或客户端进行新功能的展示,需要对一些特定的用户进行展示,或者是只需要指定的用户使用此新功能,这是一种灰度场景。

s120,根据对一可编辑页面的编辑操作生成对应所述灰度场景的灰度策略。

其中,灰度策略是执行灰度场景时用到的一种方法,具体可以是如何执行新功能展示的方法,包括对某些用户的访问请求允许展示,而对某些用户不进行展示的执行方法。所述灰度策略可以从本地缓存中加载,如果本地缓存中没有对于所述灰度场景的灰度策略,则从数据库中调取。数据库中可以预存对应多种灰度场景的灰度策略。

进一步地,步骤s120包括:

利用html和javascript技术生成可视化的可编辑页面;

接收对所述可编辑页面的策略数据的增加、修改或删除的编辑操作,以生成对应所述灰度场景的灰度策略。

其中,html即超文本标记语言,javascript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端web开发的脚本语言,常用来给html网页添加动态功能,比如响应用户的各种操作。所述策略数据可以是系统预存的灰度策略的策略数据。使用者可以根据实际需求,通过增加、修改或删除等方式重新配置所述策略数据而得到一更加合适当前灰度场景的灰度策略。所编辑的策略数据可以用于指示哪些用户加入白名单,哪些用户加入黑名单,以及结束灰度测试条件等,本发明并非以此为限制。系统预存的灰度策略的策略数据例如可以是用户前次对同一应用的同一灰度场景的发布时,编辑的策略数据。

s130,根据所述灰度策略将多个用户加入白名单以作为测试对象,所述灰度版本仅供所述测试对象使用。

具体地,在具体的灰度场景中,当接收到用户的访问请求时,需要先确定访问请求所属的灰度场景,进一步在数据库中读取与所述灰度场景对应的灰度策略,通过灰度策略中具体设置的策略数据判断当前用户是否允许访问,进一步可以为相应的用户配置相应的功能或操作。比如网站或客户端中对某些特定的用户展示新功能的灰度场景,判断出当前用户是可以被展示新功能的,则可以为其配置新功能对应的数据。还可能是灰度场景中要更新某个组件,那么会为当前用户发送对应的更新文件,以供其下载更新安装。

s140,接收所述测试对象提供的关于所述灰度版本的反馈信息。

其中,所述反馈信息通常由测试对象对灰度版本的满意指数低于预设值时提供。例如,可以向测试对象提供满意指数打分界面,当满意指数低于60分时,向测试对象提供反馈信息提供提示,以指示该些用户提供改进该灰度版本的反馈信息,本发明并非以此为限制。在本发明的一实施方式中,若黑名单中的用户数量超出预设值,则更新所述灰度版本并返回步骤s110。比如,当提供所述反馈信息的用户数量超出本次测试对象总数的30%时,则可以直接停止所述灰度版本的测试,并根据所述反馈信息等数据对所述灰度版本进行整改,然后回到步骤s110进行新一轮测试。优选地,于回到步骤s110后,执行步骤s120时,向用户提供整改前的所述灰度版本的策略数据,以供用户进行参考。

s150,将提供所述反馈信息的测试对象加入黑名单,并取消黑名单中的用户对所述灰度版本的使用权限。

进一步地,步骤s150包括:获取提供所述反馈信息的测试对象的特征参数;根据所述反馈信息的测试对象的特征参数将各用户划归至至少一个第二用户集合;将至少一个第二用户集合中的用户加入黑名单。

其中,所述黑名单用于存储所述灰度场景中拒绝访问的用户id;与白名单类似,黑名单也可以有不同的名单类型,存储拒绝访问的不同类的用户id。所述黑名单可以存储于数据库或redis系统中,具体可以根据业务场景的需要读取不同存储系统中的信息进行灰度策略的执行。当然,黑名单策略中,如果黑名单有多个时,可以通过设置具体的执行规则输出对应的结果,比如设置符合多个黑名单中的任意一个即拒绝访问,也可以必须符合所有黑名单才拒绝访问。由此可以避免因版本更新而导致该部分用户流失。

s160,接收通过所述可编辑页面更新的灰度策略,用以重新确定待加入白名单的用户。

进一步地,步骤s160包括:

对更新后的灰度策略进行安全性与语法以及逻辑校验;

当校验成功时,将前一灰度策略设置为无效策略,并将更新后的灰度策略设置为有效策略。

具体而言,仅根据有效策略执行前述步骤s130。本实施例中,根据drools规则引擎对更新后的灰度策略进行安全性与语法以及逻辑校验。要求使用者输入几对期望入参值与期望出参值,如果更新后的灰度策略与期望运行的结果不匹配,使用者可以通过日志平台实时查询,日志平台记录了校验的全流程,能够迅速得知前述结果未匹配的原因。

在本发明的另一实施例中,步骤s160之前还包括:于所述可编辑页面提供拟更新的灰度策略。

对应地,步骤s160还包括:

接收对所述可编辑页面的提供的拟更新的灰度策略的策略数据的增加、修改或删除的编辑操作,以生成更新的灰度策略。

s170,判断所述白名单中的用户数量是否满足所述灰度版本的预定发布条件;若是,则结束;若否,则返回步骤s130。

在本实施例中,可以根据groovy规则生成拟更新的灰度策略。groovy是基于java平台开发的一门多功能性的动态语言,它具有静态类型和静态编译的功能。groovy具有强大的特性,比如脚本功能、dsl(domain-specificlanguage)语言编写,运行时和编译时元编程(meta-programming)以及函数式编程。

总而言之,为提高用户的接受度,可以先按照默认规则进行灰度测试,再根据用户反馈灵活地调整灰度策略,由此在保证用户不流失的情况下,更好的推广新功能。需要强调的是,本发明可以通过页面配置实时更新灰度策略,且无需修改线上代码,使得所述灰度发布方法更加灵活,实用性更强。

图2是本发明另一实施例中灰度发布方法的局部流程图。如图2所示,在本发明的另一实施例中,所述根据所述灰度策略将多个用户加入白名单以作为测试对象的步骤包括:

s21o,获取多个用户的特征参数,所述特征参数至少包括用户id;

s22o,根据所述特征参数将各用户划归至至少一个第一用户集合;

s23o,将至少一个第一用户集合中的用户加入白名单。

其中,用户id可以是某个网站或者客户端中用于唯一区分用户身份的标识。所述特征参数还可以包括访问应用的时间段、访问应用的频率等等。可以存在多个用户集合,每个用户可以归属一个或多个用户集合。当所述特征参数包括用户id外的其它项时,可以采用drools对所述特征参数进行校验。drools(jbossrules)具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已编码的规则执行了所需的业务规则。示例性的,如果在为特定用户展示某个客户端或网站的新功能的灰度场景中,比如需要为用户id尾号为3的用户以及开发此网站的一个项目组的人员的id配置并展示此新功能,则策略数据可以包括:具体的白名单内容,即存储项目组人员的id于白名单中;用户id预设位数信息设置为尾号,具体数值设置为3。可以根据不同的灰度场景中选择合适的一种或多种灰度策略,并根据具体业务需要配置相应的策略数据。可选的,所述灰度策略可以包括:预设位数信息以及灰度区间,所述灰度区间用于表示允许和/或拒绝访问的用户id预设位的数值;其中,预设位数可以是用户id中的某一位或某几位,灰度区间可以是用户id中的某一位或某几位的具体数值。示例性的,用户id为123456789,预设位数可以是最后两位。可选的,所述灰度区间可以存储于redis系统或zookeeper系统中,具体可以根据业务场景的需要读取不同存储系统中的信息进行灰度策略的执行。通过zookeeper进行注册监听,当灰度策略变化时,所有部署集群里面的机器都会收到通知,会主动去拉取最新的灰度策略并将其存储到本地缓存中。

示例性的,如果具体的灰度场景中选择向用户id尾号为9的用户展示新功能或者其他操作,预设位数信息为最后一位,灰度区间为9,代表id尾号为9的用户是可以允许访问的。同时,通过用户id尾号策略,还可以进行放量的控制,假设用户id尾号分布在0到9之间的用户个数是均匀的,那么选择用户id尾号为1的用户允许访问、选择用户id尾号为1和3的用户允许访问、选择用户id尾号为1、3和5的用户允许访问,就可以分别控制放量在10%、20%和30%。所述白名单用于存储所述灰度场景中允许访问的用户id;其中,根据实际的业务需要可以有不同的白名单类型。所述白名单可以存储于数据库或redis系统中,具体可以根据业务场景的需要读取不同存储系统中的信息进行灰度策略的执行。示例性的,如果在上述的新功能展示的过程中,有a和b两个文本显示,而a文本只针对m类用户显示,b文本只针对n类用户显示。这个灰度场景中的白名单就可以设置两个,一个白名单存m类的用户id,另一个白名单存n类的用户id。当然,如果白名单有多个时,可以通过设置具体的执行规则输出对应的结果,比如设置符合多个白名单中的任意一个即可允许访问,也可以必须符合所有白名单才允许访问。本发明可以通过页面配置实时更新灰度策略,且无需修改线上代码,使得所述灰度发布方法更加灵活,实用性更强。

根据本发明的又一方面,提供一种灰度发布装置。图3是本发明一实施例中灰度发布装置的结构示意图。如图3所示,所述灰度发布装置300包括:识别模块301、灰度策略生成模块302、白名单模块303、第一接收模块304、黑名单模块305、第二接收模块306以及判断模块307。所述识别模块301用以确定一灰度版本的灰度场景;所述灰度策略生成模块302用以根据对一可编辑页面的编辑操作生成对应所述灰度场景的灰度策略;所述白名单模块303用以根据所述灰度策略将多个用户加入白名单以作为测试对象,所述灰度版本仅供所述测试对象使用;所述第一接收模块304用以接收所述测试对象提供的关于所述灰度版本的反馈信息;所述黑名单模块305用以将提供所述反馈信息的测试对象加入黑名单,并取消黑名单中的用户对所述灰度版本的使用权限;所述第二接收模块306,用以接收通过所述可编辑页面更新的灰度策略,用以重新确定待加入白名单的用户;所述判断模块307用以判断所述白名单中的用户数量是否满足所述灰度版本的预定发布条件;若是,则结束,若否,则通过白名单模块30根据更新后的灰度策略将多个用户加入白名单以作为测试对象。

本发明可以通过页面配置实时更新灰度策略,且无需修改线上代码,使得所述灰度发布方法更加灵活,实用性更强。

图3仅仅是示意性的示出本发明提供的灰度发布装置300,在不违背本发明构思的前提下,模块的拆分、合并、增加都在本发明的保护范围之内。本发明提供的灰度发布装置300可以由软件、硬件、固件、插件及他们之间的任意组合来实现,本发明并非以此为限。

图4是本发明一实施例中计算机可读存储介质的结构示意图。图4描述了根据本发明的实施方式的用于实现上述方法的程序产品600,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品600可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。本发明可以通过页面配置实时更新灰度策略,且无需修改线上代码,使得所述灰度发布方法更加灵活,实用性更强。

在本发明的示例性实施例中,还提供一种电子设备,该电子设备可以包括处理器,以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述实施例中所述灰度发布方法。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

下面参照图5来描述根据本发明的这种实施方式的电子设备400。图5显示的电子设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图5所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:至少一个处理单元410、至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430、显示单元440等。

其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元410执行,使得所述处理单元410执行本说明书上述灰度发布方法中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元410可以执行如图1中所示的步骤。

所述存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(rom)4203。

所述存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器460可以通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明实施方式的上述灰度发布方法。本发明可以通过页面配置实时更新灰度策略,且无需修改线上代码,使得所述灰度发布方法更加灵活,实用性更强。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1