灰度发布的方法及装置与流程

文档序号:17180244发布日期:2019-03-22 20:50阅读:432来源:国知局
灰度发布的方法及装置与流程

本发明涉及网络技术领域,尤其涉及一种灰度发布的方法及装置。



背景技术:

在互联网企业为了保障在线服务稳定运行的情况下更快的响应业务需求,软件研发往往会采用渐进式发布机制即灰度发布,将功能发布带来不可预期影响降到最低。

应用于大数据计算服务的灰度发布,一般会采用对租户项目分组多次的灰度发布方式。因为管理成本的原因,其灰度发布时租户项目的分组一般较少。但由于大数据计算服务是面向海量数据处理的服务,用户数多、数据量大、场景复杂,因此需要更细的租户项目分组。针对此问题,相关技术采用将租户项目的分组划分更细的方法,而这会使租户项目的分组增多,租户项目的分组增多会产生如下问题:

第一,灰度发布的管理成本会大大增加;

第二,租户项目分组增多,相应的租户项目分组调整的成本会很高,而大数据计算服务因其用户场景复杂常需要频繁调整租户项目的分组,这必然带来更高的管理成本;

第三,一个租户项目关闭新服务时,其所属分组中所有租户项目的新服务都将被迫关闭,从而影响灰度发布的进度。

综上可知,大数据计算服务需要一种成本低且更灵活的灰度发布机制。



技术实现要素:

本申请旨在至少解决相关技术中的技术问题之一。

本申请提供一种灰度发布的方法及装置,至少能够以更小的成本、更细更灵活的分组方式实现灰度分布。

本申请采用如下技术方案:

一种灰度发布方法,该方法包括:

在新服务发布过程中,确定第一发布管理组的租户项目中租户的任务执行结果;

所述租户项目中租户的任务执行结果满足条件时,将所述租户项目迁移至第二发布管理组;

其中,所述第一发布管理组具有设定租户范围的第一灰度范围,所述新服务对所述第一灰度范围内的租户发布;

所述第二发布管理组具有设定租户范围的第二灰度范围,所述新服务对所述第二灰度范围内的租户发布,所述第二灰度范围大于所述第一灰度范围。

其中,所述将所述租户项目迁移至第二发布管理组之后,还包括:

确定第二发布管理组的租户项目中租户的任务执行结果,所述租户项目中租户的任务执行结果满足条件时,将所述租户项目迁移至第三发布管理组;如此,直至将所述租户项目迁移至第n发布管理组;

其中,所述第三发布管理组具有设定租户范围的具有第三灰度范围,所述新服务对所述第三发布管理组的租户项目中的第三灰度范围内的租户发布,所述第三灰度范围大于所述第二灰度范围;

所述第n发布管理组具有设定租户范围的第n灰度范围,所述新服务对所述第二发布管理组的租户项目中的所有租户发布,所述第n灰度范围大于所述第三灰度范围,n为不小于3的整数。

其中,所述将所述租户项目迁移至第二发布管理组之前,还包括:将任务执行异常的租户项目回退到灰度范围最小的发布管理组。

一种灰度发布的方法,应用于大数据计算服务,所述方法包括:

向分流服务器配置多个灰度流量桶、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

将租户项目分批在所述多个灰度流量桶之间迁移,同时将每次所述迁移的关联信息更新到所述分流服务器,以便所述分流服务器对租户项目分批执行灰度发布;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

其中,所述将租户项目分批在所述多个灰度流量桶之间迁移,包括:确定当前批次的租户项目列表,并将所述租户项目列表在所述多个灰度流量桶之间迁移;其中,所述租户项目列表包括至少一个租户项目的信息;所述关联信息包括:所述租户项目列表及其所关联灰度流量桶的标识。

其中,所述将租户项目分批在所述多个灰度流量桶之间迁移,包括:按照新服务流量占比从0%到100%依次增加的顺序将当前批次租户项目的信息轮流关联到各所述灰度流量桶,且所述当前批次租户项目的信息每次关联一个所述灰度流量桶。

其中,所述将租户项目分批在所述多个灰度流量桶之间迁移,包括:每次迁移之前,确定发生任务异常的租户项目并将当前批次的租户项目中发生任务异常的租户项目移除。

其中,所述将当前批次的租户项目中发生任务异常的租户项目移除之后,还包括:将所述任务异常的租户项目回退到新服务流量占比为0%的灰度流量桶。

其中,将租户项目分批在所述多个灰度流量桶之间迁移,包括:在当前批次租户项目的灰度发布执行完成后,继续将下一批次的租户项目在所述多个灰度流量桶之间迁移;以此类推,直到所有租户项目的灰度发布完成。

其中,所述多个灰度流量桶包括如下之二或多项:

新服务的流量占比为0%的0%桶;

新服务的流量占比为20%的20%桶;

新服务的流量占比为40%的40%桶;

新服务的流量占比为60%的60%桶;

新服务的流量占比为80%的80%桶;

新服务的流量占比为100%的100%桶。

一种灰度发布装置,应用于大数据计算服务,包括:

灰度配置模块,用于向分流服务器配置多个灰度流量桶、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

灰度控制模块,用于将租户项目分批在所述多个灰度流量桶之间迁移,同时将每次所述迁移的关联信息更新到所述分流服务器,以便所述分流服务器对租户项目分批执行灰度发布;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

其中,所述多个灰度流量桶包括如下之二或多项:

新服务的流量占比为0%的0%桶;

新服务的流量占比为20%的20%桶;

新服务的流量占比为40%的40%桶;

新服务的流量占比为60%的60%桶;

新服务的流量占比为80%的80%桶;

