CN113703808B - 组件化的灰度发布方法、装置、设备及存储介质 - Google Patents
组件化的灰度发布方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113703808B CN113703808B CN202111005771.6A CN202111005771A CN113703808B CN 113703808 B CN113703808 B CN 113703808B CN 202111005771 A CN202111005771 A CN 202111005771A CN 113703808 B CN113703808 B CN 113703808B
- Authority
- CN
- China
- Prior art keywords
- gray
- gray level
- item
- release
- preset
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012795 verification Methods 0.000 claims abstract description 50
- 230000011218 segmentation Effects 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 65
- 238000013507 mapping Methods 0.000 claims description 7
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 11
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 241001270131 Agaricus moelleri Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
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)
- Stored Programmes (AREA)
Abstract
本发明涉及人工智能技术和基架运维领域,公开了一种组件化的灰度发布方法、装置、设备及存储介质。该方法包括:获取待发布的业务项目并采用预置的灰度组件进行灰度配置,其中业务项目包含多个功能项目,灰度组件包括灰度标识信息和灰度规则;根据灰度标识信息,调用预置灰度判定接口,对各功能项目进行分流,以确定业务项目中待灰度发布的第一功能项目,其中,第一功能项目中包含多个内存对象;从第一功能项目中选取出符合灰度规则的内存对象作为灰度对象,并根据灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布。本发明通过组件自定义灰度发布规则,提升了灰度发布的灵活性,随时可以修改组件灰度发布规则,以便于维护。
Description
技术领域
本发明涉及人工智能技术和基架运维领域,尤其涉及一种组件化的灰度发布方法、装置、设备及存储介质。
背景技术
业务需求经常性发生变化,需求引起的变化小还好,如果需求引起的变化很大,出现一丁点错误就会导致业务崩溃,这在迭代的时候是不允许的,很可能造成公司很大的业务损失。因为业务代码已经更新上线,出现问题,各个牵扯业务方代码可能都需要回滚,中间还可能造成数据问题,最后恢复业务可能需要耗费大量的时间,对用户体验造成了很大的影响。
还有一些技术性的改造项目,一般对业务无影响,比如将一个通信框架,切换成另外一个通信框架,几乎所有的业务都需要改动。一般来说对业务代码没影响,但是真正上线,还是会有些不确定性的问题。一旦出现问题,整个公司服务都可能出现问题。故现有的灰度发布方法存在发布灵活性较差的技术问题。
发明内容
本发明的主要目的在于解决现有的灰度发布方法存在发布灵活性较差的技术问题。
本发明第一方面提供了一种组件化的灰度发布方法,包括:获取待发布的业务项目,并采用预置的灰度组件对所述业务项目进行灰度配置,其中所述业务项目包含多个功能项目,所述灰度组件包括灰度标识信息和所述灰度标识信息对应灰度规则;根据所述灰度标识信息,调用预置灰度判定接口,对各所述功能项目进行分流,并根据分流结果,确定所述业务项目中待灰度发布的第一功能项目,其中,所述第一功能项目中包含多个内存对象;从所述第一功能项目中选取出符合所述灰度规则的内存对象作为灰度对象,并根据所述灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布。
可选的,在本发明第一方面的第一种实现方式中,所述采用预置的灰度组件对所述业务项目进行灰度配置包括:基于所述业务项目调取与其对应的灰度组件,并从所述灰度组件中解析至少一个灰度标识信息,以及所述灰度标识信息对应的灰度开关和灰度规则;根据所述灰度标识信息,将所述灰度开关加载至所述业务项目的功能项目中;采用预置的映射方法,将所述灰度规则加载至所述功能项目中的内存对象,以实现灰度配置。
可选的,在本发明第一方面的第二种实现方式中,所述根据所述灰度标识信息,调用预置灰度判定接口,对各所述功能项目进行分流包括:调用预置灰度判定接口,从所述业务项目中选取所述灰度标识信息对应的功能项目,并读取各所述功能项目对应灰度开关;识别所述灰度开关设置的状态参数,并根据识别的结果,判断所述状态参数是否为开启;若所述状态参数为开启,则将所述功能项目发送至预置灰度发布接口,否则将所述功能项目发送至预置远程发布接口。
可选的,在本发明第一方面的第三种实现方式中,所述根据分流结果,确定所述业务项目中待灰度发布的第一功能项目包括:若功能项目分流至远程发布接口,则将分流至远程发布接口的功能项目作为待远程发布的第二功能项目;若功能项目分流至灰度发布接口,则将分流至灰度发布接口的功能项目作为待灰度发布的第一功能项目。
可选的,在本发明第一方面的第四种实现方式中,在所述获取待发布的业务项目,并采用预置的灰度组件对所述业务项目进行灰度配置之前,还包括:接收预置灰度配置中心发送的组件更新信息,并解析所述组件更新信息,得到所述灰度组件中的待更新配置项目,其中,所述待更新配置项目包括待更新的灰度标识信息、灰度开关和灰度规则;采用所述待更新配置项目代所述替灰度组件中对应的原待配置项目,以对所述灰度组件进行更新。
可选的,在本发明第一方面的第五种实现方式中,所述根据所述灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布包括:解析所述灰度规则,得到顺序排列的多个发布参数,并根据顺序排列的首个发布参数,确定对应的灰度对象的发布范围;对所述发布范围内的灰度对象进行灰度发布,并对当前灰度发布后的业务项目进行运行验证,得到运行验证结果;根据所述运行验证结果,判断当前灰度发布后的业务项目是否发生错误;若发生错误,则停止对所述灰度对象的灰度发布,并对当前灰度发布的灰度对象进行回滚操作;若未发生错误,则根据顺序排列的下一个发布参数,对对应的灰度对象进行灰度发布,直到所述业务项目中的各灰度对象完成灰度发布时停止。
本发明第二方面提供了一种组件化的灰度发布装置,包括:灰度配置模块,用于获取待发布的业务项目,并采用预置的灰度组件对所述业务项目进行灰度配置,其中所述业务项目包含多个功能项目,所述灰度组件包括灰度标识信息和所述灰度标识信息对应灰度规则;分流模块,用于根据所述灰度标识信息,调用预置灰度判定接口,对各所述功能项目进行分流,并根据分流结果,确定所述业务项目中待灰度发布的第一功能项目,其中,所述第一功能项目中包含多个内存对象;灰度发布模块,用于从所述第一功能项目中选取出符合所述灰度规则的内存对象作为灰度对象,并根据所述灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布。
可选的,在本发明第二方面的第一种实现方式中,所述灰度配置模块包括:解析单元,用于基于所述业务项目调取与其对应的灰度组件,并从所述灰度组件中解析至少一个灰度标识信息,以及所述灰度标识信息对应的灰度开关和灰度规则;加载单元,用于根据所述灰度标识信息,将所述灰度开关加载至所述业务项目的功能项目中;采用预置的映射方法,将所述灰度规则加载至所述功能项目中的内存对象,以实现灰度配置。
可选的,在本发明第二方面的第二种实现方式中,所述分流模块包括:选取单元,用于调用预置灰度判定接口,从所述业务项目中选取所述灰度标识信息对应的功能项目,并读取各所述功能项目对应灰度开关;识别单元,用于识别所述灰度开关设置的状态参数,并根据识别的结果,判断所述状态参数是否为开启;发送单元,用于若所述状态参数为开启,则将所述功能项目发送至预置灰度发布接口,否则将所述功能项目发送至预置远程发布接口。
可选的,在本发明第二方面的第三种实现方式中,所述分流模块包括:第一分流单元,用于若功能项目分流至远程发布接口,则将分流至远程发布接口的功能项目作为待远程发布的第二功能项目;第二分流单元,用于若功能项目分流至灰度发布接口,则将分流至灰度发布接口的功能项目作为待灰度发布的第一功能项目。
可选的,在本发明第二方面的第四种实现方式中,所述组件化的灰度发布装置还包括更新模块,用于:接收预置灰度配置中心发送的组件更新信息,并解析所述组件更新信息,得到所述灰度组件中的待更新配置项目,其中,所述待更新配置项目包括待更新的灰度标识信息、灰度开关和灰度规则;采用所述待更新配置项目代所述替灰度组件中对应的原待配置项目,以对所述灰度组件进行更新。
可选的,在本发明第二方面的第五种实现方式中,所述灰度发布模块包括:确定单元,用于解析所述灰度规则,得到顺序排列的多个发布参数,并根据顺序排列的首个发布参数,确定对应的灰度对象的发布范围;发布验证单元,用于对所述发布范围内的灰度对象进行灰度发布,并对当前灰度发布后的业务项目进行运行验证,得到运行验证结果;判别单元,用于根据所述运行验证结果,判断当前灰度发布后的业务项目是否发生错误;回滚单元,用于若发生错误,则停止对所述灰度对象的灰度发布,并对当前灰度发布的灰度对象进行回滚操作;循环发布单元,用于若未发生错误,则根据顺序排列的下一个发布参数,对对应的灰度对象进行灰度发布,直到所述业务项目中的各灰度对象完成灰度发布时停止。
本发明第三方面提供了一种组件化的灰度发布设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述组件化的灰度发布设备执行上述的组件化的灰度发布方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的组件化的灰度发布方法。
本发明提供的技术方案中,先采用预置的灰度组件对待发布的业务项目进行灰度配置,确定多个功能项目的灰度标识信息和灰度规则;然后根据灰度配置后的灰度标识信息,来调用预置的灰度判定接口,确定需要进行灰度发布的第一功能项目,并进一步选取符合灰度规则的内存对象进行分段验证的灰度发布,实现组件化灰度发布的配置、分流和验证,提升灰度发布的稳定性。
附图说明
图1为本发明实施例中组件化的灰度发布方法的第一个实施例示意图;
图2为本发明实施例中组件化的灰度发布方法的第二个实施例示意图;
图3为本发明实施例中组件化的灰度发布方法的第三个实施例示意图;
图4为本发明实施例中组件化的灰度发布装置的一个实施例示意图;
图5为本发明实施例中组件化的灰度发布装置的另一个实施例示意图;
图6为本发明实施例中组件化的灰度发布设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种组件化的灰度发布方法、装置、设备及存储介质,获取待发布的业务项目并采用预置的灰度组件进行灰度配置,其中业务项目包含多个功能项目,灰度组件包括灰度标识信息和灰度规则;根据灰度标识信息,调用预置灰度判定接口,对各功能项目进行分流,以确定业务项目中待灰度发布的第一功能项目,其中,第一功能项目中包含多个内存对象;从第一功能项目中选取出符合灰度规则的内存对象作为灰度对象,并根据灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布。本发明通过组件自定义灰度发布规则,提升了灰度发布的灵活性,随时可以修改组件灰度发布规则,以便于维护。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中组件化的灰度发布方法的第一个实施例包括:
101、获取待发布的业务项目,并采用预置的灰度组件对业务项目进行灰度配置,其中业务项目包含多个功能项目,灰度组件包括灰度标识信息和灰度标识信息对应灰度规则;
可以理解的是,本发明的执行主体可以为组件化的灰度发布装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。
本实施例中,一个业务项目可以包括一个或多个功能项目,一个功能项目由一个或多个内存对象组成。在对业务项目进行灰度发布之前,灰度组件的使用者根据该业务项目的灰度发布需求配置灰度组件。首先,通过设置一个灰度标识信息,来唯一标识该业务项目中需要进行灰度发布的功能项目,然后根据业务项目的具体需求,选择目标灰度对象配置灰度规则。除此之外,还设置了一个灰度发布的功能开关,以用于阶段式的灰度发布控制。
后续在进行待发布的业务项目的灰度发布时,先通过该业务项目对应的灰度组件对业务项目进行配置,按照预先定义好的语法,将灰度组件中的灰度标识信息和灰度规则解析并加载到业务项目的内存对象中,通过入侵式的方式,与业务项目中的内存对象进行耦合,以对需求的内存对象进行灰度发布,其他的采用原预设的发布方式即可。
则采用该业务项目对应的灰度组件进行灰度发布的控制。其中,灰度标识信息可以采用一个key值对对应的功能项目进行标记,确定该key值对应的灰度规则,以确定需要对业务项目中的哪个功能项目、哪个内存对象进行灰度发布。
102、根据灰度标识信息,调用预置灰度判定接口,对各功能项目进行分流,并根据分流结果,确定业务项目中待灰度发布的第一功能项目,其中,第一功能项目中包含多个内存对象;
本实施例中,常规的灰度发布方法是采用灰度发布的调用接口代替远程发布的调用接口,并远程发布的调用接口删除,将而本发明则不直接删除远程发布的调用接口,而是新增灰度发布的调用接口,并通过一个灰度判定接口分支连接远程发布的调用接口以及灰度发布的调用接口,根据是否需要进行灰度发布走不同的调用接口。然后在不同的调用接口执行不同的代码逻辑,实现远程发布或者灰度发布。
具体的,可以通过灰度判定接口callRestfulApi判别是走灰度发布流程还是走远程发布流程,如果为true则将功能项目接入RESTful灰度发布接口,否则接入RPC远程发布接口,可以灵活地进行灰度发布。其中,灰度判定接口和灰度发布接口可以都由灰度组件提供。
另外,灰度组块的加载、解析、灰度判定逻辑这部分代码,都不需要业务系统来从零开发,提升灰度发布开发的效率。
103、从第一功能项目中选取出符合灰度规则的内存对象作为灰度对象,并根据灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布。
本实施例中,在确定待灰度发布的第一功能项目后,还需要进一步从第一功能项目中的内存对象选取出灰度对象进行灰度发布,除灰度对象之外的其他内存对象不需要进行灰度发布,直接进行远程发布即可。
具体的,灰度规则规定了需要进行灰度发布的内存对象,也就是灰度对象。比如灰度规则指定的灰度对象为用户ID,使用用户ID查询用户信息接口。接口请求会携带用户ID信息返回,完成灰度对象的指定。
本实施例中,可以采用分段验证的方法,对灰度对象进行灰度发布,一方面,将灰度对象中的灰度发布个体分成多个阶段进行发布,可以按照灰度规则携带的时间戳信息、业务ID等信息,按照区间、比例或者具体的值进行灰度发布。然后在每个阶段完成灰度发布后,对整个业务项目进行验证,当验证通过后,才进行下一个阶段的灰度发布,如果验证不通过,则及时停止灰度发布,毕业业务项目运营错误。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本发明实施例中,先采用预置的灰度组件对待发布的业务项目进行灰度配置,确定多个功能项目的灰度标识信息和灰度规则;然后根据灰度配置后的灰度标识信息,来调用预置的灰度判定接口,确定需要进行灰度发布的第一功能项目,并进一步选取符合灰度规则的内存对象进行分段验证的灰度发布,实现组件化灰度发布的配置、分流和验证,提升灰度发布的稳定性。
请参阅图2,本发明实施例中组件化的灰度发布方法的第二个实施例包括:
201、接收预置灰度配置中心发送的组件更新信息,并解析组件更新信息,得到灰度组件中的待更新配置项目,其中,待更新配置项目包括待更新的灰度标识信息、灰度开关和灰度规则;
202、采用待更新配置项目代替灰度组件中对应的原待配置项目,以对灰度组件进行更新;
本实施例中,灰度配置中心随时可以对灰度组件进行更新,灰度组件的使用者对灰度组件进行修改,生成对应的文件,存储组件更新信息,可以包括对灰度标识信息、灰度开关和灰度规则的修改,并存储到DarkRuleConfig的文件夹中,用来映射灰度配置到内存对象中,实现对灰度组件的更新。
通过修改灰度标识信息,得到待更新的灰度标识信息,以修改业务项目中需要进行灰度发布的功能项目;通过修改灰度开关,得到待更新的灰度开关参数,将功能项目的灰度发布从开启修改为关闭,或者从关闭修改为开启;通过修改灰度规则,得到待更新的灰度规则,对需要进行灰度发布的内存对象进行修改,以及内存对象中包含的个体。
具体的,比如将灰度标识信息key:call_newapi_getUserById修改为key:call_newapi_registerUser,功能开关修改为开启,rule:{893,342,1020-1120,%30}修改为rule:{1391198723,%10}。
203、获取待发布的业务项目,并采用预置的灰度组件对业务项目进行灰度配置,其中业务项目包含多个功能项目,灰度组件包括灰度标识信息和灰度标识信息对应灰度规则;
204、根据灰度标识信息,调用预置灰度判定接口,对各功能项目进行分流,并根据分流结果,确定业务项目中待灰度发布的第一功能项目,其中,第一功能项目中包含多个内存对象;
205、从第一功能项目中选取出符合灰度规则的内存对象作为灰度对象,并解析灰度规则,得到顺序排列的多个发布参数,并根据顺序排列的首个发布参数,确定对应的灰度对象的发布范围;
206、对发布范围内的灰度对象进行灰度发布,并对当前灰度发布后的业务项目进行运行验证,得到运行验证结果;
207、根据运行验证结果,判断当前灰度发布后的业务项目是否发生错误;
208、若发生错误,则停止对灰度对象的灰度发布,并对当前灰度发布的灰度对象进行回滚操作;
209、若未发生错误,则根据顺序排列的下一个发布参数,对对应的灰度对象进行灰度发布,直到业务项目中的各灰度对象完成灰度发布时停止。
本实施例中,在对灰度对象进行阶段验证的灰度发布时,通过逐渐放量的方式进行灰度发布,其中,逐渐放量,即灰度对象的发布范围由发布参数控制,可以包括具体的值、区间值、比例值和时间。
比如针对用户ID的灰度对象进行灰度发布时,可以先配置用户ID为918、879、123(可以为具体的值)的个体进行灰度发布;验证没有问题之后,再扩大范围,让用户ID在1020~1120(可以采用区间值)之间的个体进行灰度发布;如果验证之后还是没有问题,我们再继续扩大范围,让10%比例(比例值)的个体进行灰度发布;以此类推,灰度对象的发布范围逐步扩大到20%、30%、50%直到100%。当灰度比例达到100%,并且运行一段时间没有问题之后,调用方就可以把远程发布接口的发布代码逻辑删除。
另外,在金融产品的清结算系统中,可以通过本发明的灰度发布方式修改清结账款的算法。由于金融产品对安全性要求较高,故为了安全起见,我们可以采用阶段验证的灰度发布方法,将旧的算法替换成新的算法,比如把贷款ID作为灰度对象,先在某几个贷款上应用新的算法,如果没有问题,再继续按照区间或者比例,扩大灰度范围,直到所有的贷款都替换完成。
本发明实施例中,在对灰度组件进行更新时,开发人员直接对灰度组件进行配置,然后发送组件更新信息至本服务器,通过组件更新信息对原来的待配置项目的灰度标识信息、灰度开关和灰度规则进行更新,使得灰度组件更新便捷;然后灰度发布按照分段验证的方式进行,在运行验证发送错误时,可以及时回滚,降低错发布成本。
请参阅图3,本发明实施例中组件化的灰度发布方法的第三个实施例包括:
301、基于业务项目调取与其对应的灰度组件,并从灰度组件中解析至少一个灰度标识信息,以及灰度标识信息对应的灰度开关和灰度规则;
302、根据灰度标识信息,将灰度开关加载至业务项目的功能项目中;
303、采用预置的映射方法,将灰度规则加载至功能项目中的内存对象,以实现灰度配置,其中业务项目包含多个功能项目,灰度组件包括灰度标识信息和灰度标识信息对应灰度规则;
本实施例中,灰度组件中至少包含灰度标识信息以及灰度标识信息对应的灰度开关和灰度规则,故通过对灰度组件进行解析,即可得到前述的信息。其中,灰度标识信息标识了需要进行灰度发布的功能项目;找到该功能项目之后,先加入一个预先设置的功能开关到该功能项目中,以控制是否进行以及何时进行该功能项目的灰度发布;最后根据灰度规则中设置的内存对象,通过映射方法,将灰度规则加载到这些内存对象中。
具体的,比如灰度组件中存储的灰度标识信息为call_newapi_getUserById,标识需要进行灰度发布的功能为更新聊天方式;对该聊天方式的灰度发布加载灰度开关:enabled:true或者enabled:false;enabled为true时,灰度规则生效,enabled为false时,灰度规则失效;根据灰度规则选择一个内存对象,比如用户ID:rule:{893,342,1020-1120,%30},即表示灰度规则规定代表用户ID的内存对象中,需要对用户ID为893,342,1020-1120的聊天方式,则将灰度规则加载至用户ID对应的内存对象。
304、调用预置灰度判定接口,从业务项目中选取灰度标识信息对应的功能项目,并读取各功能项目对应灰度开关;
305、识别灰度开关设置的状态参数,并根据识别的结果,判断状态参数是否为开启;
306、若状态参数为开启,则将功能项目发送至预置灰度发布接口,否则将功能项目发送至预置远程发布接口;
本实施例中,灰度判定接口直接对灰度标识信息对应功能项目的功能开关进行判别,如果灰度判定接口识别到功能开关的状态参数开启,则确定该功能项目需要进行灰度发布,并将功能项目分流到灰度发布接口,否则确定该功能项目不需要进行灰度发布,并将功能项目分裂到远程发布接口,分别执行灰度发布和远程发布的代码逻辑。
具体的,灰度判定接口的变量数据类型为布尔数据类型,通过boolean enabled()进行判别,比如boolean dark(String darkTarget);其中,darkTarget是需要进行灰度发布的灰度对象,比如ID、手机号码、贷款金额等。
307、根据分流结果,确定业务项目中待灰度发布的第一功能项目,其中,第一功能项目中包含多个内存对象;
本实施例中,若功能项目分流至远程发布接口,则将分流至远程发布接口的功能项目作为待远程发布的第二功能项目;若功能项目分流至灰度发布接口,则将分流至灰度发布接口的功能项目作为待灰度发布的第一功能项目。
308、从第一功能项目中选取出符合灰度规则的内存对象作为灰度对象,并根据灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布。
本发明实施例中,通过配置灰度开关,来判别待发布的业务项目是走原发布逻辑,还是发布自定义的灰度发布逻辑,实现项目发布的分流,并且使得灰度发布可配置,两个发布接口之间相互独立,不会因为灰度发布错误而影响其他服务,提升业务项目的发布效率。
上面对本发明实施例中组件化的灰度发布方法进行了描述,下面对本发明实施例中组件化的灰度发布装置进行描述,请参阅图4,本发明实施例中组件化的灰度发布装置一个实施例包括:
灰度配置模块401,用于获取待发布的业务项目,并采用预置的灰度组件对所述业务项目进行灰度配置,其中所述业务项目包含多个功能项目,所述灰度组件包括灰度标识信息和所述灰度标识信息对应灰度规则;
分流模块402,用于根据所述灰度标识信息,调用预置灰度判定接口,对各所述功能项目进行分流,并根据分流结果,确定所述业务项目中待灰度发布的第一功能项目,其中,所述第一功能项目中包含多个内存对象;
灰度发布模块403,用于从所述第一功能项目中选取出符合所述灰度规则的内存对象作为灰度对象,并根据所述灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布。
本发明实施例中,先采用预置的灰度组件对待发布的业务项目进行灰度配置,确定多个功能项目的灰度标识信息和灰度规则;然后根据灰度配置后的灰度标识信息,来调用预置的灰度判定接口,确定需要进行灰度发布的第一功能项目,并进一步选取符合灰度规则的内存对象进行分段验证的灰度发布,实现组件化灰度发布的配置、分流和验证,提升灰度发布的稳定性。
请参阅图5,本发明实施例中组件化的灰度发布装置的另一个实施例包括:
灰度配置模块401,用于获取待发布的业务项目,并采用预置的灰度组件对所述业务项目进行灰度配置,其中所述业务项目包含多个功能项目,所述灰度组件包括灰度标识信息和所述灰度标识信息对应灰度规则;
分流模块402,用于根据所述灰度标识信息,调用预置灰度判定接口,对各所述功能项目进行分流,并根据分流结果,确定所述业务项目中待灰度发布的第一功能项目,其中,所述第一功能项目中包含多个内存对象;
灰度发布模块403,用于从所述第一功能项目中选取出符合所述灰度规则的内存对象作为灰度对象,并根据所述灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布。
具体的,所述灰度配置模块401包括:
解析单元4011,用于基于所述业务项目调取与其对应的灰度组件,并从所述灰度组件中解析至少一个灰度标识信息,以及所述灰度标识信息对应的灰度开关和灰度规则;
加载单元4012,用于根据所述灰度标识信息,将所述灰度开关加载至所述业务项目的功能项目中;采用预置的映射方法,将所述灰度规则加载至所述功能项目中的内存对象,以实现灰度配置。
具体的,所述分流模块402包括:
选取单元4021,用于调用预置灰度判定接口,从所述业务项目中选取所述灰度标识信息对应的功能项目,并读取各所述功能项目对应灰度开关;
识别单元4022,用于识别所述灰度开关设置的状态参数,并根据识别的结果,判断所述状态参数是否为开启;
发送单元4023,用于若所述状态参数为开启,则将所述功能项目发送至预置灰度发布接口,否则将所述功能项目发送至预置远程发布接口。
具体的,所述分流模块402还包括:
第一分流单元4024,用于若功能项目分流至远程发布接口,则将分流至远程发布接口的功能项目作为待远程发布的第二功能项目;
第二分流单元4025,用于若功能项目分流至灰度发布接口,则将分流至灰度发布接口的功能项目作为待灰度发布的第一功能项目。
具体的,所述组件化的灰度发布装置还包括更新模块404,用于:
接收预置灰度配置中心发送的组件更新信息,并解析所述组件更新信息,得到所述灰度组件中的待更新配置项目,其中,所述待更新配置项目包括待更新的灰度标识信息、灰度开关和灰度规则;
采用所述待更新配置项目代所述替灰度组件中对应的原待配置项目,以对所述灰度组件进行更新。
具体的,所述灰度发布模块403包括:
确定单元4031,用于解析所述灰度规则,得到顺序排列的多个发布参数,并根据顺序排列的首个发布参数,确定对应的灰度对象的发布范围;
发布验证单元4032,用于对所述发布范围内的灰度对象进行灰度发布,并对当前灰度发布后的业务项目进行运行验证,得到运行验证结果;
判别单元4033,用于根据所述运行验证结果,判断当前灰度发布后的业务项目是否发生错误;
回滚单元4034,用于若发生错误,则停止对所述灰度对象的灰度发布,并对当前灰度发布的灰度对象进行回滚操作;
循环发布单元4035,用于若未发生错误,则根据顺序排列的下一个发布参数,对对应的灰度对象进行灰度发布,直到所述业务项目中的各灰度对象完成灰度发布时停止。
本发明实施例中,在对灰度组件进行更新时,开发人员直接对灰度组件进行配置,然后发送组件更新信息至本服务器,通过组件更新信息对原来的待配置项目的灰度标识信息、灰度开关和灰度规则进行更新,使得灰度组件更新便捷;然后灰度发布按照分段验证的方式进行,在运行验证发送错误时,可以及时回滚,降低错发布成本;另外,通过配置灰度开关,来判别待发布的业务项目是走原发布逻辑,还是发布自定义的灰度发布逻辑,实现项目发布的分流,并且使得灰度发布可配置,两个发布接口之间相互独立,不会因为灰度发布错误而影响其他服务,提升业务项目的发布效率。
上面图4和图5从模块化功能实体的角度对本发明实施例中的组件化的灰度发布装置进行详细描述,下面从硬件处理的角度对本发明实施例中组件化的灰度发布设备进行详细描述。
图6是本发明实施例提供的一种组件化的灰度发布设备的结构示意图,该组件化的灰度发布设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对组件化的灰度发布设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在组件化的灰度发布设备600上执行存储介质630中的一系列指令操作。
组件化的灰度发布设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的组件化的灰度发布设备结构并不构成对组件化的灰度发布设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种组件化的灰度发布设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述组件化的灰度发布方法的步骤。本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述组件化的灰度发布方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种组件化的灰度发布方法,其特征在于,所述组件化的灰度发布方法包括:
获取待发布的业务项目,并采用预置的灰度组件对所述业务项目进行灰度配置,其中所述业务项目包含多个功能项目,所述灰度组件包括灰度标识信息和所述灰度标识信息对应灰度规则;
根据所述灰度标识信息,调用预置灰度判定接口,对各所述功能项目进行分流,并根据分流结果,确定所述业务项目中待灰度发布的第一功能项目,其中,所述第一功能项目中包含多个内存对象;
从所述第一功能项目中选取出符合所述灰度规则的内存对象作为灰度对象,并根据所述灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布;
所述根据所述灰度标识信息,调用预置灰度判定接口,对各所述功能项目进行分流包括:
调用预置灰度判定接口,从所述业务项目中选取所述灰度标识信息对应的功能项目,并读取各所述功能项目对应灰度开关;
识别所述灰度开关设置的状态参数,并根据识别的结果,判断所述状态参数是否为开启;
若所述状态参数为开启,则将所述功能项目发送至预置灰度发布接口,否则将所述功能项目发送至预置远程发布接口;
所述根据所述灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布包括:
解析所述灰度规则,得到顺序排列的多个发布参数,并根据顺序排列的首个发布参数,确定对应的灰度对象的发布范围;
对所述发布范围内的灰度对象进行灰度发布,并对当前灰度发布后的业务项目进行运行验证,得到运行验证结果;
根据所述运行验证结果,判断当前灰度发布后的业务项目是否发生错误;
若发生错误,则停止对所述灰度对象的灰度发布,并对当前灰度发布的灰度对象进行回滚操作;
若未发生错误,则根据顺序排列的下一个发布参数,对对应的灰度对象进行灰度发布,直到所述业务项目中的各灰度对象完成灰度发布时停止。
2.根据权利要求1所述的组件化的灰度发布方法,其特征在于,所述采用预置的灰度组件对所述业务项目进行灰度配置包括:
基于所述业务项目调取与其对应的灰度组件,并从所述灰度组件中解析至少一个灰度标识信息,以及所述灰度标识信息对应的灰度开关和灰度规则;
根据所述灰度标识信息,将所述灰度开关加载至所述业务项目的功能项目中;
采用预置的映射方法,将所述灰度规则加载至所述功能项目中的内存对象,以实现灰度配置。
3.根据权利要求1所述的组件化的灰度发布方法,其特征在于,所述根据分流结果,确定所述业务项目中待灰度发布的第一功能项目包括:
若功能项目分流至远程发布接口,则将分流至远程发布接口的功能项目作为待远程发布的第二功能项目;
若功能项目分流至灰度发布接口,则将分流至灰度发布接口的功能项目作为待灰度发布的第一功能项目。
4.根据权利要求2-3中任一项所述的组件化的灰度发布方法,其特征在于,在所述获取待发布的业务项目,并采用预置的灰度组件对所述业务项目进行灰度配置之前,还包括:
接收预置灰度配置中心发送的组件更新信息,并解析所述组件更新信息,得到所述灰度组件中的待更新配置项目,其中,所述待更新配置项目包括待更新的灰度标识信息、灰度开关和灰度规则;
采用所述待更新配置项目代替所述灰度组件中对应的原待配置项目,以对所述灰度组件进行更新。
5.一种组件化的灰度发布装置,其特征在于,所述组件化的灰度发布装置包括:
灰度配置模块,用于获取待发布的业务项目,并采用预置的灰度组件对所述业务项目进行灰度配置,其中所述业务项目包含多个功能项目,所述灰度组件包括灰度标识信息和所述灰度标识信息对应灰度规则;
分流模块,用于根据所述灰度标识信息,调用预置灰度判定接口,对各所述功能项目进行分流,并根据分流结果,确定所述业务项目中待灰度发布的第一功能项目,其中,所述第一功能项目中包含多个内存对象;
灰度发布模块,用于从所述第一功能项目中选取出符合所述灰度规则的内存对象作为灰度对象,并根据所述灰度规则,采用预置分段验证方法对对应的灰度对象进行灰度发布;
所述分流模块包括:
选取单元,用于调用预置灰度判定接口,从所述业务项目中选取所述灰度标识信息对应的功能项目,并读取各所述功能项目对应灰度开关;
识别单元,用于识别所述灰度开关设置的状态参数,并根据识别的结果,判断所述状态参数是否为开启;
发送单元,用于若所述状态参数为开启,则将所述功能项目发送至预置灰度发布接口,否则将所述功能项目发送至预置远程发布接口;
所述灰度发布模块包括:
确定单元,用于解析所述灰度规则,得到顺序排列的多个发布参数,并根据顺序排列的首个发布参数,确定对应的灰度对象的发布范围;
发布验证单元,用于对所述发布范围内的灰度对象进行灰度发布,并对当前灰度发布后的业务项目进行运行验证,得到运行验证结果;
判别单元,用于根据所述运行验证结果,判断当前灰度发布后的业务项目是否发生错误;
回滚单元,用于若发生错误,则停止对所述灰度对象的灰度发布,并对当前灰度发布的灰度对象进行回滚操作;
循环发布单元,用于若未发生错误,则根据顺序排列的下一个发布参数,对对应的灰度对象进行灰度发布,直到所述业务项目中的各灰度对象完成灰度发布时停止。
6.根据权利要求5所述的组件化的灰度发布装置,其特征在于,所述灰度配置模块包括:
解析单元,用于基于所述业务项目调取与其对应的灰度组件,并从所述灰度组件中解析至少一个灰度标识信息,以及所述灰度标识信息对应的灰度开关和灰度规则;
加载单元,用于根据所述灰度标识信息,将所述灰度开关加载至所述业务项目的功能项目中;采用预置的映射方法,将所述灰度规则加载至所述功能项目中的内存对象,以实现灰度配置。
7.根据权利要求5所述的组件化的灰度发布装置,其特征在于,所述分流模块包括:第一分流单元,用于若功能项目分流至远程发布接口,则将分流至远程发布接口的功能项目作为待远程发布的第二功能项目;第二分流单元,用于若功能项目分流至灰度发布接口,则将分流至灰度发布接口的功能项目作为待灰度发布的第一功能项目。
8.根据权利要求6-7中任一项所述的组件化的灰度发布装置,其特征在于,所述组件化的灰度发布装置还包括:
更新模块,用于接收预置灰度配置中心发送的组件更新信息,并解析所述组件更新信息,得到所述灰度组件中的待更新配置项目,其中,所述待更新配置项目包括待更新的灰度标识信息、灰度开关和灰度规则;采用所述待更新配置项目代替所述灰度组件中对应的原待配置项目,以对所述灰度组件进行更新。
9.一种组件化的灰度发布设备,其特征在于,所述组件化的灰度发布设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述组件化的灰度发布设备执行如权利要求1-4中任意一项所述的组件化的灰度发布方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-4中任意一项所述组件化的灰度发布方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111005771.6A CN113703808B (zh) | 2021-08-30 | 2021-08-30 | 组件化的灰度发布方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111005771.6A CN113703808B (zh) | 2021-08-30 | 2021-08-30 | 组件化的灰度发布方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113703808A CN113703808A (zh) | 2021-11-26 |
CN113703808B true CN113703808B (zh) | 2023-10-20 |
Family
ID=78656936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111005771.6A Active CN113703808B (zh) | 2021-08-30 | 2021-08-30 | 组件化的灰度发布方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703808B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022398A (zh) * | 2022-07-14 | 2022-09-06 | 中国工商银行股份有限公司 | 基于api开放平台的接口调用方法及装置、电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595207A (zh) * | 2018-03-23 | 2018-09-28 | 深圳乐信软件技术有限公司 | 一种灰度发布方法、规则引擎、系统、终端和存储介质 |
CN111181858A (zh) * | 2019-12-24 | 2020-05-19 | 浙江大华技术股份有限公司 | 灰度发布的方法、系统、计算机设备和存储介质 |
CN112686519A (zh) * | 2020-12-25 | 2021-04-20 | 中国平安人寿保险股份有限公司 | 一种灰度调整方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2013CH06085A (zh) * | 2013-12-26 | 2015-07-03 | Inforys Ltd |
-
2021
- 2021-08-30 CN CN202111005771.6A patent/CN113703808B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595207A (zh) * | 2018-03-23 | 2018-09-28 | 深圳乐信软件技术有限公司 | 一种灰度发布方法、规则引擎、系统、终端和存储介质 |
CN111181858A (zh) * | 2019-12-24 | 2020-05-19 | 浙江大华技术股份有限公司 | 灰度发布的方法、系统、计算机设备和存储介质 |
CN112686519A (zh) * | 2020-12-25 | 2021-04-20 | 中国平安人寿保险股份有限公司 | 一种灰度调整方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113703808A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109191312A (zh) | 一种理赔反欺诈风控方法及装置 | |
CN109669931A (zh) | 历史数据异常分析方法、系统、设备及存储介质 | |
CN113703808B (zh) | 组件化的灰度发布方法、装置、设备及存储介质 | |
CN114217848A (zh) | 依赖关系处理方法、装置、电子设备及计算机存储介质 | |
KR20230006601A (ko) | 정렬 방법, 정렬 모델의 트레이닝 방법, 장치, 전자 기기 및 매체 | |
CN114386853A (zh) | 基于通用审核模型的数据审核处理方法、装置及设备 | |
CN109542942A (zh) | 函数调用的查询方法及装置、电子设备 | |
CN117435999A (zh) | 一种风险评估方法、装置、设备以及介质 | |
US10768901B2 (en) | Converting code of a first code type on a mainframe device in phases to code of a second code type | |
CN115601042A (zh) | 信息识别方法、装置、电子设备及存储介质 | |
CN115470798A (zh) | 意图识别模型的训练方法、意图识别方法、装置及设备 | |
CN116168403A (zh) | 医疗数据分类模型训练方法、分类方法、装置及相关介质 | |
CN115422275A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN113935847A (zh) | 线上流程的风险处理方法、装置、服务器及介质 | |
CN114881313A (zh) | 基于人工智能的行为预测方法、装置及相关设备 | |
CN114398676A (zh) | 基于人工智能的数据安全分级方法、装置、设备及介质 | |
CN110796265B (zh) | 决策树模型的交互式操作方法、装置、终端设备及介质 | |
CN115330103A (zh) | 城市运行状态智能分析方法、装置、计算机设备及存储介质 | |
CN114021133A (zh) | 代码处理方法、装置、电子设备和存储介质 | |
CN114416895A (zh) | 地图数据的处理方法、装置、电子设备及存储介质 | |
CN109298831B (zh) | 信息存储方法和装置 | |
CA2925341A1 (en) | Methods and systems for adaptive and contextual collaboration in a network | |
US20200401472A1 (en) | Defect Analysis and Remediation Tool | |
CN111290943A (zh) | 代码覆盖率处理方法、装置、服务器及存储介质 | |
CN109960767A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |