CN117648107A - 灰度分发方法、装置、计算机设备、存储介质 - Google Patents

灰度分发方法、装置、计算机设备、存储介质 Download PDF

Info

Publication number
CN117648107A
CN117648107A CN202311742525.8A CN202311742525A CN117648107A CN 117648107 A CN117648107 A CN 117648107A CN 202311742525 A CN202311742525 A CN 202311742525A CN 117648107 A CN117648107 A CN 117648107A
Authority
CN
China
Prior art keywords
target
environment
access request
parameter
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
CN202311742525.8A
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.)
China Life Insurance Co ltd
Original Assignee
China Life Insurance 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 China Life Insurance Co ltd filed Critical China Life Insurance Co ltd
Priority to CN202311742525.8A priority Critical patent/CN117648107A/zh
Publication of CN117648107A publication Critical patent/CN117648107A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

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

Abstract

本公开涉及一种灰度分发方法、装置、计算机设备、存储介质。所述方法包括:接收目标访问请求,其中,目标访问请求为需要进入应用程序的目标功能的请求,目标访问请求中包括目标对象的参数信息;利用网关和服务网格将目标访问请求发送至目标功能的后端服务器中,目标访问请求用于指示后端服务器基于参数信息、预先确定的规则库,确定目标对象是否在预设的灰度名单中,响应于目标对象在预设的灰度名单中,接收后端服务器发送的重定向和灰度参数;基于网关、服务网格、重定向、灰度参数,将目标访问请求发送至目标环境中,目标环境包括:生产环境或者灰度环境;接收目标环境反馈的目标信息并展示。采用本方法能够提高发布效率。

Description