新服务的流量占比为100%的100%桶。

一种灰度发布设备,包括:

存储有灰度发布程序的存储器;

处理器,配置为读取所述灰度发布程序以执行下述操作:

在新服务发布过程中,确定第一发布管理组的租户项目中租户的任务执行结果;

所述租户项目中租户的任务执行结果满足条件时,将所述租户项目迁移至第二发布管理组;

其中,所述第一发布管理组具有设定租户范围的第一灰度范围,所述新服务对所述第一灰度范围内的租户发布;

所述第二发布管理组具有设定租户范围的第二灰度范围,所述新服务对所述第二灰度范围内的租户发布,所述第二灰度范围大于所述第一灰度范围。

一种灰度发布设备,应用于大数据计算服务,包括:

存储有灰度发布程序的存储器;

处理器,配置为读取所述灰度发布程序以执行下述操作:

向分流服务器配置多个灰度流量桶、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

将租户项目分批在所述多个灰度流量桶之间迁移,同时将每次所述迁移的关联信息更新到所述分流服务器,以便所述分流服务器对租户项目分批执行灰度发布;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

一种灰度发布的方法,应用于提供大数据计算服务,包括:

获取来自灰度发布设备的多个灰度流量桶的配置信息、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

根据所述灰度发布设备更新到本地的关联信息,对租户项目分批执行如下的灰度处理以完成灰度发布:按照当前批次租户项目当前所关联灰度流量桶的配置信息,以新服务流量占比将当前批次租户项目的部分任务量分配到新服务标识对应的计算节点、并以旧服务流量占比将当前批次租户项目的另一部分任务量分配到旧服务标识对应的计算节点;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

其中,根据所述灰度发布设备更新到本地的关联信息,对租户项目分批执行如下的灰度发布处理,还包括:将所述灰度处理的过程中,收集来自各计算节点的任务执行信息,并将当前批次租户项目的任务执行信息提供给所述灰度发布设备,所述任务执行信息包括如下之一或多项:任务执行成败、单位时间处理的数据量、任务运行时长。

其中,所述多个灰度流量桶包括如下之二或多项:

新服务的流量占比为0%的0%桶;

新服务的流量占比为20%的20%桶;

新服务的流量占比为40%的40%桶;

新服务的流量占比为60%的60%桶;

新服务的流量占比为80%的80%桶;

新服务的流量占比为100%的100%桶。

一种灰度发布装置,应用于提供大数据计算服务,包括:

获取模块,用于获取来自灰度发布设备的多个灰度流量桶的配置信息、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

灰度执行模块,用于根据所述灰度发布设备更新到本地的关联信息,对租户项目分批执行如下的灰度处理以完成灰度发布:按照当前批次租户项目当前所关联灰度流量桶的配置信息,以新服务流量占比将当前批次租户项目的部分任务量分配到新服务标识对应的计算节点、并以旧服务流量占比将当前批次租户项目的另一部分任务量分配到旧服务标识对应的计算节点;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

一种分流服务器,应用于提供大数据计算服务,包括:

存储有灰度发布程序的存储器;

处理器,配置为读取所述灰度发布程序以执行下述操作:

获取来自灰度发布设备的多个灰度流量桶的配置信息、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

根据所述灰度发布设备更新到本地的关联信息,对租户项目分批执行如下的灰度处理以完成灰度发布:按照当前批次租户项目当前所关联灰度流量桶的配置信息,以新服务流量占比将当前批次租户项目的部分任务量分配到新服务标识对应的计算节点、并以旧服务流量占比将当前批次租户项目的另一部分任务量分配到旧服务标识对应的计算节点;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

本申请包括以下优点:

一方面,本申请在时间上对租户项目进行先后分批执行灰度发布,同时通过灰度流量桶实现对租户项目的管理和组织,相较于相关技术中在空间上提前对租户项目进行分组的方式,以较小的代价实现了更灵活的灰度发布机制,能够适应用户场景复杂多变且数据处理量大的情况。

另一方面,本申请只需要灰度流量桶的配置信息,相较于相关技术需要维护较多租户项目分组的方式,成本更小。

当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有优点。

附图说明

图1为本申请示例性应用环境的示意图;

图2为本申请灰度发布方法的流程示意图;

图3为实施例一灰度发布方法的流程示意图;

图4为实施例一中灰度发布示例的实现过程示意图;

图5为实施例二灰度发布装置的结构示意图;

图6为实施例五灰度发布方法的流程示意图;

图7为实施例五灰度发布装置的结构示意图;

图8为本申请一实例中实现灰度发布的示例性网络架构示意图。

具体实施方式

下面将结合附图及实施例对本申请的技术方案进行更详细的说明。

需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在一个典型的配置中,客户端或服务器的计算设备可包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存(memory)。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块n(n为大于2的整数)。

计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom),快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

首先,以大数据计算服务(比如,maxcompute,amazonredshift等)为例,详细说明相关技术灰度发布方法的实现过程及其存在的缺陷。

大数据计算服务是一种快速、完全托管的tb/pb级数据仓库解决方案。大数据计算服务向用户提供了完善的数据导入方案以及多种经典的分布式计算模型(sql、mapreduce、mpi、图计算等),能够更快速的解决用户海量数据计算问题。

在大数据计算服务发布产品功能的新服务时,一般会采用对租户项目分组多次的灰度发布方法。但由于管理成本有限,在灰度发布时租户项目的分组一般较少。但大数据计算服务是面向海量数据处理的服务,用户数多、数据量大、场景复杂,这些客观情况致使大数据计算服务的新服务发布的风险大大提高。在灰度发布时租户项目分组较少的情况下,如果灰度发生问题,那么受影响的用户面就比较大。因此,对于大数据计算服务来讲,在新服务发布时,如何划分更细的租户项目是需要解决的技术问题。

