客户端灰度发布方法与流程

文档序号:15686061发布日期:2018-10-16 21:04阅读:2718来源:国知局

本发明涉及软件开发应用技术领域,具体涉及客户端灰度发布方法。



背景技术:

产品的发布过程不是一蹴而就,而是逐步扩大使用用户的范围,从公司内部用户到忠诚度较高的种子用户,再到更大范围的活跃用户,最后到所有用户。在此过程中,产品团队根据用户的反馈及时完善产品相关功能。此种发布方式,称之为“灰度发布”、“灰度放量”或“分流发布”。

在灰度发布中,客户试用新的客户端版本时,能及时发现存在的bug,可以及时对新客户端版本做出完善,新客户端版本在全面推向市场之前,会反复进行这样的完善升级操作,以确保该新客户端版本在全面推向市场时是最优化的。目前,客户端的灰度发布方式主要是将新客户端版本先发布到指定的应用市场中,引导对应的用户进行更新并使用,该方式主要缺点在于,在渠道有限的情况下,每次的灰度发布,由于具体发布到哪些用户是不可控的,就存在有可能都会发布给同一批用户的情况,这样这部分用户就会经常性的作为某新客户端版本的测试用户,这对于该新客户端版本的测试是不利的,每次的新版本更新都是推荐给同一批用户,对该部分用户体验差,也影响了用户对使用反馈的积极性。



技术实现要素:

本发明意在提供一种可以精确的控制客户端灰度发布的范围和试用人群的客户端灰度发布方法,可以避免每次发布给同一批用户或者反复的发布给同一个用户。

客户端灰度发布方法,包括以下内容:

在服务端设置灰度级别和灰度种子数;

终端向服务端请求某软件的新客户端版本更新;

服务端根据灰度级别、灰度种子数以及该终端所带的机器识别码,确定该终端是否进行该新客户端版本的更新。

解释:本发明中所述的机器识别码,可通过机器的网卡地址或imei码哈希得到,为机器自身携带的识别码。

本发明的有益效果在于:本发明首先在服务端设置灰度级别和灰度种子数,即设置特定的条件,这样,在终端向服务端请求新客户端版本更新时,通过设置的这个条件以及根据终端自身的机器识别码来确定是否允许该终端进行本次的新客户端版本更新,从而实现精确的控制客户端灰度发布的范围和试用人群,可以避免每次发布给同一批用户或者反复的发布给同一个用户。

进一步,服务端将终端所带的机器识别码进行哈希变换,得出对应于该终端的十进制数值。直接采用终端自身携带的机器识别码,进行哈希变换,计算得出十进制数值,来作为该终端是否可以进行新客户端版本更新的判断条件,无需单独对每个终端设置识别码。对于每个终端,即使应用或者系统进行重新安装以后,得到的十进制数值也不会变化。

进一步,所述的灰度种子数是指:各个终端的机器识别码哈希变换后得出的十进制数值中取最小的数值,从该最小的数值所对应的终端起允许进行某客户端版本更新,所述的灰度级别是指本次允许进行某客户端版本更新的终端数量。这样的设置方式,灰度种子数对应于终端机器识别码哈希变换后的十进制数值中的最小值,即设置了机器识别码哈希变换后的十进制数值的下限值,灰度级别代表了允许本次客户端版本更新的终端数量,即实现精确的控制客户端灰度发布的范围,同时灰度级别和灰度种子数共同形成了机器识别码哈希变换后的十进制数值的上限值。

进一步,服务端根据灰度级别、灰度种子数以及该终端所带的机器识别码,确定该终端是否进行该新客户端版本的更新的方式为:当终端所带机器识别码经过哈希变换后得出的十进制数据大于等于灰度种子数,小于等于灰度种子数与灰度级别数之和时,确认该终端进行新客户端版本的更新。通过该方式,只有终端所带机器识别码哈希变换后的十进制数值在灰度种子数和灰度种子数与灰度级别数之和之间的数值时,才允许该终端进行新客户端版本更新,达到精确的控制客户端灰度发布的范围和试用人群,可以避免每次灰度发布给同一批用户,致使这部分用户经常性的作为某新客户端版本的测试用户,从而影响测试效果。

具体实施方式

下面通过具体实施方式进一步详细说明:

本实施例所公开的客户端灰度发布方法,包括以下内容:

在某一客户端版本进行灰度发布前,在服务端设置灰度级别和灰度种子数;所述的灰度种子数是指:各个终端的机器识别码哈希变换后得出的十进制数值中取最小的数值,从该最小的数值所对应的终端起允许进行某客户端版本更新。例如,灰度种子数为45,表示根据终端机器识别码得出的十进制数值大于等于45的情况下才允许该终端进行新客户端版本的更新。

本实施例中,所述的灰度级别是指本次允许进行某客户端版本更新的终端数量。例如,灰度种子数为45,灰度级别设置为5,表示根据终端机器识别码得出的十进制数值大于45加5的情况下就不进行新客户端版本更新。

终端向服务端请求某软件的新客户端版本更新,在请求更新的同时,终端也将自身携带的机器识别码发送给了服务端,服务端将终端所带的机器识别码进行哈希变换,得出对应于该终端的十进制数值。

例如,终端a的网卡地址为:02:42:04:94:57:bd,对网卡地址进行md5哈希得到机器识别码为:eb68d7e3c7eda8c880a0668ac5444310,使用crc32检验算法得到3206883227。取模100得到该终端所带的机器识别码哈希变换后的十进制数值是27。

md5哈希意为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护,属于现有技术,在此不再赘述。

crc32检验算法,crc即循环冗余校验,是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定,循环冗余检查(crc)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性,crc32,意为在该算法中,使用一个4字节(32位)的校验值进行校验,crc32检验算法属于现有技术,因此在此不再赘述。

服务端根据灰度级别、灰度种子数以及该终端所带的机器识别码,确定该终端是否进行该新客户端版本的更新。本实施例中,服务端根据灰度级别、灰度种子数以及该终端所带的机器识别码,确定该终端是否进行该新客户端版本的更新的方式为:当终端所带机器识别码经过哈希变换后得出的十进制数据大于等于灰度种子数,小于等于灰度种子数与灰度级别数之和时,确认该终端进行新客户端版本的更新。

例如,终端b的网卡地址为:08:00:27:a6:55:f0,对网卡地址进行md5哈希得到机器识别码为:b23c1c4f9100c02b0fda49ff302e52c4,使用crc32检验算法得到593517502。取模100得到2,如果服务端设置的灰度种子数是1,灰度级别是5,2在1到5内,那么该终端将被允许进行新客户端版本的更新升级。又例如,终端a的网卡地址为:02:42:04:94:57:bd,对网卡地址进行md5哈希得到机器识别码为:eb68d7e3c7eda8c880a0668ac5444310,使用crc32检验算法得到3206883227。取模100得到27,如果服务端设置的灰度种子数是1,灰度级别是5,27不在1到5内,因此该终端不允许进行新客户端版本的更新升级。

终端c所带的机器识别码为:a865e947474074fa91fcc5bc3d3b904f,使用crc32,哈希为333582147。取模100得到47,如果服务端设置的灰度种子数是45,灰度级别是5,47在45到50内,那么该终端将被允许进行新客户端版本的更新升级。又例如,终端d所带的机器识别码为:0e52dde3757963d65c4e5c34b4253f43,使用cre32,哈希为2828629082。取模100得到82,如果服务端设置的灰度种子数是45,灰度级别是5,82不在45到50内,因此该终端不允许进行新客户端版本的更新升级。

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