灰度分发方法、装置、计算机设备、存储介质
技术领域
本公开涉及软件更新技术领域,特别是涉及一种灰度分发方法、装置、计算机设备、存储介质。
背景技术
随着信息技术的发展,软件程序会不停的进行更新迭代。通常情况下,新功能上线至软件程序中只能使用SQL语句控制开关,直接对数据库人工进行变更。微服务架构引入了新的复杂性,服务之间的依赖关系错综复杂。有时候,某个功能的发布可能依赖于多个服务,要求灰度流量在整个调用链中准确路由到灰度版本的服务。传统的单个服务流量入口设置分流的做法无法满足这一需求。
另外,为了控制版本缺陷的业务影响范围,业界普遍采用渐进式的发布过程,灰度版本的对客范围通常是一个逐步扩大的过程,如白名单用户—企业集团内部用户—生产特定用户—全量用户。通过阶梯扩大试点用户范围的方式,实现了对新版本质量的全方位验证,同时将验证过程中发现的问题控制在较小的范围内并快速响应,及时完成版本的修复或回退。
然而,传统技术中无法在功能发布时流量分流的方式单一,不能够满足需求。除此之外,渐进式的发布过程会耽误发布的效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高发布效率的灰度分发方法、装置、计算机设备、存储介质。
第一方面,本公开提供了一种灰度分发方法,所述方法包括:
接收目标访问请求,其中,所述目标访问请求为需要进入应用程序的目标功能的请求,所述目标访问请求中包括目标对象的参数信息;
利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器中,所述目标访问请求用于指示后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,其中,所述规则库中设有多个匹配条件;
响应于所述目标对象在预设的灰度名单中,接收所述后端服务器发送的重定向和灰度参数;
基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,所述目标环境包括:生产环境或者灰度环境;
接收所述目标环境反馈的目标信息并展示。
在其中一个实施例中,所述基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至所述后端服务器的目标环境中,包括:
通过所述网关将所述灰度参数转换为所述服务网格可识别的跳转参数;
经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至所述目标环境中。
在其中一个实施例中,所述跳转参数包括:第一跳转参数或第二跳转参数;所述经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至目标环境中,包括:
响应于所述跳转参数为第一跳转参数,将所述第一跳转参数发送至所述服务网格,经由所述服务网格将所述目标访问请求转发至所述生产环境中;
响应于所述跳转参数为第二跳转参数,将所述第二跳转参数发送至所述服务网格,经由所述服务网格将所述目标访问请求转发至所述灰度环境中。
在其中一个实施例中,所述后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,包括:
基于所述参数信息,在预先设置的规则库中选择一个或者多个匹配条件进行匹配,得到匹配结果;
响应于所述匹配结果存在,且所述匹配结果在预设的灰度名单中,确定所述目标对象在预设的灰度名单中;
响应于所述匹配结果不存在,确定所述目标对象在预设的灰度名单中;
响应于所述匹配结果存在,且所述匹配结果不在预设的灰度名单中,确定所述目标对象不在预设的灰度名单中。
在其中一个实施例中,所述目标功能的后端服务器和所述目标功能的前端服务器中均设有所述生产环境和所述灰度环境;所述接收所述目标环境反馈的目标信息并展示,包括:
接收所述前端服务器通过所述目标环境反馈的前端信息;
接收所述后端服务器通过所述目标环境反馈的后端信息;
基于所述前端信息和所述后端信息在所述应用程序中展示所述目标功能对应的灰度界面或者生产界面。
在其中一个实施例中,所述接收所述前端服务器通过所述目标环境反馈的前端信息之后,所述方法还包括:
在所述应用程序中存储所述跳转参数;
经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至所述后端服务器的目标环境中。
在其中一个实施例中,所述接收所述目标环境反馈的目标信息并展示之后,所述方法包括:
响应于所述目标环境为灰度环境,且所述灰度环境验证通过;
在检测到更新数据的情况下,将所述灰度环境的数据复制至所述生产环境中,得到初始生产环境,以及将所述更新数据添加至所述初始生产环境中,得到目标生产环境;
基于所述目标生产环境和所述灰度环境进行灰度发布。
第二方面,本公开还提供了一种灰度分发装置。所述装置包括:
请求接收模块,用于接收目标访问请求,其中,所述目标访问请求为需要进入应用程序的目标功能的请求,所述目标访问请求中包括目标对象的参数信息;
第一发送模块,用于利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器中,所述目标访问请求用于指示后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,其中,所述规则库中设有多个匹配条件;
参数接收模块,用于响应于所述目标对象在预设的灰度名单中,接收所述后端服务器发送的重定向和灰度参数;
第二发送模块,用于基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,所述目标环境包括:生产环境或者灰度环境;
信息接收模块,用于接收所述目标环境反馈的目标信息并展示。
第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一方法实施例中的步骤。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
上述各实施例中,利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器中,后端服务器可以确定目标对象是否在预设的灰度名单中,进而保证目标对象是否具有权限,在具有权限的情况下,可以接收后端服务器发送的重定向和灰度参数,保证在灰度分发时后续不会由于不具有权限而造成转发失败。可以基于网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,目标环境包括:生产环境或者灰度环境。能够实现对目标访问请求的流量分发,可以根据不同的信息将目标访问请求分发至生产环境或者灰度环境中。进而在灰度环境可以检测是否出现问题。在出现问题时,可以将目标访问请求分发至生产环境,进而对灰度环境中的数据进行保证。在未出现问题时,可以直接使用灰度环境中的数据,能够提高发布效率。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中灰度分发方法的应用环境示意图;
图2为一个实施例中灰度分发方法的流程示意图;
图3为一个实施例中S204步骤的流程示意图;
图4为一个实施例中S304步骤的流程示意图;
图5为一个实施例中确定目标对象是否在预设的灰度名单中的步骤的流程示意图;
图6为一个实施例中S210步骤的流程示意图;
图7为一个实施例中S210步骤之后的流程示意图;
图8为一个实施例中灰度分发装置的结构示意框图;
图9为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开实施例提供了一种灰度分发方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与目标功能对应的前端服务器104和后端服务器106进行通信。终端102可以接收用户的目标访问请求。目标访问请求可以是用户需要进入应用程序中的目标功能的请求。目标访问请求中还可以包括用户(目标对象)的参数信息。终端102可以利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器106中。所述目标访问请求用于指示后端服务器106基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,其中,所述规则库中设有多个匹配条件。响应于所述目标对象在预设的灰度名单中,终端102可以接收后端服务器发送的重定向和灰度参数。终端102可以基于网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至前端服务器104和后端服务器106的目标环境中。所述目标环境包括:生产环境或者灰度环境。终端102可以接收前端服务器104和后端服务器106的目标环境反馈的目标信息并展示。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。前端服务器104和后端服务器106可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种灰度分发方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
S202,接收目标访问请求,其中,所述目标访问请求为需要进入应用程序的目标功能的请求,所述目标访问请求中包括目标对象的参数信息。灰度分发可以是指在软件开发中,将新版本的软件或功能在一部分用户中进行测试和推广的过程。灰度分发可以帮助开发团队收集用户反馈、发现潜在问题,同时减小新功能或版本对全部用户的影响。目标对象在本公开的一些实施例中可以是使用应用程序的用户。参数信息可以是目标对象对应的身份信息,例如工号、身份证号、区域标识等等。应用程序在本公开一些实施例中不进行限制,可以是游戏程序、影音程序、银行的程序、保险程序等等类型。目标功能通常可以是应用程序中的一些功能,例如登录功能、加密功能或者一些其他的功能等等。
具体地,当某个功能需要进行更新时,可以进行灰度分发。因此,用户可以在应用程序中点击该需要更新的目标功能,进而向终端的应用程序中输出目标访问请求。另外,通常情况下,用户在使用应用程序时,需要在应用程序中利用身份信息进行登录。因此,目标访问请求中通常还包括目标对象的各种参数信息。
S204,利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器中,所述目标访问请求用于指示后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,其中,所述规则库中设有多个匹配条件。
其中,网关通常可以是Nginx网关,它是一种用于构建和管理微服务架构中的请求路由和负载均衡的工具。它可以作为一个入口点,接收来自客户端的请求,并根据配置将请求转发到不同的后端服务。Nginx网关可以根据请求的路径、主机名、HTTP头等条件对请求进行路由,并支持多种负载均衡算法,如轮询、IP哈希等。它还可以对请求进行过滤、验证和修改,以实现更复杂的功能,比如身份验证、请求转发等。Nginx网关还具有高性能和扩展性,可以处理大量的并发请求,并支持动态配置更新和自动发现后端服务。服务网格可以是一种用于管理和监控微服务架构中服务之间通信的基础设施层。它提供了一种透明的方式来处理各种服务器之间的通信。服务网格可以使用Istio、Linkerd和Envoy等来实现。匹配条件在本公开的一些实施例中可以包括:基于地区进行匹配、基于参数信息的开头进行匹配、基于参数信息的结尾进行匹配、基于一些信息进行包含匹配、正则匹配等等。匹配条件可根据实际需求进行设置。灰度名单中通常可以包括具有权限的对象的各种参数信息。
具体地,可以利用网关和服务网格将目标访问请求发送至目标功能的后端服务器。后端服务器接收到目标访问请求之后,可以根据目标访问请求中的参数、以及后端服务器其中存储的预先设置的规则库和灰度名单,来确定目标对象是否在灰度名单中。通常情况下,若根据参数信息以及规则库中的条件进行匹配后,得到了满足条件的参数信息,该满足条件的参数信息对应的目标对象通常会在灰度名单中。
S206,响应于所述目标对象在预设的灰度名单中,接收所述后端服务器发送的重定向和灰度参数。
其中,重定向可以是一种网页服务器技术,用于将用户访问的网页请求转发到另一个网页或网站。当用户访问一个网页时,网页服务器可以通过重定向将用户的请求转发到另一个网页。重定向可以是临时的,也可以是永久的。临时重定向(HTTP 302)告诉浏览器临时转移到另一个网页,而永久重定向(HTTP 301)则告诉浏览器将来所有的请求都要转移到新的网页。重定向可以用于多种情况,例如网页更改、网站迁移、统一资源定位等。灰度参数在本公开的一些实施例中可以是env参数,可以是控制跳转的参数。
具体地,当目标对象在预设的灰度名单中,可以确定目标对象具有灰度权限,能够进入灰度环境。因此,后端服务器可以通过网关和服务网格将重定向和灰度参数发送给终端。
S208,基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,所述目标环境包括:生产环境或者灰度环境。
其中,生产环境可以是指软件或应用程序在实际生产中被使用的环境,也就是用户最终使用的环境。在生产环境中,软件需要稳定、可靠,并且能够满足用户的需求。灰度环境可以是指在软件发布前进行的一种测试环境,通常只对部分用户或部分功能进行测试。在灰度环境中,开发人员可以测试软件的稳定性、性能和用户体验,以及收集用户反馈和数据,从而为应用程序需要更新的功能在生产环境中的发布做准备。
具体地,可以利用网关、服务网格将重定向、灰度参数和目标访问请求发送到目标环境中。根据不同的灰度参数,发送的目标环境也不同,因此不同的灰度参数可以和不同的目标环境对应。目标环境可以将其中的信息发送至终端的应用程序中。
S210,接收所述目标环境反馈的目标信息并展示。
具体地,终端中应用程序可以接收目标环境反馈的目标信息,并在应用程序对应的目标功能处展示该目标信息。通常情况下,目标环境可以是灰度环境,当灰度环境反馈的目标信息没有出现错误,可以直接将灰度环境进行发布。当灰度环境反馈的目标信息出现错误,可以将目标环境调整为生产环境,对灰度环境中的数据进行调整。
上述灰度分发方法中,利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器中,后端服务器可以确定目标对象是否在预设的灰度名单中,进而保证目标对象是否具有权限,在具有权限的情况下,可以接收后端服务器发送的重定向和灰度参数,保证在灰度分发时后续不会由于不具有权限而造成转发失败。可以基于网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,目标环境包括:生产环境或者灰度环境。能够实现对目标访问请求的流量分发,可以根据不同的信息将目标访问请求分发至生产环境或者灰度环境中。进而在灰度环境可以检测是否出现问题。在出现问题时,可以将目标访问请求分发至生产环境,进而对灰度环境中的数据进行保证。在未出现问题时,可以直接使用灰度环境中的数据,能够提高发布效率。
在一个实施例中,如图3所示,所述基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,包括:
S302,通过所述网关将所述灰度参数转换为所述服务网格可识别的跳转参数。
S304,经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至所述目标环境中。
其中,跳转参数通常可以是服务网格可识别的参数。
具体地,通常情况下,灰度参数并不能够被服务网格所识别,因此可以通过网关将灰度参数转换为服务网格可以识别的跳转参数。例如,可以通过网关将env参数转换为header。可以将灰度参数传递到HTTP请求的头部中。这样做的目的是为了在进行网络请求时将灰度参数作为请求的一部分发送,可以更方便的传输信息,并且使服务网格能够识别。另外,由于存在重定向,因此,服务网格可以根据跳转参数将目标访问请求发送到目标环境中。
本实施例中,通过网关对灰度参数进行处理,能够保证服务网格准确的识别出灰度参数中的信息,进而保证准确的将目标访问请求发送到对应的目标环境中。
在一个实施例中,所述跳转参数包括:第一跳转参数或者第二跳转参数。其中,第一跳转参数可以是env=prod,"env=prod"表示将代码部署到生产环境中,也就是实际运行的环境,该环境中的配置和资源是供真实用户使用的。第二跳转参数可以是env=gray,"env=gray"表示将代码部署到灰度环境中,也称为灰度测试环境。在灰度环境中,只有部分用户能够访问新功能或更新的版本,以便进行测试和验证。这种部署方式可以帮助开发人员和测试人员在真实环境中验证新功能的稳定性和性能,以便在部署到生产环境之前进行必要的修改和优化。如图4所示,所述经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至目标环境中,包括:
S402,响应于所述跳转参数为第一跳转参数,将所述第一跳转参数发送至所述服务网格,经由所述服务网格将所述目标访问请求转发至所述生产环境中。
具体地,由于跳转参数不同,因此目标访问请求转发到的目标环境也不同。当跳转参数为第一跳转参数时。可以将第一跳转参数发送至服务网格中,当服务网格接收到第一跳转参数后,服务网格可以根据第一跳转参数将目标访问请求转发至生产环境中。
S404,响应于所述跳转参数为第二跳转参数,将所述第二跳转参数发送至所述服务网格,经由所述服务网格将所述目标访问请求转发至所述灰度环境中。
具体地,当跳转参数为第二跳转参数时,可以将第二跳转参数发送至服务网格中,当服务网格接收到第二跳转参数后,服务网格可以根据第二跳转参数将目标访问请求转发至灰度环境中。
在本实施例中,通过不同的跳转参数,可以将目标访问请求转发至不同的目标环境中,能够根据实际需求进行调整,实现流量分发。
在一个实施例中,如图5所示,所述后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,包括:
S502,基于所述参数信息,在预先设置的规则库中选择一个或者多个匹配条件进行匹配,得到匹配结果。
具体地,可以在规则库中选择一个或者多个匹配条件,基于参数信息在选择的匹配条件中进行匹配,得到匹配结果。
在一些示例性的实施例中,例如匹配条件为地区为A地区,参数信息也包括地区信息,若地区信息中包括A地区,则匹配结果为存在,并且为A地区。又例如,匹配条件为参数信息的开头为123456,参数信息由10位数字标识构成,为1245369851,则可以确定匹配结果不存在。可以理解的是,上述仅用于举例说明。
S504,响应于所述匹配结果存在,且所述匹配结果在预设的灰度名单中,确定所述目标对象在预设的灰度名单中。
S506,响应于所述匹配结果不存在,确定所述目标对象在预设的灰度名单中。
S508,响应于所述匹配结果存在,且所述匹配结果不在预设的灰度名单中,确定所述目标对象不在预设的灰度名单中。
具体地,当匹配结果存在,可以根据匹配结果在灰度名单中进行查找是否有相应的数据,若有则可以确定该目标对象在预设的灰度名单中。若没有,则可以确定该目标对象不在预设的灰度名单中。当匹配结果不存在,可以确定目标对象不在预设的灰度名单中。
在本实施例中,通过根据不同的匹配条件进行匹配,并根据匹配结果能够确定目标对象是否在预设的灰度名单中,进而能够准确的来确定目标对象是否具有权限。
在一个实施例中,如图6所示,所述目标功能的后端服务器和所述目标功能的前端服务器中均设有所述生产环境和所述灰度环境;所述接收所述目标环境反馈的目标信息并展示,包括:
S602,接收所述前端服务器通过所述目标环境反馈的前端信息。
S604,接收所述后端服务器通过所述目标环境反馈的后端信息。
S606,基于所述前端信息和所述后端信息在所述应用程序中展示所述目标功能对应的灰度界面或者生产界面。
其中,前端信息可以包括前端代码。后端信息可以包括目标功能对应的各种数据。灰度界面中的数据通常可以是灰度环境中的数据。生产界面中的数据可以是生产环境中的数据。
具体地,当将目标访问请求发送至前端服务器之后,前端服务器可以将目标环境中的前端信息通过网关和服务网格反馈至终端中的应用程序中。后端服务器可以将目标环境中的后端信息发送给前端服务器,前端服务器再通过网关和服务网格反馈至终端中的应用程序中。应用程序可以接收前端信息和后端信息,在并应用程序的目标功能处展示与前端信息和后端信息对应的灰度界面或者生产界面。
在本实施例中,由于目标功能对应的前端和后端都存在不同的数据,因此,在前端和后端都会设有相应的生产环境和灰度环境,进而满足不同条件下的需求。
在一个实施例中,所述接收所述前端服务器通过所述目标环境反馈的前端信息之后,所述方法还包括:
在所述应用程序中存储所述跳转参数;经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至所述后端服务器的目标环境中。
具体地,可以将跳转参数存储在应用程序中。前端服务器反馈前端信息之后,此时需要后端服务器反馈后端信息。为了提高处理速度,可以将跳转参数存储在应用程序,在获取后端服务器中的后端信息时,可以直接经由服务网格、重定向和跳转参数将所述目标访问请求发送至所述后端服务器的目标环境中。
在本实施例中,通过存储跳转参数,能够提高发送目标访问请求的效率。
在一个实施例中,如图7所示,所述接收所述目标环境反馈的目标信息并展示之后,所述方法包括:
S702,响应于所述目标环境为灰度环境,且所述灰度环境验证通过。
S704,在检测到更新数据的情况下,将所述灰度环境的数据复制至所述生产环境中,得到初始生产环境,以及将所述更新数据添加至所述初始生产环境中,得到目标生产环境。
S706,基于所述目标生产环境和所述灰度环境进行灰度发布。
具体地,当目标环境为灰度环境时,并且灰度环境中的目标信息在展示之后,其中并未出现错误,可以确定灰度环境验证通过,此时灰度环境中的数据可以作为正式的数据发布。而在应用程序还需要更新的情况下,即检测到了需要进行更新的更新数据的情况下,由于灰度环境作为正式的环境。因此,可以将灰度环境的数据复制至生产环境中,得到初始生产环境。初始生产环境可以和灰度环境是相同的。然后可以将更新数据加入初始生产环境中,进而得到目标生产环境。进而基于目标生产环境和灰度环境进行灰度发布。
在本实施例中,通过将灰度环境的数据复制至生产环境中,得到初始生产环境,以及将更新数据添加至所述初始生产环境中,得到目标生产环境,进而利用目标生产环境和灰度环境进行灰度发布,两种环境交替使用,能够保证灰度发布的效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的灰度分发方法的灰度分发装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个灰度分发装置实施例中的具体限定可以参见上文中对于灰度分发方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种灰度分发装置800,包括:请求接收模块802、第一发送模块804、参数接收模块806、第二发送模块808和信息接收模块810,其中:
请求接收模块802,用于接收目标访问请求,其中,所述目标访问请求为需要进入应用程序的目标功能的请求,所述目标访问请求中包括目标对象的参数信息;
第一发送模块804,用于利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器中,所述目标访问请求用于指示后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,其中,所述规则库中设有多个匹配条件;
参数接收模块806,用于响应于所述目标对象在预设的灰度名单中,接收所述后端服务器发送的重定向和灰度参数;
第二发送模块808,用于基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,所述目标环境包括:生产环境或者灰度环境;
信息接收模块810,用于接收所述目标环境反馈的目标信息并展示。
在所述装置的一个实施例中,所述第一发送模块804,包括:
数据转换模块,通过所述网关将所述灰度参数转换为所述服务网格可识别的跳转参数。
第一发送子模块,用于经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至所述目标环境中。
在所述装置的一个实施例中,所述跳转参数包括:第一跳转参数或第二跳转参数。所述第一发送模块804,还用于响应于所述跳转参数为第一跳转参数,将所述第一跳转参数发送至所述服务网格,经由所述服务网格将所述目标访问请求转发至所述生产环境中;响应于所述跳转参数为第二跳转参数,将所述第二跳转参数发送至所述服务网格,经由所述服务网格将所述目标访问请求转发至所述灰度环境中。
在所述装置的一个实施例中,所述装置还包括:确定模块,用于基于所述参数信息,在预先设置的规则库中选择一个或者多个匹配条件进行匹配,得到匹配结果;响应于所述匹配结果存在,且所述匹配结果在预设的灰度名单中,确定所述目标对象在预设的灰度名单中;响应于所述匹配结果不存在,确定所述目标对象在预设的灰度名单中;响应于所述匹配结果存在,且所述匹配结果不在预设的灰度名单中,确定所述目标对象不在预设的灰度名单中。
在所述装置的一个实施例中,所述目标功能的后端服务器和所述目标功能的前端服务器中均设有所述生产环境和所述灰度环境。所述信息接收模块810,还用于接收所述前端服务器通过所述目标环境反馈的前端信息;接收所述后端服务器通过所述目标环境反馈的后端信息;基于所述前端信息和所述后端信息在所述应用程序中展示所述目标功能对应的灰度界面或者生产界面。
在所述装置的一个实施例中,所述装置还包括:参数存储模块,用于在所述应用程序中存储所述跳转参数。
所述第二发送模块808,还用于经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至所述后端服务器的目标环境中。
在所述装置的一个实施例中,所述装置还包括:灰度发布模块,用于响应于所述目标环境为灰度环境,且所述灰度环境验证通过;在检测到更新数据的情况下,将所述灰度环境的数据复制至所述生产环境中,得到初始生产环境,以及将所述更新数据添加至所述初始生产环境中,得到目标生产环境;基于所述目标生产环境和所述灰度环境进行灰度发布。
上述灰度分发装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储灰度分发数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种灰度分发方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。