相关技术的做法是:按照大数据计算服务的新服务的重要程度由低往高,将租户项目划分成三个组:低、中、高,然后依次对每个分组按流量灰度打开新服务。流量灰度可以划分为20%、40%、60%、80%、100%,各个分组按照流量灰度从小到大(20%、40%、60%、80%、100%)的顺序逐步打开新服务。其中,流量灰度为20%时表示相应租户项目有20%的用户请求会使用新服务,流量灰度为100%表示相应租户项目中所有用户请求会使用新服务。针对大数据计算服务需要对租户项目进行更细划分的问题,相关技术的具体做法是对上述三个分组继续细化,划分出更多的组。比如,将大数据计算服务的租户项目划分为:低-1、低-2…中-1、中-2…高-1、高-2…。然后,每个分组的流量灰度仍然按照之前的方式进行,从20%开始逐步增大到100%。尽管相关技术的方案可以对租户项目进行更细的划分,但存在如下缺陷:

1、租户项目的分组需要统一创建和维护,如果租户项目的分组数量增加,灰度发布的管理成本必然会大大提高;

2、由于大数据计算服务的用户场景复杂,很可能会临时调整租户项目的分组情况以进行更有针对性的灰度发布,因此,大数据计算服务的灰度发布需要更具灵活性的租户项目分组。此方式中,一旦租户项目的分组创建,再次调整的话成本很高,而大数据计算服务又需要实时针对不同用户场景调整其租户项目的分组方式,这必然会再次加大灰度发布的管理成本,降低灰度发布的执行效率;

3、有一个租户项目需要关闭新服务时,只能将该租户项目所属分组的灰度流量统一修改成0%,这会导致该分组中其他租户项目也被迫关闭新服务,从而影响灰度发布的进度;

综上可知,相关技术的灰度发布机制无法支持大数据计算服务,大数据计算服务需要一种代价小且能更细更灵活组织租户项目的灰度发布机制。

针对相关技术的上述缺陷,本申请的技术方案放弃对租户项目提前分组的方式,而是引入灰度流量桶并通过将租户项目与灰度流量桶进行关联,通过更新灰度流量桶与各租户项目之间的关联关系来动态调整各租户项目的灰度策略,可适用于类似大数据计算服务的大数据计算服务,能够以更小的成本、更灵活的方式实现灰度分布。

本文所涉及术语的解释如下:

租户项目(project)类似于传统数据库的database或schema,用户可在租户项目中使用大数据计算服务提供的产品功能,是进行多用户隔离和访问控制的主要边界。

租户是指使用同一租户项目的一个或多个用户。

如图1所示,为本申请技术方案的示例性应用环境示意图。如图1所示,大数据计算集群可以向用户提供大数据计算服务。在大数据计算集群中有部分功能更新或新功能在所有用户中全部推广使用之前,大数据计算集群会同时提供新服务和旧服务,新服务中涉及更新后的功能或新功能。大数据计算集群可以包括:分流服务器、提供新服务的计算设备或集群、提供旧服务的计算设备或集群,分流服务器可将用户请求按照灰度发布设备提供的灰度配置文件将一定比例的用户请求分配到提供新服务的计算设备或集群、剩余比例的用户请求分配到提供旧服务的计算设备或集群中,同时分流服务器将新服务执行情况的相关信息反馈给灰度发布设备。灰度发布设备的灰度配置文件中设置了新服务的流量占比和旧服务流量占比,灰度发布设备可以根据分流服务器返回的新服务执行情况实时调整灰度配置文件中新服务和旧服务的流量占比,以便分流服务器逐步增大分配向新服务的用户请求数量,直到所有用户请求都可以分配到新服务,完成灰度发布。其中,灰度配置文件的配置和更新可以在管理员的操作下完成。

需要说明的是,图1仅为示例性架构,在另一种实现方式中,本申请技术方案的应用环境还可以采用其他架构。比如,提供新服务的计算设备或集群与提供旧服务的计算设备或集群可能是同一物理设备或同一物理设备集群,该计算设备可以是物理设备、虚拟服务器或云服务实例。再比如,分流服务器可以是大数据计算集群中的负载均衡服务器,或分流服务器可以是可提供大数据计算服务的分布式计算系统中的资源调度器。此外,对于本申请应用环境的具体架构,还可以采用本领域技术人员毫无疑义可想到的其他形式。

本申请中,分流服务器负责基于灰度发布设备提供的配置信息和关联信息执行灰度发布。实际应用中,该分流服务器可以是任何可实现相应功能的计算设备,该计算设备可以是虚拟服务器、也可以是物理服务器。一种实现方式中,该分流服务器可以是提供大数据计算服务的集群的负载均衡服务器,

本申请中,灰度发布设备可以是任何可实现上述功能的计算设备,该计算设备可以是计算机(比如,膝上型计算机、便携式计算机等)、服务器(比如,虚拟服务器、物理服务器)等设备。

本申请提供一种灰度发布方法,如图2所示,该方法可以包括:

步骤101,在新服务发布过程中,确定第一发布管理组的租户项目中租户的任务执行结果;

步骤102,所述租户项目中租户的任务执行结果满足条件时,将所述租户项目迁移至第二发布管理组;

其中,所述第一发布管理组具有设定租户范围的第一灰度范围,所述新服务对所述第一灰度范围内的租户发布;所述第二发布管理组具有设定租户范围的第二灰度范围,所述新服务对所述第二灰度范围内的租户发布,所述第二灰度范围大于所述第一灰度范围。

