CN111443941A - 灰度发布的方法及装置 - Google Patents

灰度发布的方法及装置 Download PDF

Info

Publication number
CN111443941A
CN111443941A CN202010227939.7A CN202010227939A CN111443941A CN 111443941 A CN111443941 A CN 111443941A CN 202010227939 A CN202010227939 A CN 202010227939A CN 111443941 A CN111443941 A CN 111443941A
Authority
CN
China
Prior art keywords
service request
service
version information
application
gray scale
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
Application number
CN202010227939.7A
Other languages
English (en)
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.)
Ping An Property and Casualty Insurance Company of China Ltd
Original Assignee
Ping An Property and Casualty Insurance Company of China 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 Ping An Property and Casualty Insurance Company of China Ltd filed Critical Ping An Property and Casualty Insurance Company of China Ltd
Priority to CN202010227939.7A priority Critical patent/CN111443941A/zh
Publication of CN111443941A publication Critical patent/CN111443941A/zh
Pending legal-status Critical Current

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本申请适用于应用测试技术领域,提供了一种灰度发布的方法及装置,所述方法包括:接收终端设备发送的业务请求;所述业务请求由用户在终端设备的前端应用中触发,所述业务请求包括所述前端应用的应用版本信息;若所述业务请求还包括灰度标识,且所述灰度标识为第一预设值,则确定所述用户属于灰度环境,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;将所述业务请求发送至具有第一目标服务版本的灰度服务器,所述第一目标服务版本为后端服务版本信息对应的后端服务版本。本申请提高了灰度测试结果的可靠性,进而降低应用生产上线后的回滚概率。

Description

