CN111158715B - 灰度发布控制方法及系统 - Google Patents
灰度发布控制方法及系统 Download PDFInfo
- Publication number
- CN111158715B CN111158715B CN201911315225.5A CN201911315225A CN111158715B CN 111158715 B CN111158715 B CN 111158715B CN 201911315225 A CN201911315225 A CN 201911315225A CN 111158715 B CN111158715 B CN 111158715B
- Authority
- CN
- China
- Prior art keywords
- application program
- new
- version
- gray
- resource package
- 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 42
- 238000012544 monitoring process Methods 0.000 claims abstract description 15
- 230000002159 abnormal effect Effects 0.000 claims description 34
- 230000008859 change Effects 0.000 claims description 20
- 238000003860 storage Methods 0.000 claims description 15
- 238000009826 distribution Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005457 optimization Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000013475 authorization Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012216 screening Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 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
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为本发明实施例二之灰度发布控制系统的程序模块示意图;
图7为本发明实施例三之计算机设备的硬件结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
请参阅图1,示出了本发明实施例之灰度发布控制方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述,具体如下:
如图1所示,所述灰度发布控制方法可以包括步骤S100~S400,其中:
步骤S100,接收灰度应用程序更新指令,基于所述灰度应用程序更新指令构建新版本灰度应用程序,所述新版本灰度应用程序包括历史版本灰度应用配置信息和新版本灰度应用配置信息。
在示例性的实施例中,当开发人员接收到灰度应用更新指令时,会通过计算机设备基于所述灰度应用更新指令构建新版本灰度应用程序,并将所述新版本灰度应用程序根据预设的灰度发布规则发布到灰度发布服务器中。
示例性的,预设的灰度发布规则包括但不限于筛选符合灰度发布的用户集合,对筛选出的符合灰度发布的用户集合进行新版本灰度应用程序发布。
在示例性的实施例中,在基于所述灰度应用程序更新指令构建新版本灰度应用程序之前,还包括:接收至少一个业务变更指令,所述业务变更指令携带有标识信息;基于所述至少一个业务变更指令携带的标识信息,识别相应的历史版本灰度应用程序,并从所述历史版本灰度应用程序中调取所述资源包。
预设的数据库包括多种不同类型的应用软件对应的历史版本灰度应用程序,每个类型的应用软件对应的历史版本灰度应用程序具有对应的标识信息。例如:B应用软件对应的历史版本灰度应用程序具有标识信息“#200”,C应用软件对应的历史版本灰度应用程序具有标识信息“#300”等。
示例性的,接收到业务变更指令,所述业务变更指令携带有“#200”的标识信息,基于“#200”的标识信息,识别出与“#200”对应的B应用软件对应的历史版本灰度应用程序,从B应用软件对应的历史版本灰度应用程序中调取资源包。
在示例性的实施例中,请参阅图2,步骤S100还可以进一步包括步骤S101~S104,其中:
步骤S101,获取所述历史版本灰度应用程序,所述历史版本灰度应用程序包括至少一个资源包,所述资源包包含历史版本灰度应用配置信息。
在示例性的实施例中,以Oracle数据库(Oracle Database,甲骨文数据库)为例,资源包存储于Oracle数据库中。所述历史版本灰度发布应用可以定义多个资源包,每个资源包有多个存储过程,以实现不同的功能。
其中,资源包是一组相关过程、函数、变量、常量、类型和游标等PL/SQL程序设计元素的组合。资源包具有面向对象设计的特点,是对这些PL/SQL程序设计元素的封装。每个资源包包括两部分:包定义和包主体。包定义部分为应用的接口,声明包内数据类型、变量、常量、游标、子程序和异常错误处理等元素,这些元素为资源包的公有元素。包主体部分则是包定义部分的具体实现,它定义了包定义部分所声明的游标和子程序。
示例性的,所述资源包中的历史版本灰度应用配置信息包括但不限于历史版本灰度应用程序各插件更新的先后次序、可视化界面的配置内容。
步骤S102,对所述至少一个资源包执行备份,以生成对应的资源包副本。
在示例性的实施例中,所述历史版本灰度应用配置信息可以以代码的形式呈现。
示例性的,对所述至少一个资源包执行备份,以生成对应的资源包副本还可以包括:基于所述至少一个资源包新建相应的资源包副本;将所述至少一个资源包对应的历史版本灰度应用配置信息复制到对应的资源包副本内。
举例而言,以Oracle数据库为例,历史版本灰度应用程序的资源包为A资源包,A资源包的名称为PACKAGE_A,在需要对A资源包中的某一存储过程进行代码优化时,新建一个A资源包副本,A资源包副本的名称为PACKAGE_NEW_A,将A资源包中的历史版本灰度应用配置信息全部复制到A资源包副本中,即将A资源包中的代码全部复制到A资源包副本中,A资源包内的代码保持不变。
步骤S103,基于预设的数据库对所述至少一个资源包副本创建同义词名称。
在示例性的实施例中,以Oracle数据库为例,同义词名称为oracle数据库同义词,同义词名称是oracle数据库对象创建的一个别名,然后可以通过对别名进行查询和访问。同义词名称不占据任何实际的存储空间。Oracle数据库的数据库对象包括但不限于表、视图、函数、过程、包。在本实施例中,创建同义词名称即是给资源包制定别名。
举例而言,当需要基于Oracle数据库对A资源包副本创建同义词名称时,开发人员通过计算机设备创建新用户,计算机设备向所述新用户发送授权指令,所述授权指令用于指示授予所述新用户创建同义词的权限;接收所述授权指令,并基于所述授权指令以使所述新用户对所述资源包副本创建同义词名称。
示例性的,对A资源包副本创建同义词名称,即将A资源包副本的名称PACKAGE_NEW_A创建为同义词名称PACKAGE_SYN_A,即A资源包副本的同义词名称为PACKAGE_SYN_A。
步骤S104,对所述至少一个资源包副本执行优化,得到相应的新资源包,所述新资源包包含新版本灰度应用配置信息,并基于所述资源包和新资源包,得到新版本灰度应用程序。
在示例性的实施例中,所述业务变更指令包括对于相应的历史版本灰度应用程序的业务变更需求,基于一个或多个业务变更指令对A资源包副本中的代码进行修改。示例性的,对A资源包副本中的代码执行优化包括但不限于新增或修改判断条件、新增新的逻辑分支、新增或修改控制条件。当对A资源包副本中的代码根据业务变更指令优化完成后,即得到相应的新A资源包。
步骤S200,将所述新版本灰度应用程序推送给至少一个移动终端,以供所述至少一个移动终端基于所述新版本灰度应用程序执行更新。
在示例性的实施例中,请参阅图3,将所述新版本灰度应用程序推送给至少一个移动终端,以供所述至少一个移动终端基于所述新版本灰度程序应用执行更新还可以包括步骤S201~S203,其中:
步骤S201,将所述新版本灰度应用程序推送给所述至少一个移动终端。
步骤S202,获取所述同义词名称以调用所述新版本灰度应用程序中的新资源包。
步骤S203,调取所述新资源包中的新版本灰度应用配置信息,以使所述至少一个移动终端基于所述新版本灰度应用配置信息运行所述新版本灰度应用程序。
举例而言,将新版本灰度应用程序推送给至少一个移动终端时,获取A资源包副本的同义词名称PACKAGE_SYN_A,即将获取到的同义词名称PACKAGE_SYN_A指向新A资源包,运行新A资源包中的优化代码,以使至少一个移动终端基于优化代码执行灰度应用的更新。
在示例性的实施例中,请参阅图4,将所述新版本灰度应用程序推送给至少一个移动终端,以供所述至少一个移动终端基于所述新版本灰度应用程序执行更新还可以包括步骤S211~S212,其中:
步骤S211,接收所述至少一个移动终端发送的版本更新请求。
步骤S212,基于所述版本更新请求获取相应的新版本灰度应用程序,并将所述新版本灰度应用程序推送给所述至少一个移动终端。
举例而言,接收所述至少一个移动终端发送的版本更新请求,将版本更新请求进行分类汇总,将版本更新请求与相应类型的应用软件的新版本灰度应用程序一一对应,再根据预设的灰度发布规则筛选出符合灰度发布的用户集合,所述用户集合包括至少一个用户,每个用户可对应一个移动终端,再基于相同的版本更新请求获取相应的用户集合与新版本灰度应用程序,并将所述新版本灰度应用程序推送给所述至少一个移动终端。
步骤S300,监控所述至少一个移动终端基于新版本灰度应用程序执行更新的运行状态信息。
在示例性的实施例中,所述运行状态信息包括但不限于该新版本灰度应用程序的更新状态、执行更新的时间。
步骤S400,当所述运行状态信息满足预设的版本回滚条件时,调取所述历史版本灰度应用配置信息替换所述新版本灰度应用配置信息,以使所述至少一个移动终端基于所述历史版本灰度应用配置信息运行历史版本灰度应用程序。
在示例性的实施例中,请参阅图5,调取所述历史版本灰度应用配置信息替换所述新版本灰度应用配置信息还可以进一步包括步骤S401~S403,其中:
步骤S401,接收所述至少一个移动终端发送的异常指令,所述异常指令用于指示所述运行状态信息满足预设的版本回滚条件。
示例性的,计算机设备发送监测指令至所述移动终端,以使所述移动终端监控新版本灰度应用程序的运行状态信息,当移动终端检测到新版本灰度应用程序在运行过程中,出现异常情况,所述移动终端基于异常情况生成异常指令。即所述移动终端检测到所述运行状态信息满足预设的版本回滚条件时,生成异常指令,并将所述异常指令发送至所述计算机设备。
移动终端检测到新版本灰度应用程序在运行过程中,出现异常情况即表示该新版本灰度应用程序无法正常运行,无法为移动终端提供相应的服务。异常情况包括但不限于空指针引用异常、数组下标越界异常、字符串下标越界异常、算术运算异常。
步骤S402,根据所述异常指令,生成替换指令。
示例性的,所述替换指令用于响应所述异常指令并用于指示所述移动终端执行。
步骤S403,基于所述替换指令将所述同义词名称修改到历史版本灰度应用程序的资源包上,以使所述资源包替换所述新资源包,进而使所述至少一个移动终端基于所述资源包中的历史版本灰度应用配置信息运行所述历史版本灰度应用程序以实现代码回滚。
在示例性的实施例中,预设的版本回滚条件可以包括实际执行更新的时间大于预设的执行更新时间阈值。举例而言,当移动终端基于监测指令监测到实际执行更新的时间大于预设的执行更新时间阈值时,即当所述运行状态信息满足预设的版本回滚条件时,生成异常指令并反馈至计算机设备,计算机设备根据所述异常指令,生成替换指令,以指示所述移动终端将获取到的同义词名称PACKAGE_SYN_A修改到历史版本灰度应用程序对应的A资源包上,将获取到的同义词名称PACKAGE_SYN_A指向A资源包,此时A资源包的代码生效,即运行历史版本灰度应用程序中A资源包的代码。
在示例性的实施例中,预设的版本回滚条件可以包括更新状态表现为优化代码异常。举例而言,当移动终端基于监测指令监测到新版本灰度应用程序的更新状态表现为优化代码异常时,即当所述运行状态信息满足预设的版本回滚条件时,生成异常指令并反馈至计算机设备,计算机设备根据所述异常指令,生成替换指令,以指示所述移动终端将获取到的同义词名称PACKAGE_SYN_A修改到历史版本灰度应用程序对应的A资源包上,将获取到的同义词名称PACKAGE_SYN_A指向A资源包,此时A资源包的代码生效,即运行历史版本灰度应用程序中A资源包的代码。即历史版本灰度应用程序对应的A资源包响应对应的移动终端的请求。
实施例二
请继续参阅图6,示出了本发明灰度发布控制系统的程序模块示意图。在本实施例中,灰度发布控制系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述灰度发布控制方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述灰度发布控制系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
构建模块200,用于接收灰度应用程序更新指令,基于所述灰度应用程序更新指令构建新版本灰度应用程序,所述新版本灰度应用程序包括历史版本灰度应用配置信息和新版本灰度应用配置信息。
在示例性的实施例中,当开发人员接收到灰度应用更新指令时,会通过计算机设备基于所述灰度应用更新指令构建新版本灰度应用程序,并将所述新版本灰度应用程序根据预设的灰度发布规则发布到灰度发布服务器中。
示例性的,预设的灰度发布规则包括但不限于筛选符合灰度发布的用户集合,对筛选出的符合灰度发布的用户集合进行新版本灰度应用程序发布。
在示例性的实施例中,在基于所述灰度应用程序更新指令构建新版本灰度应用程序之前,还包括:接收至少一个业务变更指令,所述业务变更指令携带有标识信息;基于所述至少一个业务变更指令携带的标识信息,识别相应的历史版本灰度应用程序,并从所述历史版本灰度应用程序中调取所述资源包。
预设的数据库包括多种不同类型的应用软件对应的历史版本灰度应用程序,每个类型的应用软件对应的历史版本灰度应用程序具有对应的标识信息。例如:B应用软件对应的历史版本灰度应用程序具有标识信息“#200”,C应用软件对应的历史版本灰度应用程序具有标识信息“#300”等。
示例性的,接收到业务变更指令,所述业务变更指令携带有“#200”的标识信息,基于“#200”的标识信息,识别出与“#200”对应的B应用软件对应的历史版本灰度应用程序,从B应用软件对应的历史版本灰度应用程序中调取资源包。
在示例性的实施例中,所述构建模块200还包括:获取模块201、备份模块202、创建模块203以及优化模块204。其中:
获取模块201,用于获取所述历史版本灰度应用程序,所述历史版本灰度应用程序包括至少一个资源包,所述资源包包含历史版本灰度应用配置信息。
备份模块202,用于对所述至少一个资源包执行备份,以生成对应的资源包副本。
创建模块203,用于基于预设的数据库对所述至少一个资源包副本创建同义词名称。
优化模块204,用于对所述至少一个资源包副本执行优化,得到相应的新资源包,所述新资源包包含新版本灰度应用配置信息,并基于所述资源包和新资源包,得到新版本灰度应用程序。
执行模块210,用于将所述新版本灰度应用程序推送给至少一个移动终端,以供所述至少一个移动终端基于所述新版本灰度应用程序执行更新。
在示例性的实施例中,所述执行模块202还用于:将所述新版本灰度应用程序推送给所述至少一个移动终端;获取所述同义词名称以调用所述新版本灰度应用程序中的新资源包;调取所述新资源包中的新版本灰度应用配置信息,以使所述至少一个移动终端基于所述新版本灰度应用配置信息运行所述新版本灰度应用程序。
在示例性的实施例中,所述执行模块202还用于:接收所述至少一个移动终端发送的版本更新请求;基于所述版本更新请求获取相应的新版本灰度应用程序,并将所述新版本灰度应用程序推送给所述至少一个移动终端。
监控模块220,用于监控所述至少一个移动终端基于新版本灰度应用程序执行更新的运行状态信息。
在示例性的实施例中,所述运行状态信息包括但不限于该新版本灰度应用程序的更新状态、执行更新的时间。
替换模块230,用于当所述运行状态信息满足预设的版本回滚条件时,调取所述历史版本灰度应用配置信息替换所述新版本灰度应用配置信息,以使所述至少一个移动终端基于所述历史版本灰度应用配置信息运行历史版本灰度应用程序。
在示例性的实施例中,替换模块206还用于接收所述至少一个移动终端发送的异常指令,所述异常指令用于指示所述运行状态信息满足预设的版本回滚条件;根据所述异常指令,生成替换指令;基于所述替换指令将所述同义词名称修改到历史版本灰度应用程序的资源包上,以使所述资源包替换所述新资源包,进而使所述至少一个移动终端基于所述资源包中的历史版本灰度应用配置信息运行所述历史版本灰度应用程序以实现代码回滚。
在示例性的实施例中,预设的版本回滚条件可以包括实际执行更新的时间大于预设的执行更新时间阈值。举例而言,当移动终端基于监测指令监测到实际执行更新的时间大于预设的执行更新时间阈值时,即当所述运行状态信息满足预设的版本回滚条件时,生成异常指令并反馈至计算机设备,计算机设备根据所述异常指令,生成替换指令,以指示所述移动终端将获取到的同义词名称PACKAGE_SYN_A修改到历史版本灰度应用程序对应的A资源包上,将获取到的同义词名称PACKAGE_SYN_A指向A资源包,此时A资源包的代码生效,即运行历史版本灰度应用程序中A资源包的代码。
在示例性的实施例中,预设的版本回滚条件可以包括更新状态表现为优化代码异常。举例而言,当移动终端基于监测指令监测到新版本灰度应用程序的更新状态表现为优化代码异常时,即当所述运行状态信息满足预设的版本回滚条件时,生成异常指令并反馈至计算机设备,计算机设备根据所述异常指令,生成替换指令,以指示所述移动终端将获取到的同义词名称PACKAGE_SYN_A修改到历史版本灰度应用程序对应的A资源包上,将获取到的同义词名称PACKAGE_SYN_A指向A资源包,此时A资源包的代码生效,即运行历史版本灰度应用程序中A资源包的代码。即历史版本灰度应用程序对应的A资源包响应对应的移动终端的请求。
实施例三
参阅图7,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及灰度发布控制系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如实施例二的灰度发布控制系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行灰度发布控制系统20,以实现上述实施例中的灰度发布控制方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述灰度发布控制系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图6示出了所述实现灰度发布控制系统20实施例二的程序模块示意图,该实施例中,所述基于灰度发布控制系统20可以被划分为构建模块200、执行模块210、监控模块220以及替换模块230。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述灰度发布控制系统20在所述计算机设备2中的执行过程。所述程序模块200-230的具体功能在实施例二中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储灰度发布控制系统20,被处理器执行时实现上述实施例中的灰度发布控制方法。
本发明实施例提供的灰度发布控制方法、系统、计算机设备及计算机可读存储介质,计算机设备通过将构建得到的新版本灰度应用程序推送给至少一个移动终端,并使所述至少一个移动终端基于所述新版本灰度应用程序执行更新,在执行更新的过程中,监控所述至少一个移动终端基于新版本灰度应用程序执行更新的运行状态信息,当运行状态信息满足预设的版本回滚条件时,无需进行代码回滚,直接调用历史版本灰度应用配置信息替换新版本灰度应用配置信息,就是在新版本灰度应用配置信息运行出现异常时,所述历史版本灰度应用配置信息及时生效,以实现新版本灰度应用程序投产后遇到问题时,能够快速反应,及时完成功能回退,提高回滚效率,保证业务的正常进行。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种灰度发布控制方法,其特征在于,包括:
接收灰度应用程序更新指令,基于所述灰度应用程序更新指令构建新版本灰度应用程序,所述新版本灰度应用程序包括历史版本灰度应用配置信息和新版本灰度应用配置信息;
将所述新版本灰度应用程序推送给至少一个移动终端,以供所述至少一个移动终端基于所述新版本灰度应用程序执行更新;以及
监控所述至少一个移动终端基于新版本灰度应用程序执行更新的运行状态信息;
当所述运行状态信息满足预设的版本回滚条件时,调取所述历史版本灰度应用配置信息替换所述新版本灰度应用配置信息,以使所述至少一个移动终端基于所述历史版本灰度应用配置信息运行历史版本灰度应用程序;
其中,基于所述灰度应用程序更新指令构建新版本灰度应用程序,所述新版本灰度应用程序包括历史版本灰度应用配置信息和新版本灰度应用配置信息,包括:
获取所述历史版本灰度应用程序,所述历史版本灰度应用程序包括至少一个资源包,所述资源包包含历史版本灰度应用配置信息;
对所述至少一个资源包执行备份,以生成对应的资源包副本;
基于预设的数据库对所述至少一个资源包副本创建同义词名称;
对所述至少一个资源包副本执行优化,得到相应的新资源包,所述新资源包包含新版本灰度应用配置信息,并基于所述资源包和新资源包,得到新版本灰度应用程序;
其中,当所述运行状态信息满足预设的版本回滚条件时,调取所述历史版本灰度应用配置信息替换所述新版本灰度应用配置信息,以使所述至少一个移动终端基于所述历史版本灰度应用配置信息运行历史版本灰度应用程序,包括:
接收所述至少一个移动终端发送的异常指令,所述异常指令用于指示所述运行状态信息满足预设的版本回滚条件;
根据所述异常指令,生成替换指令;
基于所述替换指令将所述同义词名称修改到历史版本灰度应用程序的资源包上,以使所述资源包替换所述新资源包,进而使所述至少一个移动终端基于所述资源包中的历史版本灰度应用配置信息运行所述历史版本灰度应用程序以实现代码回滚。
2.根据权利要求1所述的灰度发布控制方法,其特征在于,所述将所述新版本灰度应用程序推送给至少一个移动终端,以供所述至少一个移动终端基于所述新版本灰度应用程序执行更新还包括:
将所述新版本灰度应用程序推送给所述至少一个移动终端;
获取所述同义词名称以调用所述新版本灰度应用程序中的新资源包;以及
调取所述新资源包中的新版本灰度应用配置信息,以使所述至少一个移动终端基于所述新版本灰度应用配置信息运行所述新版本灰度应用程序。
3.根据权利要求2所述的灰度发布控制方法,其特征在于,所述接收灰度应用程序更新指令,基于所述灰度应用程序更新指令构建新版本灰度应用程序,所述新版本灰度应用程序包括历史版本灰度应用配置信息和新版本灰度应用配置信息之前还包括:
接收至少一个业务变更指令,所述业务变更指令携带有标识信息;
基于所述至少一个业务变更指令携带的标识信息,识别相应的历史版本灰度应用程序,并从所述历史版本灰度应用程序中调取所述资源包。
4.根据权利要求2所述的灰度发布控制方法,其特征在于,所述对所述至少一个资源包执行备份,以生成对应的资源包副本还包括:
基于所述至少一个资源包新建相应的资源包副本;
将所述至少一个资源包对应的历史版本灰度应用配置信息复制到对应的资源包副本内。
5.根据权利要求1所述的灰度发布控制方法,其特征在于,所述将所述新版本灰度应用程序推送给至少一个移动终端,以供所述至少一个移动终端基于所述新版本灰度应用程序执行更新还包括:
接收所述至少一个移动终端发送的版本更新请求;
基于所述版本更新请求获取相应的新版本灰度应用程序,并将所述新版本灰度应用程序推送给所述至少一个移动终端。
6.一种灰度发布控制系统,其特征在于,包括:
构建模块,用于接收灰度应用程序更新指令,基于所述灰度应用程序更新指令构建新版本灰度应用程序,所述新版本灰度应用程序包括历史版本灰度应用配置信息和新版本灰度应用配置信息;
执行模块,用于将所述新版本灰度应用程序推送给至少一个移动终端,以供所述至少一个移动终端基于所述新版本灰度应用程序执行更新;
监控模块,用于监控所述至少一个移动终端基于新版本灰度应用程序执行更新的运行状态信息;
替换模块,用于当所述运行状态信息满足预设的版本回滚条件时,调取所述历史版本灰度应用配置信息替换所述新版本灰度应用配置信息,以使所述至少一个移动终端基于所述历史版本灰度应用配置信息运行历史版本灰度应用程序;
所述构建模块还用于:获取所述历史版本灰度应用程序,所述历史版本灰度应用程序包括至少一个资源包,所述资源包包含历史版本灰度应用配置信息;
对所述至少一个资源包执行备份,以生成对应的资源包副本;
基于预设的数据库对所述至少一个资源包副本创建同义词名称;
对所述至少一个资源包副本执行优化,得到相应的新资源包,所述新资源包包含新版本灰度应用配置信息,并基于所述资源包和新资源包,得到新版本灰度应用程序;
所述替换模块还用于:接收所述至少一个移动终端发送的异常指令,所述异常指令用于指示所述运行状态信息满足预设的版本回滚条件;根据所述异常指令,生成替换指令;基于所述替换指令将所述同义词名称修改到历史版本灰度应用程序的资源包上,以使所述资源包替换所述新资源包,进而使所述至少一个移动终端基于所述资源包中的历史版本灰度应用配置信息运行所述历史版本灰度应用程序以实现代码回滚。
7.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的灰度发布控制方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至5中任一项所述的灰度发布控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911315225.5A CN111158715B (zh) | 2019-12-19 | 2019-12-19 | 灰度发布控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911315225.5A CN111158715B (zh) | 2019-12-19 | 2019-12-19 | 灰度发布控制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158715A CN111158715A (zh) | 2020-05-15 |
CN111158715B true CN111158715B (zh) | 2024-02-06 |
Family
ID=70557355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911315225.5A Active CN111158715B (zh) | 2019-12-19 | 2019-12-19 | 灰度发布控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158715B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625271A (zh) * | 2020-06-04 | 2020-09-04 | 中国银行股份有限公司 | 一种白名单更新方法、装置、存储介质及设备 |
CN111679981B (zh) * | 2020-06-05 | 2023-08-29 | 广州探途网络技术有限公司 | 应用软件发布方法、系统及电子设备 |
CN112181437B (zh) * | 2020-09-04 | 2024-03-19 | 招商局金融科技有限公司 | 基于Devops的灰度发布方法、装置、计算机设备及存储介质 |
CN113793137A (zh) * | 2021-09-29 | 2021-12-14 | 中国银行股份有限公司 | 手机银行版本发布控制方法及装置 |
CN114968274B (zh) * | 2022-07-29 | 2022-11-08 | 之江实验室 | 一种基于灰度发布的自动化快速部署前置机的方法及系统 |
CN117149747B (zh) * | 2023-10-30 | 2024-02-02 | 建信金融科技有限责任公司 | 数据库变更的灰度发布方法及系统、计算机设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547584A (zh) * | 2015-09-23 | 2017-03-29 | 中国移动通信集团浙江有限公司 | 一种应用程序的回退方法及装置 |
CN107656748A (zh) * | 2017-09-08 | 2018-02-02 | 北京京东尚科信息技术有限公司 | 应用发布的方法和装置 |
CN107864175A (zh) * | 2017-08-24 | 2018-03-30 | 平安普惠企业管理有限公司 | 灰度发布控制方法、装置、设备及存储介质 |
CN108319656A (zh) * | 2017-12-29 | 2018-07-24 | 中兴通讯股份有限公司 | 实现灰度发布的方法、装置及计算节点和系统 |
CN109725928A (zh) * | 2018-06-15 | 2019-05-07 | 平安普惠企业管理有限公司 | 灰度发布方法、装置、设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150128121A1 (en) * | 2013-11-06 | 2015-05-07 | Improvement Interactive, LLC | Dynamic application version selection |
-
2019
- 2019-12-19 CN CN201911315225.5A patent/CN111158715B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547584A (zh) * | 2015-09-23 | 2017-03-29 | 中国移动通信集团浙江有限公司 | 一种应用程序的回退方法及装置 |
CN107864175A (zh) * | 2017-08-24 | 2018-03-30 | 平安普惠企业管理有限公司 | 灰度发布控制方法、装置、设备及存储介质 |
CN107656748A (zh) * | 2017-09-08 | 2018-02-02 | 北京京东尚科信息技术有限公司 | 应用发布的方法和装置 |
CN108319656A (zh) * | 2017-12-29 | 2018-07-24 | 中兴通讯股份有限公司 | 实现灰度发布的方法、装置及计算节点和系统 |
CN109725928A (zh) * | 2018-06-15 | 2019-05-07 | 平安普惠企业管理有限公司 | 灰度发布方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111158715A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111158715B (zh) | 灰度发布控制方法及系统 | |
EP1872215B1 (en) | Implementing data-compatibility-based version scheme | |
CN112765023B (zh) | 测试用例生成方法、装置 | |
CN105069352A (zh) | 一种在服务器上构建可信应用程序运行环境的方法 | |
CN111737227B (zh) | 数据修改方法及系统 | |
CN111988429A (zh) | 算法调度方法以及系统 | |
CN113504918A (zh) | 设备树配置优化方法、装置、计算机设备和存储介质 | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN112083971A (zh) | 组件处理方法、设备及存储介质 | |
CN115543429A (zh) | 项目环境的搭建方法、电子设备及计算机可读存储介质 | |
CN110109684B (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN113535206B (zh) | 多版本代码升级方法及系统 | |
CN111416857A (zh) | 客户端崩溃处理方法、装置、系统、设备和存储介质 | |
CN110737548A (zh) | 数据请求方法和服务器 | |
CN114461217A (zh) | 代码编译方法、装置、电子设备及存储介质 | |
CN112631719B (zh) | 数据预测模型调用方法、装置、设备和存储介质 | |
WO2024011994A1 (en) | Methods and systems for updating an algorithm package | |
CN112416384A (zh) | 软件升级方法、装置及计算机设备 | |
US10140155B2 (en) | Dynamically provisioning, managing, and executing tasks | |
CN116028045A (zh) | 第三方应用代码快速分发方法、装置、设备及存储介质 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN112817953B (zh) | 一种数据校验的方法、装置、计算机设备及计算机可读存储介质 | |
CN111737964A (zh) | 表格动态处理方法、设备及介质 | |
CN111400319A (zh) | 数据处理框架的实现方法、装置、设备及计算机存储介质 | |
CN117573199B (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 |