本申请中,所述将所述租户项目迁移至第二发布管理组之后,还可以包括:确定第二发布管理组的租户项目中租户的任务执行结果,所述租户项目中租户的任务执行结果满足条件时,将所述租户项目迁移至第三发布管理组;如此,直至将所述租户项目迁移至第n发布管理组;其中,所述第三发布管理组具有设定租户范围的具有第三灰度范围,所述新服务对所述第三发布管理组的租户项目中的第三灰度范围内的租户发布,所述第三灰度范围大于所述第二灰度范围;所述第n发布管理组具有设定租户范围的第n灰度范围,所述新服务对所述第二发布管理组的租户项目中的所有租户发布,所述第n灰度范围大于所述第三灰度范围,n为不小于3的整数。如此,可通过灰度范围逐步扩大到全部租户的模式执行新服务的灰度发布。

本申请中,还可以包括:将任务执行异常的租户项目回退到灰度范围最小的发布管理组。一种实现方式中,所述新服务对所述第一发布管理组的租户项目中的0个租户发布时,可以在迁移之前将任务执行异常的租户项目回退到第一发布管理组。这里的迁移可以是迁移至任意一个发布管理组,比如第二发布管理组、第三发布管理组、第n发布管理组等。如此,可便于将任务执行异常的租户项目回退之后再重新进行灰度发布。

本申请中,第一发布管理组、第二发布管理组、第三发布管理组、……、第n发布管理组分别可以通过灰度流量桶表示,相应的可以通过设置灰度流通的流量占比来表示发布管理组的灰度范围。类似的,发布管理组还可以采用其他形式,本申请不予限制。

本申请中,任务执行结果可以由执行灰度发布的分流服务器提供,也可以通过对分流服务器提供的任务执行信息进行统计分析得到。该任务执行结果是否满足条件、条件具体如何设定以及任务是否发生异常等均可以根据实际应用场景的情况来确定。比如,该条件可以是已发布新服务的租户完成了新服务的任务。

相应的,本申请还提供一种灰度发布设备,包括:存储有灰度发布程序的存储器;处理器,配置为读取所述灰度发布程序以执行下述操作:在新服务发布过程中,确定第一发布管理组的租户项目中租户的任务执行结果;所述租户项目中租户的任务执行结果满足条件时,将所述租户项目迁移至第二发布管理组;其中,所述第一发布管理组具有设定租户范围的第一灰度范围,所述新服务对所述第一灰度范围内的租户发布;所述第二发布管理组具有设定租户范围的第二灰度范围,所述新服务对所述第二灰度范围内的租户发布,所述第二灰度范围大于所述第一灰度范围。

本申请的上述灰度发布设备可实现本申请上述方法的各技术细节,其原理相同,不再赘述。

本申请的上述技术方案,通过将租户项目在各发布管理组之间迁移动态调整该批次租户项目在新服务上的发布范围,可以在时间上对租户项目先后分批进行灰度发布,同时通过发布管理组实现对租户项目的管理和组织,以较小的代价实现了更灵活的灰度发布机制,能够适应用户场景复杂多变且数据处理量大的情况。下面对本申请技术方案的具体实现方式进行详细说明。

实施例一

一种灰度发布的方法,应用于大数据计算服务,如图3所示,所述方法可以包括:

步骤201,向分流服务器配置多个灰度流量桶、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

步骤202,将租户项目分批在所述多个灰度流量桶之间迁移,同时将每次所述迁移的关联信息更新到所述分流服务器,以便所述分流服务器对租户项目分批执行灰度发布;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

本实施例中,配置多个灰度流量桶且每个灰度流量桶配有固定的灰度流量值,可实时并灵活的将租户项目进行分批,并通过将一批次租户项目在各灰度流量桶之间迁移动态调整该批次租户项目在新服务上流量占比,从而在时间上实现对租户项目进行先后分批执行灰度发布,同时通过灰度流量桶实现对租户项目的管理和组织,以较小的代价实现了更灵活的灰度发布机制,能够适应用户场景复杂多变且数据处理量大的情况。

本实施例中,灰度流量桶标识可以是灰度流量桶的名称、id、编号或其他可用于唯一表示一个灰度流量桶的信息。流量占比可以是服务上运行的任务占总任务量的比例。新服务标识可以是新服务版本信息,旧服务标识可以是旧服务版本信息。此外,新服务标识、旧服务标识还可以是其他可以唯一表示一个服务或功能版本的信息。实际应用中,新服务版本信息、旧服务版本信息等可以由分流服务器提供,也可以由管理员输入。灰度流量桶的标识可以按照设定的字段规则来生成。

本实施例中,一批次租户项目的信息可以包括至少一个租户项目的信息。优选的,一批次租户项目的信息可以包括多个租户项目的信息。其中,一个租户项目的信息可以包括该租户项目的标识以及其他信息。一种实现方式中,租户项目的标识可以是租户项目的名称、id或其他可以唯一表示一个租户项目的信息。

本实施例中,灰度流量桶的配置方式可以有多种方式。一种实现方式中,一个灰度流量桶的配置信息可以包括两个配置项:包含灰度流量桶标识的配置项、以及包含流量比例信息的配置项,所述流量比例信息可以包括:旧服务标识及其对应的流量占比、新服务标识及其对应的流量占比。

比如,一个灰度流量桶可以配置为:"0_percent":{"grayinfo":{"defaultversion":100,"flightingversion":0}},表示名称为0_precent的灰度流量桶的流量比例信息为:新服务流量占比0%,旧服务流量占比100%。

再比如,多个灰度流量桶可以配置为一个整体:"tiergrayinfo":{"0_percent":{"grayinfo":{"defaultversion":0,"flightingversion":100}};"100_percent":"grayinfo":{"defaultversion":0,"flightingversion":100}},表示当前配置有两个灰度流量桶,名称分别为:0_percent和100_percent,名称为0_precent的灰度流量桶的流量比例信息为:新服务流量占比0%、旧服务流量占比100%,名称为100_precent的灰度流量桶的流量比例信息为:新服务流量占比100%、旧服务流量占比0%。

本实施例中,灰度流量桶与租户项目的关联信息可以采用多种方式进行配置。

一种实现方式中,灰度流量桶与租户项目的关联信息可以包括:所有灰度流量桶的标识、以及绑定在一个灰度流量桶标识下的租户项目列表。此方式中实现时,在灰度流量桶与租户项目的关联信息设置多个配置项,该配置项与灰度流量桶一一对应,即每个配置项包含两部分内容:一部分为灰度流量桶的标识、另一部分为该灰度流量桶下当前所关联租户项目的信息(比如,租户项目的名称、id或其他类似信息)。如果一个灰度流量桶当前没有关联任何租户项目,那么该灰度流量桶的配置项中租户项目信息所在的部分为空。本实施例中,每个租户项目关联一个灰度流量桶,且租户项目分批执行灰度发布,在上一批租户项目完成灰度发布之后再执行下一批租户项目的灰度发布,那么,在某个时刻所述关联信息中仅有一个灰度流量桶标识绑定有租户项目信息,其他灰度流量桶标识均未绑定租户项目,即只有一个灰度流量桶的配置项中包含有当前批次租户项目的信息。

另一种实现方式中,灰度流量桶与租户项目列表的关联信息可以包括:关联当前批次租户项目的灰度流量桶的标识及与当前匹配租户项目的信息。实现时,在灰度流量桶与租户项目的关联信息中可以设置一个配置项,该配置项包含两部分内容:一部分为关联当前批次租户项目的灰度流量桶的标识、另一部分为当前批次租户项目的信息(比如,租户项目的名称、id或其他类似信息)。

一种实现方式中,可以通过将灰度流量桶的名称与租户项目标识绑定来实现灰度流量桶与租户项目的关联。如果需要将一批租户项目同时关联到一个灰度流量桶,可以将灰度流量桶的名称与该批租户项目的租户项目标识列表绑定。

比如,灰度流量桶与一批租户项目的关联信息可以配置为如形式:"projecttier":{"0_percent":[],"100_percent":["project_a","project_b","project_c"]},该配置表示包含两个配置项:"0_percent":[]、以及"100_percent":["project_a","project_b","project_c"],其中,名称为0_precent的灰度流量桶当前没有关联该批次租户项目;名称为100_percent的灰度流量桶当前关联该批次租户项目,该批次租户项目包含三个租户项目,这三个租户项目的名称分别为:project_a、project_b、project_c。

本实施例中,可以以文件的形式将灰度流量桶的配置信息以及关联信息配置到分流服务器。一种实现方式中,可以向分流服务器配置灰度配置文件,该灰度配置文件中包含两个部分:灰度流量桶的配置信息、以及表示灰度流量桶与租户项目关联关系的关联信息。

比如,对于大数据计算服务,配置灰度配置文件的过程可以是:灰度发布设备从大数据计算服务系统的元数据仓库中读取灰度流量配置文件;根据大数据计算服务的新服务版本信息、旧服务版本信息、租户项目信息、以及需创建的流量桶信息,将灰度流量桶的配置信息(如名称、新服务流量占比、旧服务流量占比)、以及灰度流量桶与租户项目列表的关联信息并写入所述灰度流量配置文件中,并将该灰度流量配置文件重新写入大数据计算服务系统的元数据仓库。这里,初始配置灰度流量桶时,灰度流量桶与租户项目的关联信息可以包含各灰度流量的标识(如名称)但灰度流量桶的标识可以先不绑定租户项目信息。

本实施例中,所述将租户项目分批在所述多个灰度流量桶之间迁移,可以包括:确定当前批次的租户项目列表,并将所述租户项目列表在所述多个灰度流量桶之间迁移;其中,所述租户项目列表包括至少一个租户项目的信息;所述关联信息包括:所述租户项目列表及其所关联灰度流量桶的标识。

一种实现方式中,确定当前批次的租户项目列表的方式可以是:可以按照一定选取规则从所有租户项目中选取一个或多个租户项目,再以所选取的一个或多个租户项目的信息形成当前批次的租户项目列表。实际应用中,选取规则可以根据大数据计算服务的业务场景相关,不同业务场景或者不同的新服务可以设定不同的选取规则。比如,可以根据业务的优先级以及任务数量来选取,比如灰度早期,可以选取优先级低或用户等级低、同时任务数少(如日任务量占比<5%)的租户项目作为前几批执行灰度发布的租户项目。再比如,可以根据任务的特征选取租户项目,如果新服务主要针对某个任务特征的sql查询语句优化,那灰度时可以选取符合这个特征条件的租户项目来进行灰度发布,如此,灰度发布时更有针对性,更适用于类似大数据计算服务这种应用场景繁多、业务种类多样的情况。

