CN109558162A - 应用程序发布方法、装置、计算机设备及存储介质 - Google Patents
应用程序发布方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109558162A CN109558162A CN201710883266.9A CN201710883266A CN109558162A CN 109558162 A CN109558162 A CN 109558162A CN 201710883266 A CN201710883266 A CN 201710883266A CN 109558162 A CN109558162 A CN 109558162A
- Authority
- CN
- China
- Prior art keywords
- user identifier
- subapplication
- version
- released
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Abstract
本申请涉及一种应用程序发布方法,装置、计算机设备及存储介质。应用程序发布方法包括:获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;获取所述母应用程序中包含有所述子应用程序的用户标识集;获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。上述应用程序发布方法可以灵活地对灰度发布进行设置,提高了灰度发布的灵活性。
Description
技术领域
本申请涉及计算机处理技术领域,特别是涉及一种应用程序发布方法、装置、计算机设备及存储介质。
背景技术
应用程序是为了得到某种结果而可以由计算机等具有信息处理能力的终端执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。目前,用户可以在终端上安装各种应用程序,如拍照应用程序、社交应用程序或者邮件应用程序等,从而通过终端上安装的这些应用可以实现各种功能,如拍照功能、社交功能或者电子邮件管理功能等。
应用程序更新时往往采用灰度发布的方式进行更新,传统的应用程序灰度发布的方式往往比较固定,不够灵活。
发明内容
基于此,有必要针对上述灵活度低的问题,提出了一种灵活度高的应用程序灰度发布方法、装置、计算机设备及存储介质。
一种应用程序发布方法,所述方法包括:
获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;
当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
获取所述母应用程序中包含有所述子应用程序的用户标识集;
获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;
将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
一种应用程序发布装置,所述装置包括:
发布状态获取模块,用于获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;
配置信息获取模块,用于当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
用户标识集获取模块,用于获取所述母应用程序中包含有所述子应用程序的用户标识集;
筛选模块,用于获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;
发布模块,用于将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;
当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
获取所述母应用程序中包含有所述子应用程序的用户标识集;
获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;
将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;
当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
获取所述母应用程序中包含有所述子应用程序的用户标识集;
获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;
将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
上述应用程序灰度发布方法、装置、计算机可读存储介质和计算机设备,当子应用程序待发布版本对应的发布状态为灰度发布时,根据自定义灰度配置信息将对应的子应用程序待发布版本发布至目标发布用户。该方法中自定义灰度配置信息是由发布者自定义设置的,提高了灰度发布的灵活性,且相对于传统的灰度发布的候选发布用户只能是开启了自动更新的用户,该应用程序发布方法的候选发布用户是所有包含有该子应用程序的用户,覆盖的用户范围更广,便于后续得到更准确的发布反馈。
一种应用程序发布方法,所述方法包括:
接收第一终端对所述子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的运行环境中;
当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;
当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
一种应用程序发布装置,所述装置包括:
提取模块,用于接收第一终端对子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的环境中;
发布状态获取模块,用于当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;
自定义灰度配置信息获取模块,用于当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
发送模块,用于获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
接收第一终端对所述子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的运行环境中;
当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;
当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
接收第一终端对所述子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的运行环境中;
当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;
当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
上述应用程序发布方法、装置、计算机设备及存储介质,当发布状态为灰度发布时,获取子应用程序版本对应的自定义灰度配置信息,其中,自定义灰度配置信息是由发布者自定义设置的,提高了应用程序发布的灵活性,进一步的,根据自定义灰度配置信息和用户标识对应的灰度信息来确定用户标识是否为目标发布用户标识,然后进行相应的发布,从而能够实现有序地对子应用程序待发布版本进行灰度发布。
附图说明
图1为一个实施例中应用程序发布方法的应用环境图;
图2为一个实施例中应用程序发布方法的流程示意图;
图3为一个实施例中筛选得到目标发布用户标识的方法流程图;
图4为一个实施例中根据用户标识计算各个用户标识对应的灰度值的方法流程图;
图5为一个实施例中子应用程序发布过程中各个灰度状态的转化关系示意图;
图6为一个实施例中获取子应用程序待发布版本对应的自定义灰度配置信息的方法流程图;
图7为一个实施例中自定义设置灰度信息的界面示意图;
图8为另一个实施例中应用程序发布方法流程图;
图9为又一个实施例中应用程序发布方法流程图;
图10为一个实施例中发布者发布子应用程序待发布版本的时序图;
图11为一个实施例中应用程序发布方法的时序图;
图12为一个实施例中应用程序发布装置的结构框图;
图13为一个实施例中筛选模块的结构框图;
图14为另一个实施例中应用程序发布装置的结构框图;
图15为又一个实施例中应用程序发布装置的结构框图;
图16为再一个实施例中应用程序发布装置的结构框图;
图17为还一个实施例中应用程序发布装置的结构框图;
图18为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中应用程序发布方法的应用环境图。参照图1,该应用程序发布方法应用于应用程序发布系统。该应用程序发布系统包括第一终端110、服务器120和第二终端130。第一终端110和服务器120通过网络连接,服务器 120和第二终端130通过网络连接。第一终端110、第二终端130具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。首先,第二终端130通过发布平台上传子应用程序待发布版本到服务器120,并且设置子应用程序待发布版本对应的自定义灰度配置信息。服务器120接收到子应用程序待发布版本后,获取与子应用程序待发布版本对应的发布状态,子应用程序运行于母应用程序提供的环境中,其中,母应用程序运行在第一终端110的操作系统上。当发布状态为灰度发布时,获取子应用程序待发布版本对应的自定义灰度配置信息,获取母应用程序中包含有子应用程序的用户标识集,获取用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和自定义灰度配置信息从用户标识集中筛选得到目标发布用户标识,将所述子应用程序待发布版本发布至所述目标发布用户标识对应的第一终端110中的子应用程序。
如图2所示,提供了一种应用程序发布方法。本实施例主要以该方法应用于上述图1中的服务器120来举例说明。参照图2,该应用程序发布方法具体包括如下步骤:
步骤S202,获取子应用程序待发布版本对应的发布状态,子应用程序运行于母应用程序提供的环境中。
其中,子应用程序待发布版本是指子应用程序待更新的版本。发布状态是指子应用程序待发布版本当前对应的发布状态。发布状态可以根据实际情况自定义设置,比如,在一个实施例中,发布状态分为灰度发布和全量发布。在另一个实施例中,发布状态分为灰度发布和无灰度发布。其中,全量发布是指向包含子应用程序的全部用户发布子应用程序待发布版本的状态。灰度发布是指根据设定的灰度比例向部分包含有子应用程序的用户发布子应用程序待发布版本的状态。无灰度发布是指子应用程序待发布版本还未开始发布。
母应用程序是承载子应用程序的应用程序,为子应用程序的实现提供环境。母应用程序是原生应用程序。原生应用程序是可直接运行于操作系统的应用程序。母应用程序可以是社交应用程序、专门支持子应用程序的专用应用程序、文件管理应用程序、邮件应用程序或者游戏应用程序等。社交应用程序包括即时通信应用、SNS(Social NetworkService,社交网站)应用或者直播应用等。
子应用程序则是可在母应用程序提供的环境中实现的应用程序。子应用程序具体可以是社交应用程序、文件管理应用程序、邮件应用程序或者游戏应用程序等。
步骤S204,判断发布状态是否为灰度发布,若是,则进入步骤S206,若否,则,则结束。
其中,灰度发布是指按照设定的比例向部分用户发布子应用程序待发布版本的状态。在一个实施例中,发布状态分为灰度发布和无灰度发布。如果发布状态为灰度发布,则需要获取子应用程序待发布版本对应的自定义灰度配置信息,如果发布状态为无灰度发布,则说明该子应用程序待发布版本还没开始发布,不需要进一步处理,结束。
在另一个实施例中,发布状态分为灰度发布和全量发布两种。如果发布状态为灰度发布,则需要获取子应用程序待发布版本对应的自定义灰度配置信息,如果发布状态为全量发布,则获取母应用程序中包含有子应用程序的用户标识集,将子应用程序待发布版本发布至用户标识集中各个用户标识对应的子应用程序。举个例子,假设母应用程序中包含有子应用程序的用户标识有100个,这100个用户标识组成用户标识集,全量发布就是要将子应用程序待发布版本发布至用户标识集中各个用户标识对应的子应用程序。
步骤S206,获取子应用程序待发布版本对应的自定义灰度配置信息。
其中,自定义灰度配置信息是指由子应用程序待发布版本的发布者自主设置的灰度配置信息,包括灰度百分比的设置。后续根据自定义灰度配置信息进行相应的灰度发布。比如,假设自定义设置灰度百分比为10%,那么后续将向 10%的用户发布子应用程序待发布版本。
步骤S208,获取母应用程序中包含有子应用程序的用户标识集。
其中,用户标识集是由多个用户标识组成的集合。获取母应用程序中包含有子应用程序的注册用户的用户标识,用户标识用于唯一标识一个注册母应用程序的用户。用户标识可以为用户账号,也可以为系统编号等可以唯一标识一个用户的标识。子应用程序运行在母应用程序提供的运行环境中,获取的用户标识为母应用程序对应的用户标识,并不是所有母应用程序中都包含有该子应用程序,所以只需要获取包含有该子应用程序的母应用程序对应的用户标识集。
步骤S210,获取用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和自定义灰度配置信息从用户标识集中筛选得到目标发布用户标识。
其中,灰度信息用于表示用户标识对应的发布优先级。自定义灰度配置信息中包含有子应用程序待发布版本对应的发布比例。根据用户标识对应的发布优先级和子应用程序待发布版本对应的发布比例从用户标识集中筛选得到目标发布用户标识。在一个实施例中,当确定了子应用程序待发布版本对应的发布比例后,将发布优先级中优先级在发布比例之前的用户标识作为目标发布用户标识。举个例子,假设发布比例为10%,将优先级在前10%的用户标识作为目标发布用户标识。
相对于传统的只能从开启了自动更新子应用程序的用户标识集中选取目标发布用户标识,该方法是从所有包含有子应用程序的用户标识集中选取出目标发布用户标识,因此,针对的用户范围更广泛,有利于后续更准确地接收用户对该子应用程序的反馈。
步骤S212,将子应用程序待发布版本发布至目标发布用户标识对应的子应用程序。
其中,将子应用程序待发布版本发布到目标发布用户标识对应的子应用程序的触发时机可以自定义,比如,可以是当接收到灰度指令时,开始将子应用程序待发布版本发送到目标发布用户标识对应的子应用程序;也可以是接收到目标发布用户发送的访问请求时;将子应用程序待发布版本发送到目标发布用户标识对应的子应用程序;还可以是将检测到发布状态为灰度发布时,将子应用程序待发布版本发布至目标发布用户标识对应的子应用程序。
具体地,当触发到将子应用程序待发布版本发布到目标发布用户标识时,将子应用程序待发布版本的版本控制信息下发到目标发布用户标识对应的子应用程序,其中,子应用程序运行于终端中的母应用程序中。将版本控制信息下发到子应用程序的过程就是将子应用程序与待发布版本的版本号关联的过程,便于后续用户访问子应用程序时,根据该关联关系连接到待发布版本对应的页面数据。
上述应用程序灰度发布方法,当子应用程序待发布版本对应的发布状态为灰度发布时,获取子应用程序待发布版本对应的自定义灰度配置信息,并且获取母应用程序中包含有子应用程序的用户标识集,根据各个用户标识对应的灰度信息和自定义灰度配置信息从用户标识集中筛选得到目标发布用户标识,然后将子应用程序待发布版本发布至目标发布用户标识对应的子应用程序。该方法中可以灵活对灰度发布进行设置,提高了灰度发布的灵活性,且相对于传统的灰度发布的候选发布用户只能是开启了自动更新的用户,该方法中的候选发布用户上所有包含有子应用程序的所有用户,发布的用户范围更广泛,更具有可靠性。
如图3所示,在一个实施例中,获取用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和自定义灰度配置信息从用户标识集中筛选得到目标发布用户标识的步骤S210包括:
步骤S210A,根据用户标识计算各个用户标识对应的灰度值。
其中,灰度值用于衡量对应的用户标识获取到子应用程序待发布版本的优先级顺序。比如,假设灰度值为1%,那么表示该用户标识是前1%获取到子应用程序待发布版本的用户标识。灰度值越小(优先级越高),用户标识对应的用户获取到子应用程序待发布版本的时间越早。在一个实施例中,灰度值的计算可以通过计算每个用户标识对应的哈希值,然后对哈希值进行求余计算得到。在另一实施例中,也可以采用随机分配的方式对每个用户标识分配相应的灰度值,比如,首先从母应用程序中包含子应用程序的用户标识集中随机选取1%的用户标识,将该1%的用户标识对应的灰度值赋值为1%。然后再在剩下的用户标识集中随机选取占总数1%的用户标识,将该1%的用户标识对应的灰度值赋值为2%,依次类推,为每个用户标识都赋予相应的灰度值,后续根据灰度值的大小进行相应的灰度发布。
步骤S210B,获取自定义灰度配置信息中包含的灰度百分比。
其中,自定义灰度配置信息中包含有自定义设置的灰度百分比。灰度百分比用于表示子应用程序待发布版本发布的比例。比如,假设灰度百分比为30%,那么说明子应用程序待发布版本将发布至用户标识集中30%的用户标识对应的子应用程序。具体地,灰度百分比可以根据实际情况进行调整,而且在首次发布后,可以在后续发布的过程中实时对灰度百分比进行调整。一般来说,当线上使用情况比较好时,可以逐步提升灰度百分比,直至达到全量发布。当然如果线上使用情况不好,可以暂停灰度发布或者撤回灰度发布。
步骤S210C,将灰度值小于或等于灰度百分比的用户标识作为目标发布用户标识。
其中,获取到每个用户标识对应的灰度值,以及获取到了自定义灰度配置信息中包含的灰度百分比后,将灰度值小于或等于灰度百分比的用户标识作为目标发布用户标识。比如,假设自定义设置的灰度百分比为30%,说明目前只针对前30%的用户标识发布子应用程序待发布版本,如果用户标识对应的灰度值在30%以内,说明该用户标识为目标发布用户标识。
如图4所示,在一个实施例中,根据用户标识计算各个用户标识对应的灰度值的步骤S210A包括:
步骤S402,计算与每个用户标识对应的标识哈希值。
其中,灰度发布是根据用户标识对应的灰度值进行发布的,所以首先需要计算与每个用户标识对应的灰度值。在一个实施例中,用户标识采用系统编号来表示。系统编号是指为每个用户分配的用于唯一标识该用户的编号,常常是由一系列数字组成的,比如,可以采用10为数字的组合来表示。由于系统编号并不是均匀分布的,所以为了计算得到每个用户标识对应的灰度值,首先,计算与每个用户标识对应的标识哈希值,使其转化为连续的均匀分布的哈希值表示形式,每个用户标识对应的哈希值称为“标识哈希值”。在一个实施例中,可以采用Murmurhash算法计算得到与用户标识对应的标识哈希值。当然也可以采用其他计算哈希值的算法进行计算。
步骤S404,对标识哈希值进行模运算得到与用户标识对应的灰度值。
其中,在计算得到标识哈希值后,对标识哈希值进行模运算,模运算即求余运算。具体地,给定一个正整数p,任一个正数n,一定存在等式n=kp+r。其中,r为n除以p的余数,且0≤r<p。模运算就是计算r的过程。在一个实施例中,为了计算得到0-100的余数,选取p=101。灰度值是指将计算得到的余数除以100得到的,比如,如果采用模运算得到的值为5,那么相应的灰度值为 5%。灰度值的大小反映了子应用程序待发布版本发布的前后顺序,灰度值越小,相应的子应用程序待发布版本发布至对应的用户标识越早。
在一个实施例中,上述应用程序发布方法还包括:当发布状态为灰度撤回时,获取子应用程序已更新为子应用程序待发布版本的目标撤回用户标识;获取子应用程序的上一版本信息;将上一版本信息发布至目标撤回用户标识对应的子应用程序。
其中,发布状态分为灰度发布、灰度撤回和全量发布等多种状态,其中,灰度发布和灰度撤回都属于灰度阶段的状态。灰度撤回是指撤回之前发布的子应用程序待发布版本的状态。如果子应用程序待发布版本在灰度发布阶段发现存在问题,发布者可以选择灰度撤回,从而可以避免风险。当灰度发布状态为灰度撤回时,需要获取子应用程序已更新为子应用程序待发布版本的用户标识,称为“目标撤回用户标识”。便于后续对该目标撤回用户标识对应的子应用程序待发布版本执行撤回操作。为了保证用户访问不受影响,撤回子应用程序待发布版本后使用户可以继续使用子应用程序的上一版本信息。具体地,获取子应用程序的上一版本信息,将上一版本信息作为最新的版本信息,然后将该最新的版本信息发布至目标撤回用户标识对应的子应用程序,以替换之前发布的子应用程序待发布版本,从而实现对子应用程序待发布版本的撤回,整个撤回过程用户无感知,不影响用户的访问请求。相对于传统的应用程序一旦发布便不可撤回,该应用程序发布方法可以随时对待发布版本进行撤回,灵活性高,而且可以有效地避免应用程序的发布风险。
如图5所示,在一个实施例中,灰度阶段的状态分为灰度发布、灰度暂停、灰度撤回和灰度结束等四种灰度状态,图5为一个实施例中子应用程序待发布版本的发布的过程中各个灰度状态的关系示意图。其中,灰度发布是指根据一定比例向用户发布子应用程序待发布版本的状态。灰度暂停是指停止向用户发布子应用程序待发布版本的状态,但是并不会对已经发布过子应用程序待发布版本的用户进行撤回。灰度撤回是指撤回之前发布的子应用程序待发布版本的状态。灰度结束是指执行完毕或回退完成的状态。
如图6所示,在一个实施例中,获取子应用程序待发布版本对应的自定义灰度配置信息的步骤S206包括:
步骤S206A,获取自定义灰度配置信息中包含的子应用程序待发布版本配置日期。
其中,自定义灰度配置信息中包含有子应用程序待发布版本配置日期,配置日期即是子应用程序待发布版本开始发布的日期。比如,子应用程序待发布版本上线的日期为2017年8月30日,那么相应的配置日期即为2017年8月30 日。
步骤S206B,判断子应用程序待发布版本配置日期距离当前时刻的时长是否超过预设阈值,若是,则进入步骤S206C,若否,则继续灰度发布。
其中,预先设置预设时长阈值,比如,设置预设阈值为15天,当超过15 天时便自动进行全量发布。通过计算当前时刻与子应用程序待发布版本配置日期之间的时长,然后判断该时长是否超过预设阈值,若超过了预设阈值,则修改发布状态为全量发布,若没有,则继续灰度发布。
步骤S206C,将发布状态修改为全量发布。
具体地,全量发布是指对所有包含有子应用程序的用户标识都进行发布。通过设置预设阈值,避免灰度发布的持续时间过长。
在一个实施例中,在获取与子应用程序待发布版本对应的发布状态的步骤之前还包括:接收通过发布平台上传的子应用程序待发布版本,接收与子应用程序待发布版本对应的自定义灰度配置信息。
具体地,子应用程序待发布版本的发布方式由发布者自定义设置,发布者可以通过发布平台上传子应用程序待发布版本,服务器接收上传的子应用程序待发布版本,并接收与子应用程序待发布版本对应的自定义灰度配置信息,如图7所示,为一个实施例中,自定义设置灰度信息的界面示意图。后续服务器根据自定义灰度配置信息进行相应的灰度发布。进一步的,自定义灰度配置信息可以在发布的过程中随时进行更改,比如,如果子应用程序待发布版本的线上运行情况良好,那么就可以相应提高灰度发布比例。如果子应用程序待发布版本的运行情况不好,可以缩小灰度发布比例。通过发布者自定义灰度配置信息,有利于发布者根据实际情况来设定相应的灰度比例,提高了灰度发布的灵活性,同时也更加贴合实际需求。
如图8所示,提出了一种应用程序发布方法,该方法包括以下步骤:
步骤S801,获取子应用程序待发布版本对应的发布状态,子应用程序运行于母应用程序提供的环境中,若发布状态为灰度发布,则进入步骤S803,若发布状态为全量发布,则进入步骤S802,若发布状态为灰度撤回,则进入步骤S809。
步骤S802,获取母应用程序中包含有子应用程序的用户标识集,将子应用程序待发布版本发布至用户标识集中各个用户标识对应的子应用程序。
步骤S803,获取子应用程序待发布版本对应的自定义灰度配置信息。
步骤S804,获取母应用程序中包含有子应用程序的用户标识集。
步骤S805,计算与每个用户标识对应的标识哈希值,对标识哈希值进行模运算得到与用户标识对应的灰度值。
步骤S806,获取自定义灰度配置信息中包含的灰度百分比。
步骤S807,将灰度值小于或等于灰度百分比的用户标识作为目标发布用户标识。
步骤S808,将子应用程序待发布版本发布至目标发布用户标识对应的子应用程序。
步骤S809,获取子应用程序已更新为子应用程序待发布版本的目标撤回用户标识,获取子应用程序的上一版本信息,将上一版本信息发布至目标撤回用户标识对应的子应用程序。
如图9所示,在一个实施例中,提出了一种应用程序发布方法,该方法包括:
步骤S902,接收第一终端对子应用程序的访问请求,提取访问请求中的母应用程序的用户标识和子应用程序的当前版本信息,子应用程序运行于母应用程序提供的运行环境中。
其中,服务器接收第一终端对子应用程序的访问请求,访问请求中携带有子应用程序的当前版本信息和母应用程序的用户标识。子应用程序运行于母应用程序提供的运行环境中。当前版本信息是指第一终端中子应用程序当前存在的版本信息。用户标识用于唯一标识一个母应用程序的注册用户。
母应用程序是承载子应用程序的应用程序,为子应用程序的实现提供环境。母应用程序是原生应用程序。原生应用程序是可直接运行于操作系统的应用程序。母应用程序可以是社交应用程序、专门支持子应用程序的专用应用程序、文件管理应用程序、邮件应用程序或者游戏应用程序等。社交应用程序包括即时通信应用、SNS(Social NetworkService,社交网站)应用或者直播应用等。
子应用程序则是可在母应用程序提供的环境中实现的应用程序。子应用程序具体可以是社交应用程序、文件管理应用程序、邮件应用程序或者游戏应用程序等。
步骤S904,判断当前版本信息是否为待发布版本信息,若否,则进入步骤 S906,若是,则进入步骤915。
具体地,判断当前版本信息是否为待发布版本信息,即判断子应用程序对应的当前版本信息是否为最新版本信息,如果是,则说明该用户已经更新为了待发布版本信息,直接将待发布版本信息对应的页面数据发送给第一终端。如果不是,则需要获取子应用程序对应的发布状态。
步骤S906,获取子应用程序待发布版本对应的发布状态。
其中,子应用程序待发布版本是指子应用程序待更新的版本。发布状态用于表示子应用程序待发布版本对应的更新状态。发布状态可以根据实际情况自定义设置,比如,在一个实施例中,发布状态分为灰度发布和全量发布两种。其中,全量发布是指向全部用户发布子应用程序待发布版本的状态。灰度发布 (又称“分阶段发布”)是指根据一定比例向用户发布子应用程序待发布版本的状态。
步骤S908,判断发布状态是否为灰度发布,若是,则进入步骤S910,若否,则进入步骤S915。
其中,灰度发布即分阶段发布,是指按照一定的比例向用户发布子应用程序待发布版本。如果获取到的发布状态为灰度发布,则需要进一步获取相应的自定义灰度配置信息,如果获取到的发布状态为非灰度发布,则将当前版本信息对应的页面数据发送给第一终端。
步骤S910,获取子应用程序待发布版本对应的自定义灰度配置信息,获取用户标识对应的灰度信息。
其中,自定义灰度配置信息是指由子应用程序待发布版本的发布者自主设置的灰度配置信息,包括灰度百分比的设置。后续根据自定义灰度配置信息进行相应的灰度发布。比如,假设自定义设置灰度百分比为10%,那么后续将对 10%的用户发布子应用程序待发布版本。灰度信息用于表示用户标识对应的发布概率。
步骤S912,根据用户标识对应的灰度信息和自定义灰度配置信息判断用户标识是否为目标发布用户标识,若是,则进入步骤S914,若否,则进入步骤S915。
其中,灰度信息用于表示用户标识对应的发布优先级。自定义灰度配置信息中包含有子应用程序待发布版本对应的发布比例。根据用户标识对应的发布优先级和子应用程序待发布版本对应的发布比例从用户标识集中筛选得到目标发布用户标识。在一个实施例中,当确定了子应用程序待发布版本对应的发布比例后,将发布优先级中优先级在发布比例之前的用户标识作为目标发布用户标识。举个例子,假设发布比例为10%,将优先级在前10%的用户标识作为目标发布用户标识。判断用户标识的优先级是否在发布比例之前,如果是,则说明该用户标识为目标发布用户标识,即为子应用程序待发布版本对应的用户标识,那么就可以将待发布版本信息对应的页面数据发送给第一终端,如果否,则说明用户标识为非目标发布用户标识,继续采用当前版本信息,将当前版本信息对应的页面数据发送给第一终端。
步骤S914,将待发布版本信息对应的页面数据发送给第一终端。
具体地,当用户标识为目标发布用户标识时,则向该用户标识发布子应用程序待发布版本,将该子应用程序待发布版本对应的页面数据发送给第一终端。
步骤S915,将当前版本信息对应的页面数据发送给第一终端。
具体地,当用户标识为非目标发布用户标识时,则该用户标识继续使用当前版本信息,将当前版本信息对应的页面数据发送给第一终端。
上述应用程序发布方法,当发布状态为灰度发布时,获取子应用程序版本对应的自定义灰度配置信息,其中,自定义灰度配置信息是由发布者自定义设置的,提高了应用程序发布的灵活性,进一步的,根据自定义灰度配置信息和用户标识对应的灰度信息来确定用户标识是否为目标发布用户标识,然后进行相应的发布,从而能够实现有序地对子应用程序待发布版本进行灰度发布。
在一个实施例中,上述应用程序发布方法还包括:接收第二终端通过发布平台上传的子应用程序待发布版本,接收与子应用程序待发布版本对应的自定义灰度配置信息。
具体地,子应用程序待发布版本的发布方式由发布者自定义设置,发布者可以通过第二终端上传的子应用程序待发布版本,服务器接收上传的子应用程序待发布版本,并接收与子应用程序待发布版本对应的自定义灰度配置信息。后续服务器根据自定义灰度配置信息进行相应的灰度发布。进一步的,自定义灰度配置信息可以在发布的过程中随时进行更改,比如,如果子应用程序待发布版本的线上运行情况良好,那么就可以相应提高灰度发布比例。如果子应用程序待发布版本的运行情况不好,可以缩小灰度发布比例。通过发布者自定义灰度配置信息,有利于发布者根据实际情况来设定相应的灰度比例,提高了灰度发布的灵活性,同时也更加贴合实际需求。
如图10所示,为一个实施例中,发布者通过第二终端发布子应用程序待发布版本的时序图。首先第二终端1010通过发布平台发送子应用程序待发布版本到服务器1020,服务器1020中的接收模块1022接收发布的子应用程序待发布版本,服务器1020中的灰度控制模块1024接收对该子应用程序待发布版本的自定义灰度配置信息。后续,当发布者想查看发布状态时,通过第二终端1010 向接收模块1022发送查看请求,接收模块1022向灰度控制模块1024发送查看子应用程序待发布版本的状态,灰度控制模块1024查询子应用程序待发布版本的发布状态并返回给接收模块1022,接收模块1022将查询的结果返回给第二终端1010。
在一个实施例中,上述应用程序发布方法还包括:当所述当前版本信息是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;当发布状态为撤回发布时,获取子应用程序的上一版本信息;将上一版本信息对应的页面数据发布至与用户标识对应的第一终端。
其中,发布状态分为灰度发布、灰度撤回和全量发布等多种状态,其中,灰度发布和灰度撤回都属于灰度阶段的状态。灰度撤回是指撤回之前发布的子应用程序待发布版本的状态。如果子应用程序待发布版本在灰度发布阶段发现存在问题,发布者可以选择灰度撤回,从而可以避免风险。当获取到当前版本信息是待发布版本信息时,说明当前版本已经是最新的版本,获取子应用程序待发布版本对应的发布状态,当发布状态为撤回发布时,获取子应用程序的上一版本信息,将上一版本信息对应的页面数据发布至用户标识对应的第一终端。具体地,获取子应用程序的上一版本信息,将上一版本信息作为最新的版本信息,然后将该最新的版本信息发布至目标撤回用户标识对应的子应用程序,以替换之前发布的子应用程序待发布版本,从而实现对子应用程序待发布版本的撤回,整个撤回过程用户无感知,不影响用户的访问请求。
如图11所示,为一个实施例中应用程序发布方法的时序图。首先,第一终端1110向服务器1120发起访问子应用程序的请求,访问请求中携带有母应用程序的用户标识和子应用程序的当前版本号。服务器中的接收模块1122接收到访问请求后,从版本存储模块1124中查找存储的子应用程序最新的版本号,根据最新的版本号判断当前版本号是为最新的版本号,如果不是,则获取灰度控制模块1126中的灰度计划,其中,灰度计划包括灰度状态以及相应的自定义灰度配置信息;接收灰度控制模块1126返回的灰度计划,然后根据灰度计划确定用户标识对应的目标版本号,将目标版本号对应的页面数据返回给第一终端。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图12所示,在一个实施例中,提出了一种应用程序发布装置,该装置包括:
发布状态获取模块1202,用于获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;
配置信息获取模块1204,用于当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
用户标识集获取模块1206,用于获取所述母应用程序中包含有所述子应用程序的用户标识集;
筛选模块1208,用于获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;
发布模块1210,用于将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
如图13所示,在一个实施例中,筛选模块1028包括:
灰度值计算模块1028A,用于根据所述用户标识计算各个用户标识对应的灰度值;
灰度百分比获取模块1028B,用于获取所述自定义灰度配置信息中包含的灰度百分比;
目标用户标识筛选模块1028C,用于将所述灰度值小于或等于所述灰度百分比的用户标识作为目标发布用户标识。
在一个实施例中,灰度值计算模块1028A还用于计算与每个用户标识对应的标识哈希值;对所述标识哈希值进行模运算得到与所述用户标识对应的灰度值。
如图14所示,在一个实施例中,上述应用程序发布装置还包括:
灰度撤回模块1212,用于当所述发布状态为灰度撤回时,获取所述子应用程序已更新为所述子应用程序待发布版本的目标撤回用户标识,获取所述子应用程序的上一版本信息,将所述上一版本信息发布至所述目标撤回用户标识对应的子应用程序。
在一个实施例中,所述配置信息获取模块还用于获取所述自定义灰度配置信息中包含的子应用程序待发布版本配置日期;当所述子应用程序待发布版本配置日期距离当前时刻的时长超过预设阈值时,修改所述发布状态为全量发布。
如图15所示,在一个实施例中,上述应用程序发布装置还包括:
接收模块1214,用于接收通过发布平台上传的子应用程序待发布版本,接收与所述子应用程序待发布版本对应的自定义灰度配置信息。
如图16所示,在一个实施例中,提出了一种应用程序发布装置,所述装置包括:
提取模块1602,用于接收第一终端对子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的环境中;
发布状态获取模块1604,用于当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;
自定义灰度配置信息获取模块1606,用于当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
发送模块1608,用于获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
如图17所示,在一个实施例中,上述应用程序发布装置还包括:
接收上传模块1610,用于接收第二终端通过发布平台上传的子应用程序待发布版本,接收与所述子应用程序待发布版本对应的自定义灰度配置信息。
在一个实施例中,上述应用程序发布装置还包括:
撤回模块,用于当所述当前版本信息是待发布版本信息时,获取所述子应用程序待发布版本对应的发布状态,当所述发布状态为撤回发布时,获取所述子应用程序的上一版本信息,将上一版本信息对应的页面数据发布至与所述用户标识对应的第一终端。
图18示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的服务器120。如图18所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现应用程序发布方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行应用程序发布方法。
本领域技术人员可以理解,图18中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的应用程序发布装置可以实现为一种计算机程序的形式,计算机程序可在如图18所示的计算机设备上运行。计算机设备的存储器中可存储组成该应用程序发布装置的各个程序模块,比如,图12所示的发布状态获取模块1202、配置信息获取模块1204、用户标识集获取模块1206、筛选模块1208和发布模块1210。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的应用程序发布方法中的步骤。例如,图18所示的计算机设备可以通过如图12所示的应用程序发布装置中的发布状态获取模块1202执行获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;通过配置信息获取模块1204执行当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;通过用户标识集获取模块1206执行获取所述母应用程序中包含有所述子应用程序的用户标识集;通过筛选模块1208执行获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;通过发布模块 1210执行将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;获取所述母应用程序中包含有所述子应用程序的用户标识集;获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
在一个实施例中,所述获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识的步骤包括:根据所述用户标识计算各个用户标识对应的灰度值;获取所述自定义灰度配置信息中包含的灰度百分比;将所述灰度值小于或等于所述灰度百分比的用户标识作为目标发布用户标识。
在一个实施例中,所述根据所述用户标识计算各个用户标识对应的灰度值的步骤包括:计算与每个用户标识对应的标识哈希值;对所述标识哈希值进行模运算得到与所述用户标识对应的灰度值。
在一个实施例中,所述计算机程序被所述处理器执行时,还使得所述处理器执行以下步骤:当所述发布状态为灰度撤回时,获取所述子应用程序已更新为所述子应用程序待发布版本的目标撤回用户标识;获取所述子应用程序的上一版本信息;将所述上一版本信息发布至所述目标撤回用户标识对应的子应用程序。
在一个实施例中,所述获取所述子应用程序待发布版本对应的自定义灰度配置信息的步骤包括:获取所述自定义灰度配置信息中包含的子应用程序待发布版本配置日期;当所述子应用程序待发布版本配置日期距离当前时刻的时长超过预设阈值时,修改所述发布状态为全量发布。
在一个实施例中,在所述获取与子应用程序待发布版本对应的发布状态的步骤之前,所述处理器还用于执行以下步骤:接收通过发布平台上传的子应用程序待发布版本,接收与所述子应用程序待发布版本对应的自定义灰度配置信息。
在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:接收第一终端对子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的环境中;当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
在一个实施例中,在所述获取子应用程序待发布版本对应的发布状态的步骤之前,所述处理器还用于执行以下步骤:接收第二终端通过发布平台上传的子应用程序待发布版本,接收与所述子应用程序待发布版本对应的自定义灰度配置信息。
在一个实施例中,所述计算机程序被所述处理器执行时,还使得所述处理器执行以下步骤:当所述当前版本信息是待发布版本信息时,获取所述子应用程序待发布版本对应的发布状态;当所述发布状态为撤回发布时,获取所述子应用程序的上一版本信息;将上一版本信息对应的页面数据发布至与所述用户标识对应的第一终端。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;获取所述母应用程序中包含有所述子应用程序的用户标识集;获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
在一个实施例中,所述获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识的步骤包括:根据所述用户标识计算各个用户标识对应的灰度值;获取所述自定义灰度配置信息中包含的灰度百分比;将所述灰度值小于或等于所述灰度百分比的用户标识作为目标发布用户标识。
在一个实施例中,所述根据所述用户标识计算各个用户标识对应的灰度值的步骤包括:计算与每个用户标识对应的标识哈希值;对所述标识哈希值进行模运算得到与所述用户标识对应的灰度值。
在一个实施例中,所述计算机程序被所述处理器执行时,还使得所述处理器执行以下步骤:当所述发布状态为灰度撤回时,获取所述子应用程序已更新为所述子应用程序待发布版本的目标撤回用户标识;获取所述子应用程序的上一版本信息;将所述上一版本信息发布至所述目标撤回用户标识对应的子应用程序。
在一个实施例中,所述获取所述子应用程序待发布版本对应的自定义灰度配置信息的步骤包括:获取所述自定义灰度配置信息中包含的子应用程序待发布版本配置日期;当所述子应用程序待发布版本配置日期距离当前时刻的时长超过预设阈值时,修改所述发布状态为全量发布。
在一个实施例中,在所述获取与子应用程序待发布版本对应的发布状态的步骤之前,所述处理器还用于执行以下步骤:接收通过发布平台上传的子应用程序待发布版本,接收与所述子应用程序待发布版本对应的自定义灰度配置信息。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:接收第一终端对子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的环境中;当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
在一个实施例中,在所述获取子应用程序待发布版本对应的发布状态的步骤之前,所述处理器还用于执行以下步骤:接收第二终端通过发布平台上传的子应用程序待发布版本,接收与所述子应用程序待发布版本对应的自定义灰度配置信息。
在一个实施例中,所述计算机程序被所述处理器执行时,还使得所述处理器执行以下步骤:当所述当前版本信息是待发布版本信息时,获取所述子应用程序待发布版本对应的发布状态;当所述发布状态为撤回发布时,获取所述子应用程序的上一版本信息;将上一版本信息对应的页面数据发布至与所述用户标识对应的第一终端。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率 SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种应用程序发布方法,所述方法包括:
获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;
当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
获取所述母应用程序中包含有所述子应用程序的用户标识集;
获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;
将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
2.根据权利要求1所述的方法,其特征在于,所述获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识的步骤包括:
根据所述用户标识计算各个用户标识对应的灰度值;
获取所述自定义灰度配置信息中包含的灰度百分比;
将所述灰度值小于或等于所述灰度百分比的用户标识作为目标发布用户标识。
3.根据权利要求2所述的方法,其特征在于,所述根据所述用户标识计算各个用户标识对应的灰度值的步骤包括:
计算与每个用户标识对应的标识哈希值;
对所述标识哈希值进行模运算得到与所述用户标识对应的灰度值。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述发布状态为灰度撤回时,获取所述子应用程序已更新为所述子应用程序待发布版本的目标撤回用户标识;
获取所述子应用程序的上一版本信息;
将所述上一版本信息发布至所述目标撤回用户标识对应的子应用程序。
5.根据权利要求1所述的方法,其特征在于,所述获取所述子应用程序待发布版本对应的自定义灰度配置信息的步骤包括:
获取所述自定义灰度配置信息中包含的子应用程序待发布版本配置日期;
当所述子应用程序待发布版本配置日期距离当前时刻的时长超过预设阈值时,修改所述发布状态为全量发布。
6.根据权利要求1所述的方法,其特征在于,在所述获取与子应用程序待发布版本对应的发布状态的步骤之前还包括:
接收通过发布平台上传的子应用程序待发布版本,接收与所述子应用程序待发布版本对应的自定义灰度配置信息。
7.一种应用程序发布方法,所述方法包括:
接收第一终端对子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的环境中;
当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;
当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
8.根据权利要求7所述的方法,其特征在于,在所述获取子应用程序待发布版本对应的发布状态的步骤之前还包括:
接收第二终端通过发布平台上传的子应用程序待发布版本,接收与所述子应用程序待发布版本对应的自定义灰度配置信息。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当所述当前版本信息是待发布版本信息时,获取所述子应用程序待发布版本对应的发布状态;
当所述发布状态为撤回发布时,获取所述子应用程序的上一版本信息;
将上一版本信息对应的页面数据发布至与所述用户标识对应的第一终端。
10.一种应用程序发布装置,所述装置包括:
发布状态获取模块,用于获取与子应用程序待发布版本对应的发布状态,所述子应用程序运行于母应用程序提供的环境中;
配置信息获取模块,用于当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
用户标识集获取模块,用于获取所述母应用程序中包含有所述子应用程序的用户标识集;
筛选模块,用于获取所述用户标识集中各个用户标识对应的灰度信息,根据各个用户标识对应的灰度信息和所述自定义灰度配置信息从所述用户标识集中筛选得到目标发布用户标识;
发布模块,用于将所述子应用程序待发布版本发布至所述目标发布用户标识对应的子应用程序。
11.根据权利要求10所述的装置,其特征在于,所述筛选模块包括:
灰度值计算模块,用于根据所述用户标识计算各个用户标识对应的灰度值;
灰度百分比获取模块,用于获取所述自定义灰度配置信息中包含的灰度百分比;
目标用户标识筛选模块,用于将所述灰度值小于或等于所述灰度百分比的用户标识作为目标发布用户标识。
12.根据权利要求11所述的装置,其特征在于,所述灰度值计算模块还用于计算与每个用户标识对应的标识哈希值;对所述标识哈希值进行模运算得到与所述用户标识对应的灰度值。
13.一种应用程序发布装置,所述装置包括:
提取模块,用于接收第一终端对子应用程序的访问请求,提取所述访问请求中的母应用程序的用户标识和所述子应用程序的当前版本信息,所述子应用程序运行于所述母应用程序提供的环境中;
发布状态获取模块,用于当所述当前版本信息不是待发布版本信息时,获取子应用程序待发布版本对应的发布状态;
自定义灰度配置信息获取模块,用于当所述发布状态为灰度发布时,获取所述子应用程序待发布版本对应的自定义灰度配置信息;
发送模块,用于获取所述用户标识对应的灰度信息,当根据所述用户标识对应的灰度信息和所述自定义灰度配置信息确定所述用户标识为目标发布用户标识时,将所述待发布版本信息对应的页面数据发送给所述第一终端。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710883266.9A CN109558162B (zh) | 2017-09-26 | 2017-09-26 | 应用程序发布方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710883266.9A CN109558162B (zh) | 2017-09-26 | 2017-09-26 | 应用程序发布方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558162A true CN109558162A (zh) | 2019-04-02 |
CN109558162B CN109558162B (zh) | 2021-08-10 |
Family
ID=65862960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710883266.9A Active CN109558162B (zh) | 2017-09-26 | 2017-09-26 | 应用程序发布方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558162B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086799A (zh) * | 2019-04-23 | 2019-08-02 | 广州腾讯科技有限公司 | 身份验证方法和装置 |
CN110489133A (zh) * | 2019-08-23 | 2019-11-22 | 亿企赢网络科技有限公司 | 一种灰度发布方法、系统及电子设备和存储介质 |
CN110928555A (zh) * | 2019-11-21 | 2020-03-27 | 广州品唯软件有限公司 | 一种灰度发布控制方法、装置、计算机设备及存储介质 |
CN111124888A (zh) * | 2019-11-28 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 录制脚本的生成方法和装置及电子装置 |
CN111309377A (zh) * | 2020-02-18 | 2020-06-19 | 北京达佳互联信息技术有限公司 | 灰度发布控制方法、装置、电子设备及存储介质 |
CN111443934A (zh) * | 2020-03-31 | 2020-07-24 | 广州市百果园信息技术有限公司 | 灰度用户确定方法、装置、设备及存储介质 |
CN111679966A (zh) * | 2020-04-27 | 2020-09-18 | 五八有限公司 | 灰度发布方法、装置、服务器及存储介质 |
CN112035161A (zh) * | 2020-08-31 | 2020-12-04 | 上海识装信息科技有限公司 | 一种小程序发布校验的方法及并行发布的方法 |
CN112799710A (zh) * | 2021-01-29 | 2021-05-14 | 上海明略人工智能(集团)有限公司 | 一种模型发布系统及模型发布方法 |
CN112835617A (zh) * | 2021-03-02 | 2021-05-25 | 北京字节跳动网络技术有限公司 | 一种灰度发布方法、装置、服务器及可读介质 |
CN113076118A (zh) * | 2020-01-06 | 2021-07-06 | 北京沃东天骏信息技术有限公司 | 应用程序更新方法和装置以及数据发送方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140115039A1 (en) * | 2005-01-27 | 2014-04-24 | Fmr Llc | A/B Testing |
CN105653440A (zh) * | 2014-11-13 | 2016-06-08 | 阿里巴巴集团控股有限公司 | 一种灰度发布方法和装置 |
CN106066791A (zh) * | 2016-05-25 | 2016-11-02 | 合网络技术(北京)有限公司 | 应用的灰度发布方法及装置 |
CN106502736A (zh) * | 2016-10-18 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 应用程序处理方法和装置 |
CN107145347A (zh) * | 2017-04-27 | 2017-09-08 | 努比亚技术有限公司 | 一种应用灰度发布方法、设备及存储介质 |
-
2017
- 2017-09-26 CN CN201710883266.9A patent/CN109558162B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140115039A1 (en) * | 2005-01-27 | 2014-04-24 | Fmr Llc | A/B Testing |
CN105653440A (zh) * | 2014-11-13 | 2016-06-08 | 阿里巴巴集团控股有限公司 | 一种灰度发布方法和装置 |
CN106066791A (zh) * | 2016-05-25 | 2016-11-02 | 合网络技术(北京)有限公司 | 应用的灰度发布方法及装置 |
CN106502736A (zh) * | 2016-10-18 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 应用程序处理方法和装置 |
CN107145347A (zh) * | 2017-04-27 | 2017-09-08 | 努比亚技术有限公司 | 一种应用灰度发布方法、设备及存储介质 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086799A (zh) * | 2019-04-23 | 2019-08-02 | 广州腾讯科技有限公司 | 身份验证方法和装置 |
CN110489133A (zh) * | 2019-08-23 | 2019-11-22 | 亿企赢网络科技有限公司 | 一种灰度发布方法、系统及电子设备和存储介质 |
CN110928555A (zh) * | 2019-11-21 | 2020-03-27 | 广州品唯软件有限公司 | 一种灰度发布控制方法、装置、计算机设备及存储介质 |
CN110928555B (zh) * | 2019-11-21 | 2023-04-18 | 广州品唯软件有限公司 | 一种灰度发布控制方法、装置、计算机设备及存储介质 |
CN111124888A (zh) * | 2019-11-28 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 录制脚本的生成方法和装置及电子装置 |
CN113076118A (zh) * | 2020-01-06 | 2021-07-06 | 北京沃东天骏信息技术有限公司 | 应用程序更新方法和装置以及数据发送方法和装置 |
CN111309377A (zh) * | 2020-02-18 | 2020-06-19 | 北京达佳互联信息技术有限公司 | 灰度发布控制方法、装置、电子设备及存储介质 |
CN111443934A (zh) * | 2020-03-31 | 2020-07-24 | 广州市百果园信息技术有限公司 | 灰度用户确定方法、装置、设备及存储介质 |
CN111679966A (zh) * | 2020-04-27 | 2020-09-18 | 五八有限公司 | 灰度发布方法、装置、服务器及存储介质 |
CN112035161A (zh) * | 2020-08-31 | 2020-12-04 | 上海识装信息科技有限公司 | 一种小程序发布校验的方法及并行发布的方法 |
CN112799710A (zh) * | 2021-01-29 | 2021-05-14 | 上海明略人工智能(集团)有限公司 | 一种模型发布系统及模型发布方法 |
CN112799710B (zh) * | 2021-01-29 | 2023-11-03 | 上海明略人工智能(集团)有限公司 | 一种模型发布系统及模型发布方法 |
CN112835617A (zh) * | 2021-03-02 | 2021-05-25 | 北京字节跳动网络技术有限公司 | 一种灰度发布方法、装置、服务器及可读介质 |
CN112835617B (zh) * | 2021-03-02 | 2024-04-02 | 北京字节跳动网络技术有限公司 | 一种灰度发布方法、装置、服务器及可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109558162B (zh) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109558162A (zh) | 应用程序发布方法、装置、计算机设备及存储介质 | |
US20140372963A1 (en) | Method and apparatus for customized software development kit (sdk) generation | |
CN109542529B (zh) | 基于函数名称的埋点方法、装置、计算机设备及存储介质 | |
CN108492005B (zh) | 项目数据处理方法、装置、计算机设备和存储介质 | |
CN110852695A (zh) | 任务审批方法、装置、服务器及存储介质 | |
CN109814917A (zh) | 微服务发布方法、装置、计算机设备和存储介质 | |
CN110347494B (zh) | 上下文信息管理方法、装置、系统及计算机可读存储介质 | |
CN105786460A (zh) | 一种基于服务组合的软件开发方法及装置 | |
CN110795171A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN109254921A (zh) | 应用版本验证方法、装置、计算机设备以及存储介质 | |
CN109766316A (zh) | 文件获取方法、装置、计算机设备和存储介质 | |
CN111190727A (zh) | 内存的异步析构方法、装置、计算机设备及存储介质 | |
CN105871960B (zh) | 调用数据共享的方法、装置及设备 | |
CN109684577A (zh) | 一种网页内容的配置方法、系统及电子设备 | |
CN113269488A (zh) | 智能柜的置物状态信息同步方法及装置 | |
CN110188081B (zh) | 基于cassandra数据库的日志数据存储方法、装置和计算机设备 | |
CN116661936A (zh) | 页面数据的处理方法、装置、计算机设备及存储介质 | |
CN109255016A (zh) | 基于深度学习的应答方法、装置及计算机可读存储介质 | |
CN110175030A (zh) | 一种api服务网关处理方法 | |
CN115330171A (zh) | 业务流程控制方法、装置、计算机设备及可读存储介质 | |
CN108897772B (zh) | 数据源补充方法、装置、计算机设备和存储介质 | |
CN112000403A (zh) | 信息发送方法、装置、计算机设备和存储介质 | |
CN106980515B (zh) | 一种应用升级方法及装置 | |
CN113645064B (zh) | 任务下发方法、装置、电子设备及存储介质 | |
CN116680203B (zh) | 面向多租户的SaaS平台的测试方法、装置、设备和介质 |
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 |