灰度发布的方法及装置
技术领域
本申请属于互联网技术领域,尤其涉及一种灰度发布的方法及装置。
背景技术
对于传统软件产品的发布,其发布过程通常都不是一蹴而就的,一般都会经历多个阶段。各个阶段所涉及的用户数是逐步放量的,以逐渐扩大使用用户的范围。上述发布方式为称为灰度发布、灰度放量或分流发布。在灰度发布过程中,产品团队可根据用户的反馈及时完善产品相关功能。
目前的灰度发布方案中,通常将不同版本的应用随机分配给不同的用户群,来搜集用户的使用信息进行前端应用的功能验证。而对于互联网后端服务的功能验证,也是将后端服务分配给不同的用户群。
可见,目前的灰度发布方案不能针对不同应用版本,特定用户群以及特定版本的后端服务进行验证,存在灰度测试可靠性较低的问题。
发明内容
本申请实施例提供了一种灰度发布的方法及装置,可以解决相关技术中灰度测试可靠性较低的技术问题。
第一方面,本申请实施例提供了一种灰度发布的方法,包括:
接收终端设备发送的业务请求;所述业务请求由用户在终端设备的前端应用中触发,所述业务请求包括所述前端应用的应用版本信息;
若所述业务请求还包括灰度标识,且所述灰度标识为第一预设值,则确定所述用户属于灰度环境,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;
将所述业务请求发送至具有第一目标服务版本的灰度服务器,所述第一目标服务版本为后端服务版本信息对应的后端服务版本。
第二方面,本申请实施例提供了一种灰度发布的装置,包括:
接收模块,用于接收终端设备发送的业务请求;所述业务请求由用户在终端设备的前端应用中触发,所述业务请求包括所述前端应用的应用版本信息;
第一确定模块,用于若所述业务请求还包括灰度标识,且所述灰度标识为第一预设值,则确定所述用户属于灰度环境,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;
第一发送模块,用于将所述业务请求发送至具有第一目标服务版本的灰度服务器,所述第一目标服务版本为后端服务版本信息对应的后端服务版本。
第三方面,本申请实施例提供了一种网络终端,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如第一方面所述的方法。
在本申请实施例中,用户终端部署了前端应用,负载设备预设有前端应用版本与后端服务版本的对应关系,因而可以实现将前端应用版本分流至后端服务版本中。本申请实施例实现了更完备的灰度发布,针对不同的服务环境都能进行有效测试,提高了灰度测试结果的可靠性,进而降低应用生产上线后的回滚概率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的灰度发布方法的应用场景;
图2是本申请一实施例提供的灰度发布的方法的流程示意图;
图3是本申请另一实施例提供的灰度发布的方法的流程示意图;
图4是本申请另一实施例提供的灰度发布的方法的流程示意图;
图5是本申请一实施例提供的灰度发布的装置的结构示意图;
图6是本申请一实施例提供的灰度发布的方法所适用于的网络终端的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚,完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“若”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“若确定”或“若检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
先通过非限制示例对本申请实施例的应用场景进行举例说明。图1所示,为本申请实施例提供的灰度发布方法的应用场景。
如图1所示,该应用场景包括两个用户终端11,负载设备12,和多个服务器。服务器包括生产服务器13和多个灰度服务器14。用户终端11与负载设备12通过有线或无线的通信网络进行通信连接。负载设备12与服务器通过有线或无线的通信网络进行通信连接。
用户终端11用于部署灰度发布的前端应用。服务器用于部署灰度发布的后端服务。
两个用户终端11可以部署具有相同应用版本的前端应用,还可以部署具有不同应用版本的前端应用。用户终端11中前端应用的应用版本,由用户安装的应用版本而定。
生产服务器13为处于生产环境的服务器。灰度服务器14为处于灰度环境的服务器。生产服务器13和灰度服务器14部署有不同的后端服务版本。生产服务器13部署旧的后端服务版本。不同灰度服务器14部署有不同的升级后的后端服务版本。
前端应用可以包括网页应用或移动应用等。本申请对前端应用的类型不予限制。
用户登录前端应用后,用户终端11可以通过与负载设备12交互查询用户所属环境,负载设备12确定用户所属环境,返回对应的灰度标识给用户终端11。继而用户终端11在业务请求中携带区分用户所属环境的灰度标识。也就是说,非首次业务请求中包括来自负载设备12的用于区分用户所属环境的灰度标识。用户所属环境包括灰度环境或生产环境。本申请实施例中,通过不同的预设值来区分灰度环境和生产环境。灰度标识为第一预设值,代表用户属于灰度环境;灰度标识为第二预设值,代表用户属于生产环境。负载设备12的分流引擎处理分流逻辑,根据业务请求的灰度标识,将不同业务请求分流至生产环境或灰度环境。也就是说,将负载设备12将不同业务请求分流至生产服务器13或灰度服务器14。在其他一些实施例中,负载设备12还可以将分流数据存储到数据库,例如远程字典服务(RemoteDictionary Server,Redis),或数据库服务器。
作为本申请一非限制性示例,前端应用发出的业务请求可以为http请求,http请求的请求头(header)可以包括用于区分用户所属环境的灰度标识。例如,第一预设值为“1”,第二预设值为“0”。
在本申请实施例中,当负载设备12根据业务请求确定用户所属环境为灰度环境,负载设备12还根据前端应用的应用版本信息确定与之对应的服务版本信息,将业务请求分流至服务版本信息关联的灰度服务器14。
用户登录前端应用后,用户终端11可以通过与负载设备12交互查询用户所属环境。此时,用户终端11发送至负载设备12的业务请求为查询请求,查询请求未携带灰度标识。负载设备12确定业务请求未包括灰度标识,则识别用户所属的群组。负载设备12预设第一对应关系表,根据该关系表,查询用户所属群组,以及所属群组对应的所属环境和应用版本信息。负载设备12反馈用户的所述环境对应的灰度标识以及应用版本信息给用户终端。
在一些情形下,负载设备12反馈的应用版本信息与用户终端当前的应用版本信息不一致,则提醒用户对版本进行升级或回滚,完成前端应用的灰度发布。
本申请实施例中,对用户划分群组,实现各个版本的前端应用部署,将前端应用版本设置成对应后端服务版本,以实现将不同的前端应用版本分流至不同的后端服务版本中。本申请实施例实现了更完备的灰度发布,针对每一套服务环境都能进行有效测试,提高了灰度测试结果的可靠性,进而降低应用生产上线后的回滚概率。
无线通信网络包括但不限于无线上网(Wireless Fidelity,Wi-Fi)、紫蜂协议(ZigBee)、蓝牙、全球移动通讯系统(Global System of Mobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code DivisionMultiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、第五代移动通信网络(5th generationmobile networks,5G)和未来采用的通信网络等。
在图1的示例中,用户终端包括手机和笔记本电脑。应理解,在其他示例中,用户终端可以包括平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、或个人数字助理(personal digital assistant,PDA)等终端设备。本申请实施例对用户终端的具体类型不作任何限制。
应理解,在在本申请实施例中,服务器包括但不限于独立的服务器,分布式服务器,服务器集群或云端服务器等。
应理解,在在本申请实施例中,负载设备可以为用户终端侧的负载设备,还可以为服务器侧的负载设备,本申请对此不予限制。
还应理解,图1示例的用户终端的数量,负载设备的数量,服务器的数量等不能构成对本申请的具体限制。本领域技术人员应理解,用户终端的数量,负载设备的数量,服务器的设备等都可以根据实际需求进行选择设置。
图2示出了本申请实施例提供的一种灰度发布的方法的实现流程图。作为示例而非限定,该方法可以应用于图1所示的负载设备12中。所述方法包括步骤S210至步骤S260。
S210,接收终端设备发送的业务请求;所述业务请求由用户在终端设备的前端应用中触发,所述业务请求包括所述前端应用的应用版本信息。
在本申请实施例中,终端设备通常为用户终端。例如,可以为图1所示的用户终端。
业务请求包括应用的应用版本信息。应用版本信息表示终端设备当前使用的前端应用的应用版本。
S220,若所述业务请求还包括灰度标识,且所述灰度标识为第一预设值,则确定所述用户属于灰度环境。
S230,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息。
S240,将所述业务请求发送至具有目标服务版本的灰度服务器,所述目标服务版本为所述后端服务版本信息对应的后端服务版本。
S250,若所述业务请求还包括灰度标识,所述灰度标识为第二预设值,则确定所述用户属于生产环境。
S260,将所述业务请求发送至生产服务器。
其中,灰度标识用于区分用户所属环境,所属环境包括灰度环境或生产环境。在本申请实施例中,通过不同的预设值来区分灰度环境和生产环境。灰度标识为第一预设值,例如1,代表用户属于灰度环境;灰度标识为第二预设值,例如0,代表用户属于生产环境。
当负载设备接收到业务请求,若确定业务请求包括灰度标识,则意味着用户终端在发送业务请求之前,已经完成与负载设备的交互,确定了用户所属环境为灰度环境还是生产环境。
若业务请求包括灰度标识,且灰度标识为第一预设值,则确定用户属于灰度环境,继续执行步骤S240和S250。即根据业务请求包括的应用版本信息确定业务请求对应的后端服务版本信息,以及将业务请求发送至具有所述后端服务版本信息对应的服务版本的灰度服务器。
作为本申请一非限制性示例,负载设备预设有第二对应关系表,第二对应关系表包括前端的应用版本信息与后端服务的后端服务版本信息的对应关系。对应关系可以为一一对应的关系,也可以为一对多或多对一的对应关系。
基于此,负载设备可以通过查找预设第二对应关系表,获取业务请求包括的应用版本信息对应的后端服务版本信息,然后再将业务请求发送至具有该后端服务版本信息对应的目标服务版本的灰度服务器。
应理解,后端服务版本信息可以包括所有需要灰度验证的后端服务版本。
若业务请求包括灰度标识,且灰度标识为第二预设值,则确定用户属于生产环境,继续执行步骤S260。即将业务请求发送至生产服务器。
本申请实施例,用户终端部署了前端应用,负载设备预设有前端应用版本与后端服务版本的对应关系,因而可以实现将前端应用版本分流至后端服务版本中。本申请实施例实现了更完备的灰度发布,针对不同的服务环境都能进行有效测试,提高了灰度测试结果的可靠性,进而降低应用生产上线后的回滚概率。
在一些情形下,由于系统错误或传输出错等,即使业务请求包括灰度标识,灰度标识可能不为第一预设值和第二预设值。此时,本实施例提出了在图2实施例的基础上,增加对灰度标识进行校正,从而实现业务请求分流的方案。本实施例,在图2所示实施例的基础上,增加了对灰度标识进行校正以实现分流的过程,即在图2步骤S210之后,如图3所示,增加了步骤S310至S390。应理解,本实施例中与图2所示实施例相同之处,此处不再赘述,请参见前述。
S310,若所述业务请求还包括灰度标识,所述灰度标识不为第一预设值且不为第二预设值,则获取所述用户的历史灰度值。
负载设备可以将分流数据存储到预设数据库,例如,数据库服务器。负载设备接收到的业务请求包括灰度标识,但是该灰度标识不为第一预设值且不为第二预设值,则从预设数据库中获取用户历史灰度值。历史灰度值为用户的历史灰度标识,“历史”两字用于将历史灰度标识与业务请求当前包括的灰度标识进行区分。实质上,历史灰度值也是一种灰度标识,用于区分用户所属环境。
作为本申请一非限制性示例,业务请求还包括用户标识,用户标识用于区分不同的用户,例如,用户标识可以为用户唯一标识。负载设备在预设数据库中存储不同用户的分流数据。负载设备根据用户标识,从预设数据库中获取用户标识对应的灰度标识,即历史灰度值。历史灰度值可以为一个,也可以多个。也就是说,预设数据库中可以存储用户最近一次的灰度标识,也可以存储最近的多个灰度标识,本申请对此不予限制。优选地,为了提高分流的准确度,历史灰度标识可以为最近一次的灰度标识。
步骤S320中,若确定历史灰度值为第一灰度值,则确定用户属于灰度环境,继续执行步骤S330和S340。即根据业务请求包括的应用版本信息确定业务请求对应的后端服务版本信息,以及将业务请求发送至具有所述后端服务版本信息对应的服务版本的灰度服务器。
步骤S350中,若确定历史灰度值为第二预设值,则确定用户属于生产环境,继续执行步骤S360。即将业务请求发送至生产服务器。
步骤S370中,若确定历史灰度值不为第一预设值且不为第二预设值,则对该历史灰度值与第三预设值求模,得到模值。再根据模值是否小于预设阈值,对业务请求进行分流。具体地,当模值等于或大于预设阈值,则执行步骤S380。当模值小于预设阈值,执行步骤S390。
S320,若所述历史灰度值为第一预设值,则确定所述用户属于灰度环境。
S330,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息。
S340,将所述业务请求发送至具有第二目标服务版本的灰度服务器,所述第二目标服务版本为所述后端服务版本信息对应的后端服务版本。
S350,若所述历史灰度值为第二预设值,则确定所述用户属于生产环境。
S360,将所述业务请求发送至生产服务器。
S370,若所述历史灰度值不为第一预设值且不为第二预设值,则对所述历史灰度值与第三预设值求模,得到模值。
其中,第三预设值为正整数。可以为预设整数,还可以为后端服务版本的版本总数。预设整数可以为经验值,可以预先设置在系统中;还可以根据用户需求进行选择设置。本申请对此不予限制。
作为本申请一非限制性示例,历史灰度值为M,且M为正整数,第三预设值为N。对M与N求模,得到模值X,表示为X=M mod N,X为M被N整除后的余数。
作为本申请另一非限制性示例,历史灰度值不为正整数时,可以对历史灰度值进行预处理,例如取整和/或取绝对值,再将预处理后的历史灰度值与第三预设值求模,得到模值。
S380,若所述模值等于或大于预设阈值,则根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;将所述业务请求发送至具有第三目标服务版本的灰度服务器,所述第三目标服务版本为所述后端服务版本信息对应的后端服务版本。
其中,预设阈值可以为经验值,可以预先设置在系统中;预设阈值还可以根据用户需求进行选择设置。本申请对此不予限制。
应理解,第一目标服务版本,第二目标服务版本,第三目标服务版本,仅用于区分在不同方案中出现的目标服务版本。实质上,三者均为业务请求包括的前端应用版本对应的后端服务版本,也就是说,在本申请实施例中三者实质上为相同服务版本。
可选地,在本申请一些实施例中,在S380之后,还包括,更新用户的历史灰度值为第一预设值。
在步骤S380中,将用户的业务请求分流至了灰度服务器,此时,意味着将用户终端的用户属于灰度环境。因而,负载设备更新历史灰度值为第一预设值,代表用户所属环境为灰度环境。
S390,若所述模值小于预设阈值,则将所述业务请求发送至生产服务器。
本申请实施例在图2所示实施例的基础上,当灰度标识出错时,获取用户的历史灰度值,从而基于历史灰度值对业务请求进行分流,提高了对业务请求分流的完备性,因而更一步提高了灰度测试结果的可靠性,进而进一步降低应用生产上线后的回滚概率。
在一些情形下,即用户终端未与负载设备交互确定用户所属环境的情形下,负载设备接收到的业务请求可能不包括灰度标识,基于此,在本实施例中,在步骤S210之后,增加了负载设备确定用户所属环境的过程。如图4所示,本实施例在图2或图3所示实施例的基础上,增加了步骤S410至S430。
S410,若所述业务请求不包括灰度标识,则识别所述用户所属的群组;
在本申请实施例中,负载设备预存储有根据用户划分的群组,各个群组所属的环境(包括灰度环境和生产环境),以及各个群组对应的应用版本信息。也就是说负载设备预先对用户进行了分组,分成了几个群组,并为每个群组分配了所属环境以及前端应用版本。
作为本申请一示例,业务请求还包括用户的用户标识。负载设备预存储有用户标识所属的群组。负载设备根据用户的用户标识识别用户所属群组。
作为本申请另一示例,业务请求还包括用户的用户标识。负载设备根据业务请求的用户标识,依次将不同用户分配至各个群组。例如,群组包括群组A,B和C,负载设备接收到的业务请求队列中,依次包括6个不同的用户标识:a,b,c,d,e和f,用户标识为a的用户分配至群组A,用户标识为b的用户分配至群组B,用户标识为c的用户分配至群组C,用户标识为d的用户分配至群组A,用户标识为e的用户分配至群组B,用户标识为f的用户分配至群组C。
S420,若所述群组属于灰度环境,则查找预设第一对应关系表,获取所述群组对应的应用版本信息;所述第一对应关系表包括所述群组与所述应用版本信息的对应关系。
其中,负载设备与预存储有群组与应用版本信息的第一对应关系,从而将属于灰度环境的不同用户部署至各个前端应用。查找预设第一对应关系表,获取用户所属群组对应的应用版本信息。
应理解,应用服务版本信息可以包括所有需要灰度验证的前端应用版本。
S430,反馈所述应用版本信息,和灰度标识为第一预设值至所述终端设备,以使得所述终端设备更新所述前端应用至所述应用版本信息对应的版本。
其中,负载设备反馈应用版本信息至终端设备,即用户终端,以提示用户将用户终端的前端应用更新至应用版本信息对应的版本。从而完成前端应用的版本部署。
负载设备反馈灰度标识为第一预设值至终端设备,即用户终端。这样终端设备在后续发送业务请求时可以携带灰度标识,从而实现将属于灰度环境的业务请求分流至后端灰度服务器。
S440,若所述群组属于生产环境,则将所述业务请求发送至生产服务器,反馈灰度标识为第二预设值至所述终端设备。
其中,负载设备若确定用户所属的群组属于生产环境,则将业务请求发送至生产服务器,并反馈灰度标识为第二预设值至终端设备,即用户终端。这样终端设备后续发送业务请求时可携带灰度标识,从而将属于生产环境的业务请求分流至生产服务器。
在本申请实施例中,对用户划分群组,实现多版本的前端应用部署,将前端应用版本设置成对应后端服务版本,以实现将不同的前端应用版本分流至后端不同的服务版本中。本申请实施例实现了更完备的灰度发布,针对每一套服务环境都能进行有效测试,提高了灰度测试结果的可靠性,进而降低应用生产上线后的回滚概率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的灰度发布的方法,图5示出了本申请实施例提供的灰度发布的装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图5,该装置包括:
接收模块51,用于接收终端设备发送的业务请求;所述业务请求由用户在终端设备的前端应用中触发,所述业务请求包括所述前端应用的应用版本信息;
第一确定模块52,用于若所述业务请求还包括灰度标识,且所述灰度标识为第一预设值,则确定所述用户属于灰度环境,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;
第一发送模块53,用于将所述业务请求发送至具有第一目标服务版本的灰度服务器,所述第一目标服务版本为后端服务版本信息对应的后端服务版本。
可选地,所述装置还包括第二确定模块和第二发送模块。
其中,所述第二确定模块,用于若所述业务请求还包括灰度标识,所述灰度标识为第二预设值,则确定所述用户属于生产环境。
所述第二发送模块,用于若第二确定模块确定用户属于生产环境,将所述业务请求发送至生产服务器。
可选地,所述装置还包括第一获取模块和分流模块。
其中,所述第一获取模块,用于若所述业务请求还包括灰度标识,所述灰度标识不为第一预设值且不为第二预设值,则获取所述用户的历史灰度值;
所述分流模块,用于:
若所述历史灰度值为第一预设值,则确定所述用户属于灰度环境,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;将所述业务请求发送至具有第二目标服务版本的灰度服务器,所述第二目标服务版本为所述后端服务版本信息对应的后端服务版本;
若所述历史灰度值为第二预设值,则确定所述用户属于生产环境,将所述业务请求发送至生产服务器;
若所述历史灰度值不为第一预设值且不为第二预设值,则对所述历史灰度值与第三预设值求模,得到模值;
若所述模值等于或大于预设阈值,则根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;将所述业务请求发送至具有第三目标服务版本的灰度服务器,所述第三目标服务版本为所述后端服务版本信息对应的后端服务版本;
若所述模值小于预设阈值,则将所述业务请求发送至生产服务器。
可选地,所述装置还包括识别模块和部署模块。
其中,所述识别模块,用于若所述业务请求不包括灰度标识,则识别所述用户所属的群组;
所述部署模块,用于:
若所述群组属于灰度环境,则查找预设第一对应关系表,获取所述群组对应的应用版本信息;所述第一对应关系表包括所述群组与所述应用版本信息的对应关系;
反馈所述应用版本信息,和灰度标识为第一预设值至所述终端设备,以使得所述终端设备更新所述前端应用至所述应用版本信息对应的版本。
可选地,所述部署模块,还用于:
若所述群组属于生产环境,则将所述业务请求发送至生产服务器,反馈灰度标识为第二预设值至所述终端设备。
可选地,所述业务请求还包括所述用户的用户标识;
所述识别所述用户所属的群组,包括:根据所述用户标识识别所述用户所属的群组。
可选地,所述根据所述应用版本信息确定所述业务请求对应的后端服务版本信息,包括:
查找预设第二对应关系表,获取所述应用版本信息对应的后端服务版本信息;所述预设第二对应关系表包括所述应用版本信息与所述后端服务版本信息的对应关系。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图6为本申请一实施例提供的网络终端的结构示意图。如图6所示,该实施例的网络终端6包括:至少一个处理器60(图6中仅示出一个处理器)、存储器61以及存储在所述存储器61中并可在所述至少一个处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述各个方法实施例中的步骤。例如图2所示的步骤S210至S260。或者,所述处理器60执行所述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块51至53的功能。
示例性的,所述计算机程序62可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器61中,并由所述处理器60执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序62在所述网络终端6中的执行过程。
所述网络终端6可以是负载设备等网络终端。所述网络终端6可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图6仅仅是网络终端6的示例,并不构成对网络终端6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述网络终端还可以包括输入输出设备、网络接入设备、总线等。
所述处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61可以是所述网络终端6的内部存储单元,例如网络终端6的硬盘或内存。所述存储器61也可以是所述网络终端6的外部存储设备,例如所述网络终端6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述网络终端6的内部存储单元也包括外部存储设备。所述存储器61用于存储所述计算机程序以及所述网络终端6所需的其他程序和数据。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到网络终端的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种灰度发布的方法,其特征在于,包括:
接收终端设备发送的业务请求;所述业务请求由用户在终端设备的前端应用中触发,所述业务请求包括所述前端应用的应用版本信息;
若所述业务请求还包括灰度标识,且所述灰度标识为第一预设值,则确定所述用户属于灰度环境,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;
将所述业务请求发送至具有第一目标服务版本的灰度服务器,所述第一目标服务版本为后端服务版本信息对应的后端服务版本。
2.如权利要求1所述的方法,其特征在于,还包括:
若所述业务请求还包括灰度标识,所述灰度标识为第二预设值,则确定所述用户属于生产环境,将所述业务请求发送至生产服务器。
3.如权利要求1或2所述的方法,其特征在于,还包括:
若所述业务请求还包括灰度标识,所述灰度标识不为第一预设值且不为第二预设值,则获取所述用户的历史灰度值;
若所述历史灰度值为第一预设值,则确定所述用户属于灰度环境,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;将所述业务请求发送至具有第二目标服务版本的灰度服务器,所述第二目标服务版本为所述后端服务版本信息对应的后端服务版本;
若所述历史灰度值为第二预设值,则确定所述用户属于生产环境,将所述业务请求发送至生产服务器;
若所述历史灰度值不为第一预设值且不为第二预设值,则对所述历史灰度值与第三预设值求模,得到模值;
若所述模值等于或大于预设阈值,则根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;将所述业务请求发送至具有第三目标服务版本的灰度服务器,所述第三目标服务版本为所述后端服务版本信息对应的后端服务版本;
若所述模值小于预设阈值,则将所述业务请求发送至生产服务器。
4.如权利要求1或2所述的方法,其特征在于,所述接收终端设备发送的业务请求之后,还包括:
若所述业务请求不包括灰度标识,则识别所述用户所属的群组;
若所述群组属于灰度环境,则查找预设第一对应关系表,获取所述群组对应的应用版本信息;所述第一对应关系表包括所述群组与所述应用版本信息的对应关系;
反馈所述应用版本信息,和灰度标识为第一预设值至所述终端设备,以使得所述终端设备更新所述前端应用至所述应用版本信息对应的版本。
5.如权利要求4所述的方法,其特征在于,所述识别所述用户所属群组之后,还包括:
若所述群组属于生产环境,则将所述业务请求发送至生产服务器,反馈灰度标识为第二预设值至所述终端设备。
6.如权利要求4所述的方法,其特征在于,所述业务请求还包括所述用户的用户标识;
所述识别所述用户所属的群组,包括:根据所述用户标识识别所述用户所属的群组。
7.如权利要求1或2所述的方法,其特征在于,所述根据所述应用版本信息确定所述业务请求对应的后端服务版本信息,包括:
查找预设第二对应关系表,获取所述应用版本信息对应的后端服务版本信息;所述预设第二对应关系表包括所述应用版本信息与所述后端服务版本信息的对应关系。
8.一种灰度发布的装置,其特征在于,包括:
接收模块,用于接收终端设备发送的业务请求;所述业务请求由用户在终端设备的前端应用中触发,所述业务请求包括所述前端应用的应用版本信息;
第一确定模块,用于若所述业务请求还包括灰度标识,且所述灰度标识为第一预设值,则确定所述用户属于灰度环境,根据所述应用版本信息确定所述业务请求对应的后端服务版本信息;
第一发送模块,用于将所述业务请求发送至具有第一目标服务版本的灰度服务器,所述第一目标服务版本为后端服务版本信息对应的后端服务版本。
9.一种网络终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202010227939.7A 2020-03-27 2020-03-27 灰度发布的方法及装置 Pending CN111443941A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010227939.7A CN111443941A (zh) 2020-03-27 2020-03-27 灰度发布的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010227939.7A CN111443941A (zh) 2020-03-27 2020-03-27 灰度发布的方法及装置

Publications (1)

Publication Number Publication Date
CN111443941A true CN111443941A (zh) 2020-07-24

Family

ID=71653955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010227939.7A Pending CN111443941A (zh) 2020-03-27 2020-03-27 灰度发布的方法及装置

Country Status (1)

Country Link
CN (1) CN111443941A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988416A (zh) * 2020-08-27 2020-11-24 广州市百果园信息技术有限公司 一种灰度发布方法、装置、设备及介质
CN112199104A (zh) * 2020-10-10 2021-01-08 卫宁健康科技集团股份有限公司 一种软件升级方法、装置、电子设备和存储介质
CN112685075A (zh) * 2020-12-31 2021-04-20 五八有限公司 灰度发布方法、装置、电子设备和计算机可读介质
CN112685287A (zh) * 2020-11-30 2021-04-20 青岛海尔科技有限公司 产品数据的测试方法、装置、存储介质及电子装置
CN113434188A (zh) * 2021-06-24 2021-09-24 未鲲(上海)科技服务有限公司 灰度放量方法、装置、计算机设备及存储介质
CN113763094A (zh) * 2020-11-23 2021-12-07 北京沃东天骏信息技术有限公司 一种业务信息处理方法、装置、服务器、介质和系统
CN114157608A (zh) * 2021-10-27 2022-03-08 车主邦(北京)科技有限公司 一种系统升级过程中控制流量的方法及装置
CN114385515A (zh) * 2022-03-24 2022-04-22 凯泰铭科技(北京)有限公司 保险运营平台的灰度发布方法、系统、装置
CN114710550A (zh) * 2022-03-18 2022-07-05 中国建设银行股份有限公司 请求响应方法、装置、设备及计算机存储介质
CN115016824A (zh) * 2022-08-09 2022-09-06 飞狐信息技术(天津)有限公司 一种服务安全更新方法及相关设备

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111988416B (zh) * 2020-08-27 2023-04-21 广州市百果园信息技术有限公司 一种灰度发布方法、装置、设备及介质
CN111988416A (zh) * 2020-08-27 2020-11-24 广州市百果园信息技术有限公司 一种灰度发布方法、装置、设备及介质
CN112199104A (zh) * 2020-10-10 2021-01-08 卫宁健康科技集团股份有限公司 一种软件升级方法、装置、电子设备和存储介质
CN112199104B (zh) * 2020-10-10 2024-03-01 卫宁健康科技集团股份有限公司 一种软件升级方法、装置、电子设备和存储介质
CN113763094A (zh) * 2020-11-23 2021-12-07 北京沃东天骏信息技术有限公司 一种业务信息处理方法、装置、服务器、介质和系统
CN112685287A (zh) * 2020-11-30 2021-04-20 青岛海尔科技有限公司 产品数据的测试方法、装置、存储介质及电子装置
CN112685287B (zh) * 2020-11-30 2023-11-28 青岛海尔科技有限公司 产品数据的测试方法、装置、存储介质及电子装置
CN112685075A (zh) * 2020-12-31 2021-04-20 五八有限公司 灰度发布方法、装置、电子设备和计算机可读介质
CN113434188A (zh) * 2021-06-24 2021-09-24 未鲲(上海)科技服务有限公司 灰度放量方法、装置、计算机设备及存储介质
CN114157608A (zh) * 2021-10-27 2022-03-08 车主邦(北京)科技有限公司 一种系统升级过程中控制流量的方法及装置
CN114710550A (zh) * 2022-03-18 2022-07-05 中国建设银行股份有限公司 请求响应方法、装置、设备及计算机存储介质
CN114385515A (zh) * 2022-03-24 2022-04-22 凯泰铭科技(北京)有限公司 保险运营平台的灰度发布方法、系统、装置
CN115016824B (zh) * 2022-08-09 2022-12-13 飞狐信息技术(天津)有限公司 一种服务安全更新方法及相关设备
CN115016824A (zh) * 2022-08-09 2022-09-06 飞狐信息技术(天津)有限公司 一种服务安全更新方法及相关设备

Similar Documents

Publication Publication Date Title
CN111443941A (zh) 灰度发布的方法及装置
CN110543324B (zh) 一种应用程序的插件增量更新方法及装置
CN113852563A (zh) 报文数据传输方法、装置、终端设备及可读存储介质
CN114465998B (zh) 多设备的文件传输方法、装置、终端设备及可读存储介质
CN102236561A (zh) 终端、用于终端的引导配置方法及引导信息处理装置
CN113848851B (zh) 车辆检测方法、装置、电子设备及存储介质
CN110099112A (zh) 基于点对点网络的数据存储方法、装置、介质及终端设备
CN112053153A (zh) 背书签名数据存储方法、装置、电子设备及可读存储介质
CN116801232A (zh) 一种ota升级控制方法及相关设备
CN115277671A (zh) 车辆的ota升级方法、装置、车辆及存储介质
CN110619402A (zh) 一种派车方法和装置、电子设备、存储介质
CN112995909B (zh) 一种sim卡分配方法、装置、服务器和计算机可读存储介质
CN112328325A (zh) 模型文件的执行方法、装置、终端设备及存储介质
CN108038643A (zh) 智能配货管理方法和系统
CN109842482B (zh) 一种信息同步方法、系统及终端设备
CN116633771A (zh) 灰度发布的方法、装置、介质
CN116074308A (zh) 车端升级包下载方法、系统、设备及可读存储介质
CN116303418A (zh) 基于物联网平台的海量规则处理方法、系统及存储介质
CN111835504A (zh) 识别码生成方法及服务器
CN112995900B (zh) 一种sim卡分配方法、装置、服务器和计算机可读存储介质
CN111767060A (zh) 多阶段灰度验证方法、装置、电子设备及介质
CN112988339B (zh) 一种数据管理方法及装置
CN118509831A (zh) 蓝牙的管理方法、装置、电子设备及存储介质
CN114866530B (zh) 升级数据包的下载方法、设备以及计算机存储介质
CN110876852A (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