本实施例中,所述将租户项目分批在所述多个灰度流量桶之间迁移,可以包括:按照新服务流量占比从0%到100%依次增加的顺序将当前批次租户项目的信息轮流关联到各所述灰度流量桶,且所述当前批次租户项目的信息每次关联一个所述灰度流量桶。比如,配置如下灰度流量桶:0%桶、20%桶、40%桶、60%桶、80%桶、100%桶时,可以按照0%桶→20%桶→40%桶→60%桶→80%桶→100%桶的顺序轮流将当前批次租户项目的信息关联到各所述灰度流量桶。实际应用中,以大数据计算服务为例,灰度执行过程中灰度发布设备可以通过将大数据计算服务系统的元数据仓库中灰度流量配置文件的关联信息中当前批次租户项目的信息(比如,租户项目列表)从0%桶标识下依次迁移到100%桶标识下,完成当前批次租户项目的灰度发布。

在所述关联信息包括多个配置项且每个配置项对应一个所述灰度流量桶的实现方式下,所述将租户项目分批在所述多个灰度流量桶之间迁移,可以包括:每次迁移时,将当前批次租户项目的信息从当前灰度流量桶的配置项中删除,并在下一个灰度流量桶的配置项添加所述当前批次租户项目的信息。

以大数据计算服务系统为例,一次迁移的操作过程可以包括:首先,灰度发布设备读取大数据计算服务系统的元数据仓库中的灰度配置文件,查询当前绑定有租户项目列表的灰度流量桶标识;其次,对灰度配置文件中的关联信息进行修改:将关联信息中当前灰度流量桶的配置项中当前批次租户项目的信息(比如,租户项目列表)删除,并在下一级灰度流量桶的配置项中添加当前批次租户项目的信息;最后,将修改后的灰度配置文件重新写入到大数据计算服务系统的元数据仓库中。

本实施例中,每次迁移之前,确定发生任务异常的租户项目并将当前批次的租户项目中发生任务异常的租户项目移除。这样,可在任一租户项目关闭新服务时,其他租户项目的灰度发布不受影响,即其他租户项目可继续进行新服务的发布,使得一批租户项目的灰度发布过程不会因为其中的一个租户项目任务异常而终止。相较于相关技术中一个租户项目出问题则其所属的租户项目分组中所有租户项目都被迫关闭新服务的方式,本实施例的实现方式更快速高效,也更适用于用户数多、数据量大、场景复杂的应用。

这里,确定发生任务异常的租户项目可以有多种方式。一种实现方式中,所述确定发生任务异常的租户项目,可以包括:统计当前批次租户项目关联在当前灰度流量桶的设定时长内的任务执行信息,并根据所述任务执行信息确定发生任务异常的租户项目;其中,所述任务执行信息包括如下之一或多项:新服务上的任务失败率、单位时间处理的数据量、任务运行时长。比如,任务失败率低于预定的任务失败率阈值时可以视为任务异常。再比如,任务运行时长超出预定的任务运行时长阈值,该任务运行时长阈值与用户业务有关,可以视为任务异常。再比如,任务在单位时间处理的数据量低于预设的数据量阈值,也可以视为任务异常。除此之外,任务异常还可有其他情况。相应的,确定任务异常的方式可以视具体情况来定。

本实施例中,所述将当前批次的租户项目中发生任务异常的租户项目移除之后,还可以包括:将所述任务异常的租户项目回退到新服务流量占比为0%的灰度流量桶。

以大数据计算服务为例,将当前批次的租户项目中发生任务异常的租户项目移除的过程可以包括:统计当前批次租户项目关联在当前灰度流量桶的设定时长内的任务执行信息,确定发生任务异常的租户项目,将大数据计算服务系统的元数据仓库中灰度配置文件的关联信息中发生任务异常的租户项目的信息从当前批次租户项目的信息(比如,租户项目列表)中删除,并将发生任务异常的租户项目的信息重新关联到0%桶标识下。

本实施例中,将租户项目分批在所述多个灰度流量桶之间迁移,包括:在当前批次租户项目的灰度发布执行完成后,继续将下一批次的租户项目在所述多个灰度流量桶之间迁移;以此类推,直到所有租户项目的灰度发布完成。

本实施例中,所述将租户项目分批在所述多个灰度流量桶之间迁移之前,还可以包括:将所有租户项目关联到新服务流量占比为0%的灰度流量桶。这样,在执行迁移时便于选取下一批次的租户项目。比如,以大数据计算服务为例,灰度开始时,灰度发布设备可以通过修改大数据计算服务系统的元数据仓库中灰度流量配置文件的关联信息将所有租户项目的信息都绑定到0%桶标识下。

实际应用中,灰度流量桶的配置粒度可以根据实际应用环境、新服务的特征等来实时调整。一种实现方式中,所述多个灰度流量桶可以包括如下之二或多项:新服务的流量占比为0%的0%桶;新服务的流量占比为20%的20%桶;新服务的流量占比为40%的40%桶;新服务的流量占比为60%的60%桶;新服务的流量占比为80%的80%桶;新服务的流量占比为100%的100%桶。在其他实现方式中,还可采用更细粒度的灰度流量桶配置,以实现更细粒度的灰度发布。比如,每个灰度流量桶的流量占比之间相差10%或5%。

下面将结合图4所示的例子详细说明灰度发布的过程。

灰度开始前,创建灰度流量桶,如图4所示,本例子中创建6个灰度流量桶:0%桶、20%桶、40%桶、60%桶、80%桶、100%桶,配置如下各灰度流量桶的初始状态时将所有的租户项目(即现有的n个租户项目)都和0%桶关联,也可称为所有租户项目都位于0%桶内,表示灰度发布开始之前没有任何任务会打开新服务。

其中,各灰度流量桶分别定义如下:

0%桶:对应所述新服务版本标识的流量比为0%,对应所述旧服务版本标识的流量比为100%;

20%桶:对应所述新服务版本标识的流量比为20%,对应所述旧服务版本标识的流量比为80%;

