一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用服务访问方法及相关装置与流程

2022-04-24 17:57:34 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,尤其涉及一种应用服务访问方法、一种应用服务访问装置、一种计算机设备及一种计算机可读存储介质。


背景技术:

2.互联网产品通常具备用户规模大以及版本更新频繁的特点。新版本的每次上线,产品都要承受极大的压力,而灰度发布则可以很好的规避这种风险。灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。
3.在互联网产品的灰度发布过程中,可以通过很多种形式来抽取一部分用户,比如说选择自己的vip用户,或者选择一些活跃用户,针对这部分用户投放新版本的产品,而其余用户继续使用旧版本的产品。灰度发布具备冗余和弹性,能有效避免新版本全量上线的风险。目前,针对不同的产品开发场景,如何实现产品的灰度发布是目前的研究热点。


技术实现要素:

4.本技术实施例提供了一种应用服务访问方法及相关装置,不仅可以使得云开发场景下的应用服务新版本上线具备高安全性和可控性,还可以有效提高不同版本的应用服务的访问准确性。
5.一方面,本技术实施例提供了一种应用服务访问方法,其中,目标应用的第一版本应用服务部署在第一云开发环境中,所述目标应用的第二版本应用服务部署在第二云开发环境中,所述第一版本高于所述第二版本,所述方法包括:
6.接收第一客户端发送的关于所述目标应用的云开发环境获取请求,所述云开发环境获取请求携带所述第一客户端的客户端标识;
7.基于云开发环境选择策略和所述第一客户端的客户端标识,从所述第一云开发环境和第二云开发环境中确定所述第一客户端将访问的目标云开发环境;
8.返回携带所述目标云开发环境的云开发环境标识的指示信息至所述第一客户端,所述指示信息用于指示所述第一客户端根据所述云开发环境标识访问部署在所述目标云开发环境中的相应版本的所述目标应用的应用服务。
9.一方面,本技术实施例提供了一种应用服务访问装置,其中,目标应用的第一版本应用服务部署在第一云开发环境中,所述目标应用的第二版本应用服务部署在第二云开发环境中,所述第一版本高于所述第二版本,所述装置包括:
10.收发单元,用于接收第一客户端发送的关于所述目标应用的云开发环境获取请求,所述云开发环境获取请求携带所述第一客户端的客户端标识;
11.处理单元,用于基于云开发环境选择策略和所述第一客户端的客户端标识,从所述第一云开发环境和第二云开发环境中确定所述第一客户端将访问的目标云开发环境;
12.所述收发单元,还用于返回携带所述目标云开发环境的云开发环境标识的指示信
息至所述第一客户端,所述指示信息用于指示所述第一客户端根据所述云开发环境标识访问部署在所述目标云开发环境中的相应版本的所述目标应用的应用服务。
13.在一实施例中,所述云开发环境选择策略包括关于所述第一版本应用服务的灰度策略;所述处理单元具体用于:
14.基于所述关于所述第一版本应用服务的灰度策略和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;
15.若具备,则将所述第一云开发环境确定为所述第一客户端将访问的目标云开发环境;
16.若不具备,则将所述第二云开发环境确定为所述第一客户端将访问的目标云开发环境。
17.在一实施例中,所述灰度策略包括灰度比例,所述处理单元具体用于:
18.从所述第一客户端的客户端标识中确定待检测数值,其中,所述待检测数值是基于所述第一客户端的客户端标识中的指定m个位置处的m个数字确定的,所述m为正整数;
19.基于所述灰度比例确定参考数值集合;
20.若所述待检测数值包括在所述参考数值集合中,则确定所述第一客户端具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;
21.若所述待检测数值不包括在所述参考数值集合中,则确定所述第一客户端不具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格。
22.在一实施例中,所述云开发环境选择策略还包括关于所述第一版本应用服务的访问白名单;所述处理单元还用于:
23.基于所述关于所述第一版本应用服务的访问白名单和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;
24.若具备,则将所述第一云开发环境确定为所述第一客户端将访问的目标云开发环境;
25.若不具备,则基于所述关于所述第一版本应用服务的灰度策略和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格。
26.在一实施例中,部署在第三云开发环境中的所述第一版本应用服务用于上线前预览,所述云开发环境选择策略包括关于所述第一版本应用服务的预览白名单;
27.所述收发单元,还用于接收第二客户端发送的关于所述第一版本应用服务的预览请求,所述预览请求携带所述第二客户端的客户端标识;
28.其中,所述装置还包括预览校验单元,用于:
29.基于关于所述第一版本应用服务的预览白名单和所述第二客户端的客户端标识,确定所述第二客户端是否具备预览资格;
30.若所述第二客户端具备预览资格,则触发所述收发单元返回所述第三云开发环境的云开发环境标识至所述第二客户端,以使所述第二客户端根据所述第三云开发环境的云开发环境标识访问部署在所述第三云开发环境中的所述第一版本应用服务,并展示所述第
一版本应用服务。
31.在一实施例中,所述预览校验单元,还用于:
32.获取各个具备预览资格的第二客户端发送的关于所述第一版本应用服务的预览效果的反馈信息;
33.在基于获取到的各反馈信息确定所述第一版本应用服务预览验证通过之后,触发所述装置包括的部署单元将所述第一版本应用服务部署至所述第一云开发环境中。
34.在一实施例中,所述部署单元,还用于将所述云开发环境选择策略部署至指定云开发环境中,所述云开发环境选择策略还包括关于所述第一版本应用服务的灰度比例;
35.所述处理单元,还用于每隔预设时间间隔按照灰度比例调整策略对所述云开发环境选择策略中的关于所述第一版本应用服务的灰度比例进行调整。
36.一方面,本技术实施例提供了一种计算机设备,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行上述应用服务访问方法。
37.相应地,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述应用服务访问方法。
38.相应地,本技术实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述应用服务访问方法。
39.本技术实施例通过将目标应用的不同版本的应用服务分别部署在不同的云开发环境中,并通过云开发环境选择策略指示各个客户端将访问的云开发环境,从而通过访问的云开发环境的不同,使得不同的客户端访问目标应用的不同版本的应用服务。本技术实施例利用云开发环境之间隔离的特性,一方面实现了一种针对云开发场景的新型灰度发布方式,可使得云开发场景下的应用服务新版本上线具备高安全性和可控性;另一方面,也实现了此灰度发布方式下的一种新型的应用服务访问方式,可有效提高不同版本的应用服务的访问准确性。
附图说明
40.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1a是本技术实施例提供的一种灰度发布方案的架构图;
42.图1b是本技术实施例提供的另一种灰度发布方案的架构图;
43.图1c是本技术实施例提供的又一种灰度发布方案的架构图;
44.图2是本技术实施例提供的一种应用服务访问方法的流程示意图;
45.图3是本技术实施例提供的一种新版本应用服务上线前预览验证方法的流程示意图;
46.图4是本技术实施例提供的一种灰度发布方案的流程示意图;
47.图5a是本技术实施例提供的一种应用服务访问方案的架构图;
48.图5b是本技术实施例提供的另一种应用服务访问方案的架构图;
49.图5c是本技术实施例提供的又一种应用服务访问方案的架构图;
50.图6示出了前置请求云函数的处理流程;
51.图7示出了预览和灰度配置的方式;
52.图8是本技术实施例提供的一种应用服务访问装置的结构示意图;
53.图9是本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
54.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
55.首先,对本方案所涉及的关键术语进行介绍:
56.云开发(cloud base)是云端一体化的后端云服务,采用serverless架构,免去了移动应用构建中繁琐的服务器搭建和运维。同时云开发提供的静态托管、命令行工具(cli)、flutter sdk等能力降低了应用开发的门槛。使用云开发可以构建完整的小程序/小游戏、h5、web、移动app等应用。
57.一个云开发环境对应一整套独立的云开发资源,包括数据库、存储空间、云函数等资源,各个云开发环境是相互独立的。
58.互联网产品就是指网站为满足用户需求而创建的用于运营的功能及服务,它是网站功能与服务的集成。对于互联网产品的灰度发布,可以有如下几种方案:
59.方案一:按机器逐步更新部署
60.对于采用固定服务器资源对外网提供服务的架构而言,通常是通过机器来进行产品(或者说服务、应用服务)的新版本灰度。如图1a所示,假设现网存在四台服务器同时对用户提供服务,用户的服务访问请求通过智能网关映射到不同的服务器上;当需要对新版本服务进行灰度上线时,可以将新版本服务仅部署在服务器1上,这样只有部分命中灰度的用户会访问到服务器1上的新版本的后台服务,而其他用户仍去服务器2-4中访问旧版本的后台服务。但采用此方式,需要配置固定的运维服务器,这会增加运维成本;并且灰度的粒度会受服务器数目的限制,这会降低灰度设置的灵活性。
61.方案二:按版本动态切换
62.对于希望将版本发布和具体服务器资源解耦的场景,如图1b所示,可以直接在同一服务器中部署不同版本的服务,可通过版本号来进行区分。现网用户的服务访问请求通过版本开关,来定向到服务器上部署的不同版本的服务。但采用此方式,同一服务器中需要支持部署不同版本的服务,对服务部署和调用方式等有一定的门槛限制;当服务数目较多时,按照单一服务进行灰度调整的效率低;另外需要定期清理服务器上的旧版本,否则会造成磁盘等硬件资源的浪费,这也会增加运维成本。
63.方案三:按功能开关切换
64.如图1c所示,部署新版本服务时直接全量覆盖原有服务(即旧版本服务),但在服
务对应的代码中同时预埋新旧版本服务的逻辑,不同用户的服务访问请求经过功能开关后会执行不同的代码逻辑,从而访问不同版本的服务。但采用此方式,服务对应的代码中需要同时耦合新旧版本服务的逻辑、灰度逻辑,这会降低新版本应用的可测试性和健壮性;另外,由于新旧版本的服务没有进行彻底隔离,所以当变更上线(即新版本上线)出现故障时,理论上没有稳定的旧版本可供直接回退。
65.上述三种方案均可作为云开发场景下的产品(或者说服务、应用服务)的灰度发布方式,但都存在一定的不足。基于此,本技术实施例针对云开发场景,提出了一种新型的灰度发布方式,以及此方式下的一种新型的应用服务访问方式。具体的,通过将目标应用的不同版本的应用服务分别部署在不同的云开发环境中,并通过云开发环境选择策略指示各个客户端将访问的云开发环境,从而通过访问的云开发环境的不同,使得不同的客户端访问目标应用的不同版本的应用服务。此方式利用云开发环境之间隔离的特性,一方面可以使得云开发场景下的应用服务新版本上线具备高安全性和可控性。另一方面可以有效提高不同版本的应用服务的访问准确性。以下对本方案进行详细说明。
66.本技术实施例提供的应用服务访问方法由计算机设备执行,所述计算机设备可以是服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
67.本技术实施例中,在进行关于目标应用的新版本应用服务的灰度发布过程中,如果目标应用的旧版本应用服务(即目标应用的第二版本应用服务)是部署在第二云开发环境中的,则将目标应用的新版本应用服务(即第一版本应用服务)部署到第一云开发环境中。其中,第一版本高于第二版本;第一云开发环境和第二云开发环境不同,且相互独立。第一云开发环境和第二云开发环境可以是设置在同一服务器中,也可以是设置在不同的服务器中;该服务器可以是执行本技术实施例所描述的应用服务访问方法的计算机设备,也可以是其它计算计设备。
68.请参阅图2,图2为本技术实施例提供的一种应用服务访问方法的流程示意图。本技术实施例中所描述的应用服务访问方法包括但不限于如下步骤:
69.s201、接收第一客户端发送的关于目标应用的云开发环境获取请求。
70.本技术实施例中,云开发环境获取请求携带第一客户端的客户端标识。客户端标识可以是客户端的物理地址(physical address,mac地址)、用户识别(subscriber identity module,sim)卡号、当前登录目标应用的账号、mdn号码中的任一种。目标应用可以是小程序/小游戏、h5、web、移动app等应用。
71.在第一客户端运行目标应用的过程中,需要从目标应用的后台服务器中获取相应的应用服务,例如账号登录过程中的身份验证服务、页面内容加载服务,等等。当需要获取应用服务时,第一客户端先生成关于目标应用的且携带第一客户端的客户端标识的云开发环境获取请求,并将该云开发环境获取请求发送给计算机设备,以先从计算机设备中获取第一客户端将访问的部署有目标应用某版本应用服务的云开发环境的标识。相应地,计算机设备接收第一客户端发送的云开发环境请求。
72.s202、基于云开发环境选择策略和所述第一客户端的客户端标识,从所述第一云
开发环境和第二云开发环境中确定所述第一客户端将访问的目标云开发环境。
73.本技术实施例中,如果基于云开发环境选择策略和第一客户端的客户端标识,确定出第一客户端为目标应用的新版本应用服务的命中灰度客户端(或者说第一客户端的用户为目标应用的新版本应用服务的命中灰度用户),则表明第一客户端具备访问部署在第一云开发环境中的目标应用的第一版本应用服务(即新版本应用服务)的资格,此时将第一云开发环境确定为第一客户端将访问的目标云开发环境。反之,如果确定出第一客户端不为目标应用的新版本应用服务的命中灰度客户端(或者说第一客户端的用户不为目标应用的新版本应用服务的命中灰度用户),则表明第一客户端不具备访问部署在第一云开发环境中的目标应用的新版本应用服务的资格,此时将部署目标应用的第二版本应用服务(即旧版本应用服务)的第二云开发环境确定为第二客户端将访问的目标云开发环境。
74.在一实施例中,云开发环境选择策略包括关于目标应用的第一版本应用服务的灰度策略,所述灰度策略用于指示哪些客户端或者用户具备访问部署在第一云开发环境中的所述第一版本应用服务的资格。计算机设备基于云开发环境选择策略和第一客户端的客户端标识,从第一云开发环境和第二云开发环境中确定第一客户端将访问的目标云开发环境的具体方式为:基于所述灰度策略和第一客户端的客户端标识,确定第一客户端是否具备访问部署在第一云开发环境中的所述第一版本应用服务的资格;若具备,则将第一云开发环境确定为第一客户端将访问的目标云开发环境;若不具备,则将第二云开发环境确定为第一客户端将访问的目标云开发环境。
75.在一实施方式中,客户端标识由数字组成,所述灰度策略包括灰度比例,基于所述灰度比例以及指定的数值位数可以确定参考数值集合,当从客户端标识中提取出的待检测数值包括在该参考数值集合中时,即可确定客户端具备访问部署在第一云开发环境中的所述第一版本应用服务的资格;反之,则不具备访问资格。
76.具体地,计算机设备基于所述灰度策略和第一客户端的客户端标识,确定第一客户端是否具备访问部署在第一云开发环境中的所述第一版本应用服务的资格的方式为:从第一客户端的客户端标识中确定待检测数值,其中,所述待检测数值是基于第一客户端的客户端标识中的指定m个位置处的m个数字确定的,所述m为正整数。例如,将客户端标识中排在最后的m位(如2位)数字组成待检测数值,如最后一位数字为2,倒数第二位数字为1,则可以将数值12或者21作为待检测数值。又例如,将客户端标识中排在最前的x位和排在最后的y位数字组成待检测数值,所述x、y为正整数,且x y=m。
77.基于所述灰度比例以及指定的数值位数确定参考数值集合,所述指定的数值位数等于所述m。例如,灰度比例为30%,指定的数值位数为2,则可以将00-29这30个数值作为参考数值集合。又例如,灰度比例为40%,指定的数值位数为3,则可以将000-399这400个数值作为参考数值集合。需要说明的是,计算机设备也可以预先存储上述参考数值集合,这样就可以直接查询预先存储的参考数值集合,而无需每次都要确定一次参考数值集合,从而有效节省计算资源和处理时间。
78.确定所述待检测数值是否包括在所述参考数值集合中,若是,则确定第一客户端具备访问部署在第一云开发环境中的所述第一版本应用服务的资格;反之,则确定第一客户端不具备访问部署在第一云开发环境中的所述第一版本应用服务的资格。
79.在一实施例中,所述云开发环境选择策略还包括关于所述第一版本应用服务的访
问白名单,计算机设备基于所述灰度策略和第一客户端的客户端标识,确定第一客户端是否具备访问部署在第一云开发环境中的所述第一版本应用服务的资格之前,先基于所述访问白名单和第一客户端的客户端标识,确定第一客户端是否具备访问部署在第一云开发环境中的所述第一版本应用服务的资格。在一实施方式中,所述访问白名单包括预设设置的具备访问部署在第一云开发环境中的所述第一版本应用服务的资格的多个客户端的客户端标识,若第一客户端的客户端标识包括在所述白名单中,则确定第一客户端具备访问部署在第一云开发环境中的所述第一版本应用服务的资格;反之,则不具备资格。
80.若第一客户端具备访问部署在第一云开发环境中的所述第一版本应用服务的资格,则将第一云开发环境确定为第一客户端将访问的目标云开发环境;若第一客户端不具备访问部署在第一云开发环境中的所述第一版本应用服务的资格,再基于所述灰度策略和所述第一客户端的客户端标识,确定第一客户端是否具备访问部署在第一云开发环境中的所述第一版本应用服务的资格。上述增加访问白名单的方式,一方面可以提高访问资格的检测效率,另一方面,对于某些需要赋予访问资格的客户端或者用户,如果其不能包括在灰度策略中,则可以将其添加到白名单中,这样也能赋予其访问资格,从而能够满足各种设置需求。
81.s203、返回携带所述目标云开发环境的云开发环境标识的指示信息至所述第一客户端,所述指示信息用于指示所述第一客户端根据所述云开发环境标识访问部署在所述目标云开发环境中的相应版本的所述目标应用的应用服务。
82.本技术实施例中,如果目标云开发环境为第一云开发环境,则表明第一客户端将访问目标应用的第一版本应用服务(即新版本应用服务);如果目标云开发环境为第二云开发环境,则表明第一客户端将访问目标应用的第二版本应用服务(即旧版本应用服务)。
83.在从第一云开发环境和第二云开发环境中确定出第一客户端将访问的目标云开发环境之后,计算机设备将目标云开发环境的云开发环境标识携带在指示信息中发送给第一客户端。第一客户端接收到计算机设备返回的指示信息之后,响应所述指示信息根据所述云开发环境标识访问目标云开发环境中的相应版本的目标应用的应用服务。
84.本技术实施例通过将目标应用的不同版本的应用服务分别部署在不同的云开发环境中,并通过云开发环境选择策略指示各个客户端将访问的云开发环境,从而通过访问的云开发环境的不同,使得不同的客户端访问目标应用的不同版本的应用服务。本技术实施例利用云开发环境之间隔离的特性,一方面实现了一种针对云开发场景的新型灰度发布方式,可使得云开发场景下的应用服务新版本上线具备高安全性和可控性;另一方面,也实现了此灰度发布方式下的一种新型的应用服务访问方式,可有效提高不同版本的应用服务的访问准确性。
85.在一实施例中,目标应用的第一版本应用服务(即新版本应用服务)是在预览验证通过之后才部署到第一云开发环境中的,将第一版本应用服务部署到第一云开发环境中即为将新版本应用服务上线。可以将目标应用的第一版本应用服务先部署到第三云开发环境中,以用于上线前预览,从而实现预览验证;其中,第三云开发环境与第一云开发环境和第二云开发环境不同,且相互独立。故在步骤s201之前,本技术实施例所述的应用服务访问方法,还可以包括如图3所示的如下步骤:
86.s301、接收第二客户端发送的关于所述目标应用的第一版本应用服务的预览请
求。
87.本技术实施例中,预览请求携带第二客户端的客户端标识。客户端标识可以是客户端的mac地址、sim卡号、当前登录目标应用的账号、mdn号码中的任一种。目标应用可以是小程序/小游戏、h5、web、移动app等应用。
88.s302、基于所述第二客户端的客户端标识和云开发环境选择策略包括的关于所述第一版本应用服务的预览白名单,确定所述第二客户端是否具备预览资格。
89.本技术实施例中,预先设置关于所述第一版本应用服务的预览白名单,该预览白名单包括具备预览所述第一版本应用服务的资格的多个客户端的客户端标识。具备预览资格的客户端可以是相关测试人员测试用的终端,也可以是指定的能够先行体验新版本应用服务的普通用户所使用的终端。若第二客户端的客户端标识包括在所述预览白名单中,则确定第二客户端具备预览资格,并执行步骤s302;反之,则确定第二客户端不具备预览资格,并结束流程。
90.s303、若所述第二客户端具备预览资格,则返回所述第三云开发环境的云开发环境标识至所述第二客户端,以使所述第二客户端根据所述第三云开发环境的云开发环境标识访问部署在所述第三云开发环境中的所述第一版本应用服务,并展示所述第一版本应用服务。第二客户端的用户在体验所述第一版本应用服务之后,填写关于所述第一版本应用服务的预览效果的反馈信息;第二客户端记录并反馈该反馈信息。
91.s304、获取各个具备预览资格的第二客户端发送的关于所述第一版本应用服务的预览效果的反馈信息。
92.s305、在基于获取到的各反馈信息确定所述第一版本应用服务预览验证通过之后,将所述第一版本应用服务部署至第一云开发环境中。
93.本技术实施例中,可以是计算机设备基于预设的相关算法对获取到的各反馈信息进行处理,以自动确定所述第一版本应用服务预览验证是否通过;也可以将获取到的各反馈信息展示给相关工作人员,以人工确定所述第一版本应用服务预览验证是否通过。若所述第一版本应用服务预览验证通过,则将所述第一版本应用服务部署至第一云开发环境中,即上线新版本应用服务。若所述第一版本应用服务预览验证未通过,则提示相关开发人员修改应用服务,并可以向相关开发人员展示相关问题,以及相关问题的解决方式,等等。
94.在一实施例中,将第一版本应用服务部署至所述第一云开发环境中之后,将与目标应用相关的云开发环境选择策略部署至指定云开发环境中,所述指定云开发环境可以为所述第一云开发环境,也可以为所述第二云开发环境,还可以为除所述第一云开发环境和所述第二云开发环境之外的其它云开发环境。在接收到客户端发送的云开发环境获取请求时,可以从所述指定云开发环境中调用所述与目标应用相关的云开发环境选择策略。
95.其中,所述云开发环境选择策略包括关于所述第一版本应用服务的灰度比例,可以每隔预设时间间隔按照灰度比例调整策略(如灰度比例调整策略用于指示每次灰度比例的调整幅度,或者用于指示每次将灰度比例调整为某一具体的数值,等等),对所述云开发环境选择策略中的关于所述第一版本应用服务的灰度比例进行调整,以逐步增加具备访问部署在第一云开发环境中的所述第一版本应用服务的资格的客户端数量,从而逐步完成所述第一版本应用服务的发布,这样有利于保证新版本应用服务发布的稳健性。另外,当需要回退应用服务版本,即限制客户端只能访问旧版本(即第二版本)的应用服务时,只需将关
于所述第一版本应用服务的灰度比例调整为0即可,实现方式简单。
96.需要说明的是,执行步骤s201-步骤s203的计算机设备,与执行步骤s301-步骤s305的计算机设备可以相同,也可以不同。本技术实施例所述的应用服务可以是指互联网产品所提供的至少部分服务,也可以是指互联网产品整体。
97.本技术实施例在将新版本应用服务上线之前,先对新版本应用服务进行预览验证,这样可以有效保证新版本应用服务的稳健性,有效降低新版本应用服务上线后出现故障的可能性。
98.本技术实施例利用云开发环境之间隔离的特性,实现了一种针对云开发场景的新型灰度发布方式,以及实现了此灰度发布方式下的一种新型应用服务访问方式,具体包括一种访问云开发环境的动态切换方案,实现了新版本上线前预览,新版本上线后的灰度比例动态调整、灰度白名单配置、版本回退等功能,这使得让云开发场景下的版本上线更加安全可控,有利于产品业务安全高效迭代。为更好的理解本技术实施例提供的方案,下面结合技术实现进行说明。
99.如图4所示,一个完整的应用服务上线流程包括上线前预览、灰度发布等环节,根据预览的情况和灰度发布中的现网反馈,来决定下一步的发布操作。具体而言,包括以下三种场景:应用场景1:云开发应用的云函数、云db(数据库)配置的上线前预览;应用场景2:云开发应用的云函数、云db配置的灰度发布、白名单提前体验;应用场景3:云开发应用的云函数、云db配置的发布中、发布后快速回退。
100.对于本方案的技术实现,主要包括如下几个部分:
101.1、整体框架设计
102.如图5a、5b或5c所示,将云开发环境a、b交替作为新版本应用服务部署的灰度环境,部署服务时每次只将需要灰度的服务全量部署到其中一个云开发环境中,现网用户(或者客户端)先通过一个前置请求云函数获取到对应的云开发环境id,然后再去请求对应云开发环境中的服务。其中,前置请求云函数用于实现前文所述的云开发环境选择策略,如图5a所示,前置请求云函数可以部署在部署有新版本应用服务的云开发环境a中;如图5b所示,前置请求云函数也可以部署在部署有旧版本应用服务的云开发环境b中;如图5c所示,前置请求云函数还可以部署在未部署任一版本应用服务的云开发环境c中。
103.2、前置请求云函数设计
104.如图6所示,前置请求云函数会根据预览白名单、灰度白名单、灰度比例等具体设置,对某个现网用户(或者说客户端)的服务访问请求进行判断,决定其最终访问哪一个云开发环境,从而达到发布前预览、灰度发布中提前体验、灰度比例调整的目的。当需要变更发布进行版本回退时,只需要将与新版本应用服务相关的灰度比例重新调整为0,即可将现网用户(或者客户端)重新导流到部署旧版本应用服务的云开发环境中。
105.3、灰度策略设计
106.判断是否命中灰度,即判断f(uid)是否小于或等于灰度比例,若小于或者等于则表明命中灰度,反之则表明未命中灰度。灰度比例的设置一般是以百分比的形式,需要将其和现网用户(或者客户端)形成一种固定的映射关系,来避免现网用户随机访问到新版环境(即部署新版本应用服务的云开发环境)和旧版环境(即部署旧版本应用服务的云开发环境)的体验问题。由于每一个用户(或者客户端)在网络系统中都会存在一个唯一的用户(或
者客户端)标识(uid),所以只需将其和灰度百分比之间形成一种映射关系f(如将尾号00-29的现网用户映射为30%),便能实现通过调整灰度百分比来对现网用户(或者客户端)的流量进行动态且稳定的访问环境分配。
107.4、预览和灰度配置项设计
108.如图7所示,对于新版本(如v2)应用服务,假设其对应的旧版本应用服务所处的云开发环境为enva,希望在envb云开发环境中对新版本(如v2)应用服务进行灰度发布,希望在envc云开发环境中对新版本(如v2)应用服务进行预览验证。那么灰度环境、灰度比例、灰度白名单均可在gray字段中进行配置,当需要回退版本时直接将灰度比例调整为0即可;另外,预览环境、预览白名单可在preview字段中进行配置。
109.通过以上设计,实现了将目标应用的不同版本的应用服务分别部署在不同的云开发环境中,并通过云开发环境选择策略(或者说前置云请求函数)指示各个客户端将访问的云开发环境,从而通过访问的云开发环境的不同,使得不同的客户端访问目标应用的不同版本的应用服务。这样即利用云开发环境之间隔离的特性,实现了针对云开发场景的新型灰度发布方式,也实现了此灰度发布方式下的新型应用服务访问方式。
110.本技术实施例所描述的方案对于云开发这种无固定运维服务器资源的场景,不再依赖机器进行灰度;对于服务数量较多的应用,通过环境将多个服务整体按版本切割开,从而可以达到整体灰度和预览的目的;通过环境动态切换的方案,既可以保证新版本服务逐步灰度上线的基本诉求,也可以满足诸如灰度体验白名单、发布前预览的功能性需要。通过一个前置环境请求,获取到灰度环境之后不再需要进行其他额外处理,可以保证程序的可测试性和健壮性;同时通过环境的快速切换可以实现版本回退的诉求。另外,本技术实施例所描述的方案可以有效提高云开发场景下的应用服务新版本的发布安全性。通过实验表明,采用本方案进行新版本服务上线时,变更风险大大降低,并且服务的整体可靠性和可用性可以得到有效保证。
111.请参阅图8,图8为本技术实施例提供的一种应用服务访问装置的结构示意图。本技术实施例中所描述的应用服务访问装置,对应于前文所述的计算机设备,其中,目标应用的第一版本应用服务部署在第一云开发环境中,所述目标应用的第二版本应用服务部署在第二云开发环境中,所述第一版本高于所述第二版本,所述装置包括:
112.收发单元801,用于接收第一客户端发送的关于所述目标应用的云开发环境获取请求,所述云开发环境获取请求携带所述第一客户端的客户端标识;
113.处理单元802,用于基于云开发环境选择策略和所述第一客户端的客户端标识,从所述第一云开发环境和第二云开发环境中确定所述第一客户端将访问的目标云开发环境;
114.所述收发单元801,还用于返回携带所述目标云开发环境的云开发环境标识的指示信息至所述第一客户端,所述指示信息用于指示所述第一客户端根据所述云开发环境标识访问部署在所述目标云开发环境中的相应版本的所述目标应用的应用服务。
115.在一实施例中,所述云开发环境选择策略包括关于所述第一版本应用服务的灰度策略;所述处理单元802具体用于:
116.基于所述关于所述第一版本应用服务的灰度策略和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;
117.若具备,则将所述第一云开发环境确定为所述第一客户端将访问的目标云开发环境;
118.若不具备,则将所述第二云开发环境确定为所述第一客户端将访问的目标云开发环境。
119.在一实施例中,所述灰度策略包括灰度比例,所述处理单元802具体用于:
120.从所述第一客户端的客户端标识中确定待检测数值,其中,所述待检测数值是基于所述第一客户端的客户端标识中的指定m个位置处的m个数字确定的,所述m为正整数;
121.基于所述灰度比例确定参考数值集合;
122.若所述待检测数值包括在所述参考数值集合中,则确定所述第一客户端具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;
123.若所述待检测数值不包括在所述参考数值集合中,则确定所述第一客户端不具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格。
124.在一实施例中,所述云开发环境选择策略还包括关于所述第一版本应用服务的访问白名单;所述处理单元802还用于:
125.基于所述关于所述第一版本应用服务的访问白名单和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;
126.若具备,则将所述第一云开发环境确定为所述第一客户端将访问的目标云开发环境;
127.若不具备,则基于所述关于所述第一版本应用服务的灰度策略和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格。
128.在一实施例中,部署在第三云开发环境中的所述第一版本应用服务用于上线前预览,所述云开发环境选择策略包括关于所述第一版本应用服务的预览白名单;
129.所述收发单元801,还用于接收第二客户端发送的关于所述第一版本应用服务的预览请求,所述预览请求携带所述第二客户端的客户端标识;
130.其中,所述装置还包括预览校验单元803,用于:
131.基于关于所述第一版本应用服务的预览白名单和所述第二客户端的客户端标识,确定所述第二客户端是否具备预览资格;
132.若所述第二客户端具备预览资格,则触发所述收发单元801返回所述第三云开发环境的云开发环境标识至所述第二客户端,以使所述第二客户端根据所述第三云开发环境的云开发环境标识访问部署在所述第三云开发环境中的所述第一版本应用服务,并展示所述第一版本应用服务。
133.在一实施例中,所述预览校验单元803,还用于:
134.获取各个具备预览资格的第二客户端发送的关于所述第一版本应用服务的预览效果的反馈信息;
135.在基于获取到的各反馈信息确定所述第一版本应用服务预览验证通过之后,触发所述装置包括的部署单元804将所述第一版本应用服务部署至所述第一云开发环境中。
136.在一实施例中,所述部署单元804,还用于将所述云开发环境选择策略部署至指定
云开发环境中,所述云开发环境选择策略还包括关于所述第一版本应用服务的灰度比例;
137.所述处理单元802,还用于每隔预设时间间隔按照灰度比例调整策略对所述云开发环境选择策略中的关于所述第一版本应用服务的灰度比例进行调整。
138.可以理解的是,本技术实施例的应用服务访问装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
139.本技术实施例通过将目标应用的不同版本的应用服务分别部署在不同的云开发环境中,并通过云开发环境选择策略指示各个客户端将访问的云开发环境,从而通过访问的云开发环境的不同,使得不同的客户端访问目标应用的不同版本的应用服务。本技术实施例利用云开发环境之间隔离的特性,一方面实现了一种针对云开发场景的新型灰度发布方式,可使得云开发场景下的应用服务新版本上线具备高安全性和可控性;另一方面,也实现了此灰度发布方式下的一种新型的应用服务访问方式,可有效提高不同版本的应用服务的访问准确性。
140.请参阅图9,图9为本技术实施例提供的一种计算机设备的结构示意图。本技术实施例中所描述的计算机设备包括:处理器901、通信接口902及存储器903。其中,处理器901、通信接口902及存储器903可通过总线或其他方式连接,本技术实施例以通过总线连接为例。
141.其中,处理器901(或称cpu(central processing unit,中央处理器))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:cpu可以用于解析用户向计算机设备所发送的开关机指令,并控制计算机设备进行开关机操作;再如:cpu可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口902可选的可以包括标准的有线接口、无线接口(如wi-fi、移动通信接口等),受处理器901的控制用于收发数据。存储器903(memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器903既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器903提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:android系统、ios系统、windows phone系统等等,本技术对此并不作限定。
142.在本技术实施例中,目标应用的第一版本应用服务部署在第一云开发环境中,所述目标应用的第二版本应用服务部署在第二云开发环境中,所述第一版本高于所述第二版本,处理器901通过运行存储器903中的可执行程序代码,执行如下操作:
143.通过通信接口902接收第一客户端发送的关于所述目标应用的云开发环境获取请求,所述云开发环境获取请求携带所述第一客户端的客户端标识;
144.基于云开发环境选择策略和所述第一客户端的客户端标识,从所述第一云开发环境和第二云开发环境中确定所述第一客户端将访问的目标云开发环境;
145.通过通信接口902返回携带所述目标云开发环境的云开发环境标识的指示信息至所述第一客户端,所述指示信息用于指示所述第一客户端根据所述云开发环境标识访问部署在所述目标云开发环境中的相应版本的所述目标应用的应用服务。
146.在一实施例中,所述云开发环境选择策略包括关于所述第一版本应用服务的灰度策略;处理器901基于云开发环境选择策略和所述第一客户端的客户端标识,从所述第一云
开发环境和第二云开发环境中确定所述第一客户端将访问的目标云开发环境时,具体用于:
147.基于所述关于所述第一版本应用服务的灰度策略和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;若具备,则将所述第一云开发环境确定为所述第一客户端将访问的目标云开发环境;若不具备,则将所述第二云开发环境确定为所述第一客户端将访问的目标云开发环境。
148.在一实施例中,所述灰度策略包括灰度比例,处理器901基于所述关于所述第一版本应用服务的灰度策略和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格时,具体用于:
149.从所述第一客户端的客户端标识中确定待检测数值,其中,所述待检测数值是基于所述第一客户端的客户端标识中的指定m个位置处的m个数字确定的,所述m为正整数;基于所述灰度比例确定参考数值集合;若所述待检测数值包括在所述参考数值集合中,则确定所述第一客户端具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;若所述待检测数值不包括在所述参考数值集合中,则确定所述第一客户端不具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格。
150.在一实施例中,所述云开发环境选择策略还包括关于所述第一版本应用服务的访问白名单;处理器901基于所述关于所述第一版本应用服务的灰度策略和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格之前,还用于:
151.基于所述关于所述第一版本应用服务的访问白名单和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格;若具备,则将所述第一云开发环境确定为所述第一客户端将访问的目标云开发环境;若不具备,则基于所述关于所述第一版本应用服务的灰度策略和所述第一客户端的客户端标识,确定所述第一客户端是否具备访问部署在所述第一云开发环境中的所述第一版本应用服务的资格。
152.在一实施例中,部署在第三云开发环境中的所述第一版本应用服务用于上线前预览,所述云开发环境选择策略包括关于所述第一版本应用服务的预览白名单;处理器901通过通信接口902接收第一客户端发送的关于所述目标应用的云开发环境获取请求之前,还用于:
153.通过通信接口902接收第二客户端发送的关于所述第一版本应用服务的预览请求,所述预览请求携带所述第二客户端的客户端标识;基于关于所述第一版本应用服务的预览白名单和所述第二客户端的客户端标识,确定所述第二客户端是否具备预览资格;若所述第二客户端具备预览资格,则通过通信接口902返回所述第三云开发环境的云开发环境标识至所述第二客户端,以使所述第二客户端根据所述第三云开发环境的云开发环境标识访问部署在所述第三云开发环境中的所述第一版本应用服务,并展示所述第一版本应用服务。
154.在一实施例中,处理器901还用于:获取各个具备预览资格的第二客户端发送的关于所述第一版本应用服务的预览效果的反馈信息;在基于获取到的各反馈信息确定所述第
一版本应用服务预览验证通过之后,将所述第一版本应用服务部署至所述第一云开发环境中。
155.在一实施例中,处理器901将所述第一版本应用服务部署至所述第一云开发环境中之后,还用于:将所述云开发环境选择策略部署至指定云开发环境中,所述云开发环境选择策略还包括关于所述第一版本应用服务的灰度比例;每隔预设时间间隔按照灰度比例调整策略对所述云开发环境选择策略中的关于所述第一版本应用服务的灰度比例进行调整。
156.具体实现中,本技术实施例中所描述的处理器901、通信接口902及存储器903可执行本技术实施例提供的一种应用服务访问方法中所描述的计算机设备的实现方式,也可执行本技术实施例提供的一种应用服务访问装置中所描述的实现方式,在此不再赘述。
157.本技术实施例通过将目标应用的不同版本的应用服务分别部署在不同的云开发环境中,并通过云开发环境选择策略指示各个客户端将访问的云开发环境,从而通过访问的云开发环境的不同,使得不同的客户端访问目标应用的不同版本的应用服务。本技术实施例利用云开发环境之间隔离的特性,一方面实现了一种针对云开发场景的新型灰度发布方式,可使得云开发场景下的应用服务新版本上线具备高安全性和可控性;另一方面,也实现了此灰度发布方式下的一种新型的应用服务访问方式,可有效提高不同版本的应用服务的访问准确性。
158.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如本技术实施例所述的应用服务访问方法。其具体实现方式可参考前文描述,此处不再赘述。
159.本技术实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行如本技术实施例所述的应用服务访问方法。其具体实现方式可参考前文描述,此处不再赘述。
160.需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
161.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
162.以上所揭露的仅为本技术部分实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献