Claims (10)

1.一种灰度分发方法,其特征在于,所述方法包括:
接收目标访问请求,其中,所述目标访问请求为需要进入应用程序的目标功能的请求,所述目标访问请求中包括目标对象的参数信息;
利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器中,所述目标访问请求用于指示后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,其中,所述规则库中设有多个匹配条件;
响应于所述目标对象在预设的灰度名单中,接收所述后端服务器发送的重定向和灰度参数;
基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,所述目标环境包括:生产环境或者灰度环境;
接收所述目标环境反馈的目标信息并展示。
2.根据权利要求1所述的方法,其特征在于,所述基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至所述后端服务器的目标环境中,包括:
通过所述网关将所述灰度参数转换为所述服务网格可识别的跳转参数;
经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至所述目标环境中。
3.根据权利要求2所述的方法,其特征在于,所述跳转参数包括:第一跳转参数或第二跳转参数;所述经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至目标环境中,包括:
响应于所述跳转参数为第一跳转参数,将所述第一跳转参数发送至所述服务网格,经由所述服务网格将所述目标访问请求转发至所述生产环境中;
响应于所述跳转参数为第二跳转参数,将所述第二跳转参数发送至所述服务网格,经由所述服务网格将所述目标访问请求转发至所述灰度环境中。
4.根据权利要求1所述的方法,其特征在于,所述后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,包括:
基于所述参数信息,在预先设置的规则库中选择一个或者多个匹配条件进行匹配,得到匹配结果;
响应于所述匹配结果存在,且所述匹配结果在预设的灰度名单中,确定所述目标对象在预设的灰度名单中;
响应于所述匹配结果不存在,确定所述目标对象在预设的灰度名单中;
响应于所述匹配结果存在,且所述匹配结果不在预设的灰度名单中,确定所述目标对象不在预设的灰度名单中。
5.根据权利要求1所述的方法,其特征在于,所述目标功能的后端服务器和所述目标功能的前端服务器中均设有所述生产环境和所述灰度环境;所述接收所述目标环境反馈的目标信息并展示,包括:
接收所述前端服务器通过所述目标环境反馈的前端信息;
接收所述后端服务器通过所述目标环境反馈的后端信息;
基于所述前端信息和所述后端信息在所述应用程序中展示所述目标功能对应的灰度界面或者生产界面。
6.根据权利要求5所述的方法,其特征在于,所述接收所述前端服务器通过所述目标环境反馈的前端信息之后,所述方法还包括:
在所述应用程序中存储跳转参数;
经由所述服务网格、所述重定向和所述跳转参数将所述目标访问请求发送至所述后端服务器的目标环境中。
7.根据权利要求1所述的方法,其特征在于,所述接收所述目标环境反馈的目标信息并展示之后,所述方法包括:
响应于所述目标环境为灰度环境,且所述灰度环境验证通过;
在检测到更新数据的情况下,将所述灰度环境的数据复制至所述生产环境中,得到初始生产环境,以及将所述更新数据添加至所述初始生产环境中,得到目标生产环境;
基于所述目标生产环境和所述灰度环境进行灰度发布。
8.一种灰度分发装置,其特征在于,所述装置包括:
请求接收模块,用于接收目标访问请求,其中,所述目标访问请求为需要进入应用程序的目标功能的请求,所述目标访问请求中包括目标对象的参数信息;
第一发送模块,用于利用网关和服务网格将所述目标访问请求发送至目标功能的后端服务器中,所述目标访问请求用于指示后端服务器基于所述参数信息、预先确定的规则库,确定所述目标对象是否在预设的灰度名单中,其中,所述规则库中设有多个匹配条件;
参数接收模块,用于响应于所述目标对象在预设的灰度名单中,接收所述后端服务器发送的重定向和灰度参数;
第二发送模块,用于基于所述网关、服务网格、所述重定向、所述灰度参数,将所述目标访问请求发送至目标环境中,所述目标环境包括:生产环境或者灰度环境;
信息接收模块,用于接收所述目标环境反馈的目标信息并展示。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202311742525.8A 2023-12-18 2023-12-18 灰度分发方法、装置、计算机设备、存储介质 Pending CN117648107A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311742525.8A CN117648107A (zh) 2023-12-18 2023-12-18 灰度分发方法、装置、计算机设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311742525.8A CN117648107A (zh) 2023-12-18 2023-12-18 灰度分发方法、装置、计算机设备、存储介质

Publications (1)

Publication Number Publication Date
CN117648107A true CN117648107A (zh) 2024-03-05

Family

ID=90045086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311742525.8A Pending CN117648107A (zh) 2023-12-18 2023-12-18 灰度分发方法、装置、计算机设备、存储介质

Country Status (1)

Country Link
CN (1) CN117648107A (zh)

Similar Documents

Publication Publication Date Title
EP3563243B1 (en) Determining application test results using screenshot metadata
US9459987B2 (en) Method and system for comparing different versions of a cloud based application in a production environment using segregated backend systems
EP3178011B1 (en) Method and system for facilitating terminal identifiers
CN110688598B (zh) 业务参数采集方法、装置、计算机设备和存储介质
CN111857762A (zh) 微服务更新系统
CN108683668A (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
JP7483929B2 (ja) 共同トレーニングモデルを評価するための方法及び装置
CN113268336B (zh) 一种服务的获取方法、装置、设备以及可读介质
CN109376534B (zh) 用于检测应用的方法和装置
CN111913738A (zh) 访问请求的处理方法、装置、计算设备和介质
CN107807841B (zh) 服务器模拟方法、装置、设备及可读存储介质
CN110120971B (zh) 一种灰度发布方法、装置及电子设备
CN114465937A (zh) 网卡测试方法、装置、服务器、介质和计算机程序产品
CN114401187B (zh) 灰度发布方法、装置、计算机设备和存储介质
CN112714042B (zh) 压力测试方法、装置、电子设备和存储介质
US20210012001A1 (en) Storage medium, information processing method, and information processing apparatus
CN112860398A (zh) 基于规则引擎的数据处理方法、装置、设备及介质
US11843682B1 (en) Prepopulating an edge server cache
CN116776030A (zh) 灰度发布方法、装置、计算机设备、存储介质
CN116684120A (zh) 基于区块链的数据可信验证方法、装置、设备及存储介质
CN117648107A (zh) 灰度分发方法、装置、计算机设备、存储介质
CN114443215A (zh) 业务应用部署方法、装置、计算机设备和存储介质
CN113821495A (zh) 数据库集群实现系统及方法
CN111752559B (zh) 前后端分离系统、方法、装置和存储介质
CN111767060A (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