40%桶:对应所述新服务版本标识的流量比为40%,对应所述旧服务版本标识的流量比为60%;

60%桶:对应所述新服务版本标识的流量比为60%,对应所述旧服务版本标识的流量比为40%;

80%桶:对应所述新服务版本标识的流量比为20%,对应所述旧服务版本标识的流量比为80%;

100%桶:对应所述新服务版本标识的流量比为100%,对应所述旧服务版本标识的流量比为0%。

灰度发布开始时,可根据需要先选取一批租户项目进行灰度发布,如图4所示,本例子中选取租户项目1、租户项目2和租户项目3作为第一批租户项目进行第一批灰度发布。灰度发布开始后,将第一批租户项目从0%桶迁移到20%桶,即将第一批租户项目关联到20%桶(比如,对关联信息做如下修改:将第一批租户项目的信息从0%桶的配置项中删除,并将第一批租户项目的信息添加到20%桶的配置项中),表示该批租户项目将有20%的任务分配到新服务上。如此,将n个租户项目分成不同批次进行灰度发布,可实现更细粒度的灰度发布。

如果第一批租户项目关联20%桶的设定时长内无任务异常(即有任务运行在新服务上,且运行在新服务上的任务流量符合当前灰度流量桶中新服务的流量占比),可将第一批租户项目继续往下一个灰度流量桶迁移,此时,继续将第一批租户项目从20%桶迁移到40%桶,即将第一批租户项目关联到40%桶,表示该批租户项目将有40%的任务分配到新服务。

如果第一批租户项目关联40%桶的设定时长内无任务异常,可将第一批租户项目继续往下一个灰度流量桶迁移。即,继续将第一批租户项目从40%桶迁移到60%桶,即将第一批租户项目关联到60%桶,表示该批租户项目将有60%的任务分配到新服务。

如果第一批租户项目关联60%桶的设定时长内无任务异常,可将第一批租户项目继续往下一个灰度流量桶迁移。即,继续将第一批租户项目从60%桶迁移到80%桶,即将第一批租户项目关联到80%桶,表示该批租户项目将有80%的任务分配到新服务。

如果第一批租户项目关联80%桶的设定时长内无任务异常,可将第一批租户项目继续往下一个灰度流量桶迁移。即,继续将第一批租户项目从80%桶迁移到100%桶,即将第一批租户项目关联到100%桶,表示该批租户项目将有100%的任务分配到新服务。

当第一批租户项目迁移到100%流量桶内,并完成观察后即第一批租户项目关联100%桶的设定时长内无任务异常,表示第一批租户项目完成了新服务的发布。

第一批租户项目完成新服务的发布之后,可继续从0%桶内选择第二批租户项目,重复上述的灰度流量桶迁移操作。如此循环,当所有租户项目最终都迁移至100%桶内,表明新服务完成了所有的灰度发布。

如果灰度发布过程中,发生任务异常,可以执行回切将受影响的租户项目重新回迁到0%桶。本例子中,如图4所示,在第一批租户项目的灰度发布过程中,租户项目3在迁移到60%桶后设定时长内发生任务异常,则直接将租户项目3从60%桶回退到0%桶,即将租户项目3关联到0%桶,回到初始状态。第一批租户项目中的其他租户项目即租户项目1和租户项目2不受影响,继续灰度。

通过上述例子可知,本实施例的方法以较小的代价实现了更灵活的灰度发布机制,该灰度发布机制更适应用户场景复杂多变且数据处理量大的情况,尤其适用于大数据计算服务,比如,类似maxcompute的应用环境。

实施例二

一种灰度发布装置,应用于大数据计算服务,如图5所示,可以包括:

灰度配置模块41,可用于向分流服务器配置多个灰度流量桶、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

灰度控制模块42,可用于将租户项目分批在所述多个灰度流量桶之间迁移,同时将每次所述迁移的关联信息更新到所述分流服务器,以便所述分流服务器对租户项目分批执行灰度发布;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

一种实现方式中,所述多个灰度流量桶可以包括如下之二或多项:新服务的流量占比为0%的0%桶;新服务的流量占比为20%的20%桶;新服务的流量占比为40%的40%桶;新服务的流量占比为60%的60%桶;新服务的流量占比为80%的80%桶;新服务的流量占比为100%的100%桶。

本实施例中,灰度发布装置可以设置于灰度发布设备,该灰度发布设备可以是任何可实现相应功能的计算设备。

实际应用中,灰度配置模块41是负责灰度开始之前配置的部分,可以是软件、硬件或两者的结合;灰度控制模块42是负责灰度发布过程中通过更新关联信息来控制分流服务器完成灰度发布的部分,可以是软件、硬件或两者的结合。

本实施例的其他细节参照实施例一。

实施例三

一种用于灰度发布的设备,应用于大数据计算服务,可以包括:

存储有灰度发布程序的存储器;

处理器,配置为读取所述灰度发布程序以执行下述操作:

向分流服务器配置多个灰度流量桶、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

将租户项目分批在所述多个灰度流量桶之间迁移,同时将每次所述迁移的关联信息更新到所述分流服务器,以便所述分流服务器对租户项目分批执行灰度发布;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

实际应用中,该灰度发布设备可以是任何可实现相应功能的计算设备。

本实施例的其他细节参照实施例一。

实施例四

一种计算机可读存储介质,所述计算机可读存储介质上存储有灰度发布程序,所述灰度发布程序被处理器执行时实现如实施例一所述灰度发布方法的步骤。

实际应用中,该计算机可读存储介质可以设置于灰度发布设备中,由灰度发布设备中的处理器执行该计算机可读存储介质中的灰度发布程序来实现实施例一所述方法。

实施例五

本实施例提供一种灰度发布的方法,应用于提供大数据计算服务的系统,如图6所示,可以包括:

步骤501,获取来自灰度发布设备的多个灰度流量桶的配置信息、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

步骤502,根据所述灰度发布设备更新到本地的关联信息,对租户项目分批执行如下的灰度处理以完成灰度发布:按照当前批次租户项目当前所关联灰度流量桶的配置信息,以新服务流量占比将当前批次租户项目的部分任务量分配到新服务标识对应的计算节点、并以旧服务流量占比将当前批次租户项目的另一部分任务量分配到旧服务标识对应的计算节点;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

本实施例中,分流服务器基于灰度发布设备提供的信息将租户项目分批进行灰度发布处理,并根据当前批次租户项目所关联灰度流量桶的配置信息动态调整分配到新服务上的任务量,以较小的代价完成灰度发布,能够适应用户场景复杂多变且数据处理量大的情况。

一种实现方式中,根据所述灰度发布设备更新到本地的关联信息,对租户项目分批执行如下的灰度发布处理,还可以包括:将所述灰度处理的过程中,收集来自各计算节点的任务执行信息,并将当前批次租户项目的任务执行信息提供给所述灰度发布设备,所述任务执行信息包括如下之一或多项:任务执行成败、单位时间处理的数据量、任务运行时长。除此之外,所述任务执行信息还可以包含与任务相关的信息。

一种实现方式中,所述多个灰度流量桶可以包括如下之二或多项:新服务的流量占比为0%的0%桶;新服务的流量占比为20%的20%桶;新服务的流量占比为40%的40%桶;新服务的流量占比为60%的60%桶;新服务的流量占比为80%的80%桶;新服务的流量占比为100%的100%桶。除此之外,所述多个灰度流量桶还可以是其他形式。

本实施例的其他技术细节可参照实施例一。

相应的,本实施例还提供一种灰度发布装置,应用于提供大数据计算服务的系统,如图7所示,可以包括:

获取模块61,用于获取来自灰度发布设备的多个灰度流量桶的配置信息、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

灰度执行模块62,用于根据所述灰度发布设备更新到本地的关联信息,对租户项目分批执行如下的灰度处理以完成灰度发布:按照当前批次租户项目当前所关联灰度流量桶的配置信息,以新服务流量占比将当前批次租户项目的部分任务量分配到新服务标识对应的计算节点、并以旧服务流量占比将当前批次租户项目的另一部分任务量分配到旧服务标识对应的计算节点;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

本实施例中的灰度发布装置可实现本实施例灰度发布方法的所有技术细节,不再赘述。

实际应用中,本实施例的灰度发布装置可以设置于分流服务器中,或者可以通过分流服务器实现。其中,获取模块61负责将灰度发布设备提供的信息写入分流服务器,可以是软件、硬件或两者的结合。灰度执行模块62负责将任务量分配到新服务上和旧服务上,可以是软件、硬件或两者的结合。

实施例六

本实施例还提供一种分流服务器,应用于提供大数据计算服务的系统,可以包括:

存储有灰度发布程序的存储器;

处理器,配置为读取所述灰度发布程序以执行下述操作:

获取来自灰度发布设备的多个灰度流量桶的配置信息、以及表示所述灰度流量桶与租户项目之间关联关系的关联信息,所述多个灰度流量桶的新服务流量占比从0%到100%不等;

根据所述灰度发布设备更新到本地的关联信息,对租户项目分批执行如下的灰度处理以完成灰度发布:按照当前批次租户项目当前所关联灰度流量桶的配置信息,以新服务流量占比将当前批次租户项目的部分任务量分配到新服务标识对应的计算节点、并以旧服务流量占比将当前批次租户项目的另一部分任务量分配到旧服务标识对应的计算节点;

其中,所述灰度流量桶的配置信息至少包括:灰度流量桶的标识、新服务的标识及流量占比、旧服务的标识及流量占比;所述关联信息至少包括:当前批次租户项目的信息及其所关联灰度流量桶的标识。

本实施例的其他技术细节可参照实施例五。

下面对上述各实施例的示例性实现方式进行详细说明。需要说明的是,下文各实例可相互结合。并且,下文实例中各流程、执行过程等也可以根据实际应用的需要进行调整。此外,在实际应用中,上述各实施例还可以有其他的实现方式,对此,本文不作限制。

实例1

本实例以maxcompute为例说明灰度发布的过程。

如图8所示,为本实例灰度发布的网络架构示意图。其中,灰度发布设备与maxcompute中具有元数据仓库的节点服务器a通信,灰度发布设备将灰度配置文件提供到节点服务器a,节点服务器a将灰度配置文件写入元数据仓库中。

假设maxcompute中全面升级sql编译器、优化器和执行器,为避免风险需要对升级sql编译器、优化器和执行器之后提供的新服务进行灰度发布。本实例中,将升级后的sql编译器、优化器和执行器提供的服务作为新服务,将升级前的sql编译器、优化器和执行器提供的服务作为旧服务。

本实例中,灰度发布时可以按照语法不兼容的场景对sql业务下的租户项目进行分批,对每批租户项目分别进行灰度发布,从而降低每批发布的风险。比如,mapjoin场景里对小表判断的优化,对所有mapjoin的任务都会有影响,但是否所有mapjoin任务都因此执行更优,也同样需要通过灰度发布来降低性能回退的风险。

需要说明的是,上述图8仅为示例,并不用于限制本申请。在其他实际应用场景下,本申请的灰度发布还可通过其他方式实现。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。

当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。

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