CN110716730A - 灰度发布方法、装置、设备及计算机可读存储介质 - Google Patents

灰度发布方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN110716730A
CN110716730A CN201910973312.3A CN201910973312A CN110716730A CN 110716730 A CN110716730 A CN 110716730A CN 201910973312 A CN201910973312 A CN 201910973312A CN 110716730 A CN110716730 A CN 110716730A
Authority
CN
China
Prior art keywords
process group
server engine
group
version server
engine
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
Application number
CN201910973312.3A
Other languages
English (en)
Other versions
CN110716730B (zh
Inventor
刘宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910973312.3A priority Critical patent/CN110716730B/zh
Publication of CN110716730A publication Critical patent/CN110716730A/zh
Application granted granted Critical
Publication of CN110716730B publication Critical patent/CN110716730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

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

灰度发布方法、装置、设备及计算机可读存储介质
技术领域
本公开涉及灰度发布技术,尤其涉及一种灰度发布方法、装置、设备及计算机可读存储介质。
背景技术
目前,游戏服务器技术包括一些通用的网络、数据存储、可见范围管理等模块,这些模块具备功能固定、消耗资源大等特征,因此大多数游戏服务器会将这些模块抽象用c++代码实现并封装成服务端引擎,对于具体的游戏项目来说只需要利用服务端引擎提供的底层功能,采用python、lua等脚本语言实现上层业务逻辑。
一般情况下,开发人员在日常工作中会对引擎进行优化,并对优化后的引擎进行测试,在测试通过后,将其上线正式使用。
但是,由于内外网的环境和流量差异,引擎在上线后难免会存在未被发现的错误,导致引擎上线后出现报错,甚至崩溃的问题。并且,现有技术中的引擎不支持热修复功能,当开发人员修复了引擎的错误后,只能在下一个维护周期对修复后的引擎进行发布,才能够对其进行验证,因此不能及时确定修复后的引擎是否还存在错误。
发明内容
本公开提供一种灰度发布方法、装置、设备及计算机可读存储介质,以解决现有技术中新版服务端引擎上线后可能会出错,而不能及时确定修复后的服务端引擎是否还存在错误的问题。
本公开的第一个方面是提供一种灰度发布方法,包括:
旧版服务端引擎启动时,根据所述旧版服务端引擎启动至少一个第一进程,并创建单点实例;
获取并广播所述单点实例的通信地址,以使所述第一进程中存储有所述通信地址;
根据接收的所述灰度发布指令启动至少一个第二进程,并将所述单点实例的通信地址写入所述第二进程;
其中,所述灰度发布指令包括新版服务端引擎信息。
本公开的另一个方面是提供一种灰度发布装置,包括:
第一启动模块,用于在旧版服务端引擎启动时,根据所述旧版服务端引擎启动至少一个第一进程,并创建单点实例;
广播模块,用于获取并广播所述单点实例的通信地址,以使所述第一进程中存储有所述通信地址;
第二启动模块,用于根据接收的所述灰度发布指令启动至少一个第二进程,并将所述单点实例的通信地址写入所述第二进程;
其中,所述灰度发布指令包括新版服务端引擎信息。
本公开的又一个方面是提供一种灰度发布设备,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如上述第一方面所述的灰度发布方法。
本公开的又一个方面是提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现如上述第一方面所述的XXX方法。
本公开提供的灰度发布方法、装置、设备及计算机可读存储介质的技术效果是:
本公开提供的灰度发布方法、装置、设备及计算机可读存储介质,包括:旧版服务端引擎启动时,根据旧版服务端引擎启动至少一个第一进程,并创建单点实例;获取并广播单点实例的通信地址,以使第一进程中存储有通信地址;根据接收的灰度发布指令启动至少一个第二进程,并将单点实例的通信地址写入第二进程;其中,灰度发布指令包括新版服务端引擎信息。本公开提供的灰度发布方法、装置、设备及计算机可读存储介质,可以以进程的粒度进行灰度发布,从而能够在服务器集群中同时运行新版本服务端引擎、旧版本服务端引擎,并且,根据旧版本服务端引擎创建单点实例后,才启动新版本服务端引擎,使得创建的单点实例与新版本服务端引擎相隔离,当新版本服务端引擎对应的进程被关闭后,不会影响这些单点实例的正常运行。
附图说明
图1为本发明一示例性实施例示出的灰度发布方法的流程图;
图1A为本发明一示例性实施例示出的一种服务器集群示意图;
图1B为本发明一示例性实施例示出的另一种服务器集群示意图;
图2为本发明另一示例性实施例示出的灰度发布方法的流程图;
图2A为本发明一示例性实施例示出的第三种服务器集群示意图;
图3为本发明一示例性实施例示出的灰度发布装置的结构图;
图4为本发明另一示例性实施例示出的灰度发布装置的结构图;
图5为本发明一示例性实施例示出的灰度发布设备的结构图。
具体实施方式
在发布新版本服务端引擎时,由于内外网的环境和流量差异,服务端引擎在上线后难免会存在未被发现的错误,导致服务端引擎上线后出现报错,甚至崩溃,并且上线周期长的问题。而绝大部分服务端引擎为了充分利用服务器硬件资源,在架构设计上会采用分布式的架构设计,即一个群组会由多台物理机器或者多个进程组成,这种采用分布式技术架构设计的服务器引擎称为分布式服务端引擎。
本实施例提供的方案为了解决上述技术问题,充分利用分布式服务端引擎的架构,以进程为粒度进行灰度发布,从而可以通过控制进程的方式,灵活的选择新旧版本服务端引擎,避免新版服务端引擎存未知错误造成崩溃的问题,还能够降低新版本服务端引擎的发布周期。
图1为本发明一示例性实施例示出的灰度发布方法的流程图。
如图1所示,本实施例提供的灰度发布方法包括:
步骤101,旧版本服务端引擎启动时,根据旧版服务端引擎启动至少一个第一进程,并创建单点实例。
其中,可以由服务器或服务器群组来执行本实施例提供的方法,例如可以是一款游戏的后台服务器群组。
具体的,可以设置有多个服务器群组,每个群组可以作为独立的服务器集群向用户提供服务器,不同群组间可以相互独立。每个服务器群组可以由若干台物理机器组成的分布式集群。
图1A为本发明一示例性实施例示出的一种服务器集群示意图。
如图1A所示,服务器集群包括多个服务器群组,每个服务器群组中可以开启多个第一进程。
进一步的,此处开启的服务端引擎所提供的功能较为稳定,例如可以是旧版的服务端引擎。该服务端引擎已经经过了线下测试、线上使用,其能够向玩家提供稳定的服务。例如,可以开启近期使用的服务端引擎,从而使用户能够通过该服务端引擎正常使用软件所提供的功能,比如玩家可以正常玩游戏。在服务端引擎开启期间,基于本实施例提供的方法,可以基于进程的粒度,发布新的服务端引擎。从而使服务器群组同时启用两套服务端引擎,通过对用户的迁移,能够使一部分用户使用旧服务端引擎提供的服务,另一部分用户使用新服务端引擎提供的服务。
实际应用时,在旧版服务端引擎启动时,可以基于该服务端引擎启动至少一个第一进程。这部分进程是基于旧版服务端引擎的架构启用的,可以认为这部分进程是可靠的,能够稳定的向用户提供服务。
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是***进行资源分配和调度的基本单位,是操作***结构的基础。
其中,还可以在启动第一进程后创建单点实例,可以创建多个单点实例。服务器群组可以通过第一进程运行创建的单点实例。
此处创建的单点实例是指整个集群唯一的对象,比如说副本管理器对应的单点实例。所有申请副本的请求都会先跟副本管理器通信,取得批准以后才可以申请。这样的全局实例是单点的。
本实施例提供的方案中,通过旧版服务端引擎创建单点实例,从而使单点实例运行在第一进程上,从而达到单点实例稳定运行的效果。
步骤102,获取并广播单点实例的通信地址,以使第一进程中存储有通信地址。
具体的,服务器群组可以获取创建的单点实例的通信地址,具体可以是IP地址与端口的组合,还可以广播获取的通信地址至每个第一进程,以使第一进程中能够存储各个单点实例的通信地址。
进一步的,第一进程可以通过存储的地址与单点实例进行通信,以便后续进程可以访问创建的单点实例。
实际应用时,在第一进程被启动、单点实例被创建后,可以认为服务器集群正常启动,能够向用户提供服务。例如,若服务器集群为游戏后台,则在第一进程被启动、单点实例被创建后,可以开放服务器,使玩家访问服务器集群。
步骤103,根据接收的灰度发布指令启动至少一个第二进程,并将单点实例的通信地址写入第二进程。
其中,本实施例可以在服务器集群向用户提供服务的过程中,进行灰度发布,从而对新版服务端引擎的功能进行线上测试。
具体的,灰度发布是指是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体***的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
进一步的,灰度发布指令可以是开发人员向服务器集群发送的指令,该指令可以作用于每个服务器群组。例如,开发人员对服务端引擎进行优化并在线下测试后,可以在线上对其进行测试。此时,可以向服务器集群发送灰度发布指令。
实际应用时,灰度发布指令还可以包括需要被测试的新版服务端引擎信息,例如开发人员将优化后的服务端引擎存储在服务器集群中,然后选择该已经优化后的服务端引擎,再点击灰度发布的按键,从而向服务器集群发送灰度发布指令。
其中,服务器群组接收到灰度发布指令后,可以根据该发布指令启动第二进程,第二进程用于运行新版服务端引擎。
图1B为本发明一示例性实施例示出的另一种服务器集群示意图。
如图1B所示,在每个服务器群组中,可以同时启动至少一个第一进程、至少一个第二进程,使得服务器集群能够同时运行新版服务端引擎和旧版服务端引擎。
具体的,还可以将已经创建的单点实例的通信地址写入第二进程,以使第二进程能够访问这些单点实例。
进一步的,本实施例提供的方法中,可以同时在服务器群组中启动用于执行旧版服务端引擎功能、新版服务端引擎功能的进程,从而可以通过不同的进程向用户提供服务,进而实现灰度发布。并且,创建的单点实例是运行在第一进程上的,即使新版服务端引擎被关闭,也不会影响单点实例的运行。
实际应用时,若发现第二进程存在问题,则可以直接将第二进程上的用户迁移到第一进程中,还可以关闭第二进程,从而避免新版本服务端引擎存在bug导致崩溃的问题。而且采用本实施例提供的方法,可以随时发布新版服务端引擎,从而缩短新版服务端引擎的测试周期。并且,本实施例提供的方案中,在灰度发布之前创建了单点实例,因此,即使第二进程被关闭,也不会影响到这些单点实例的正常运行。
其中,还可以根据需求对流量进行分配,例如,新版服务端引擎刚刚发布,不确定其稳定性,可以将较少的流量引入新服务端引擎中。此时,可以将一部分流量嵌入到新版服务端引擎中。具体可以通过第二进程向这部分流量提供服务,从而在线上测试新版服务端引擎的性能。比如,当一用户终端向服务器发送请求后,可以通过一个第二进程对该请求进行处理。
具体的,在新版服务端引擎启动后,也可以创建一些实例,这些实例往往仅服务于第二进程,通常是根据业务逻辑创建的,因此,即使新版服务端引擎退出,导致第二进程被关闭,也不会影响整个服务群组向用户提供服务。
本实施例提供的方法用于灰度发布,该方法由设置有本实施例提供的方法的设备执行,该设备通常以硬件和/或软件的方式来实现。
本实施例提供的灰度发布方法,包括:旧版服务端引擎启动时,根据旧版服务端引擎启动至少一个第一进程,并创建单点实例;获取并广播单点实例的通信地址,以使第一进程中存储有通信地址;根据接收的灰度发布指令启动至少一个第二进程,并将单点实例的通信地址写入第二进程;其中,灰度发布指令包括新版服务端引擎信息。本实施例提供的灰度发布方法,可以以进程的粒度进行灰度发布,从而能够在服务器集群中同时运行新版本服务端引擎、旧版本服务端引擎,并且,根据旧版本服务端引擎创建单点实例后,才启动新版本服务端引擎,使得创建的单点实例与新版本服务端引擎相隔离,当新版本服务端引擎对应的进程被关闭后,不会影响这些单点实例的正常运行。
图2为本发明另一示例性实施例示出的灰度发布方法的流程图。
如图2所示,本实施例提供的灰度发布方法,包括:
步骤201,旧版服务端引擎启动时,根据旧版服务端引擎启动至少一个第一进程,并创建单点实例。
步骤201与步骤101的具体原理和实现方式类似,此处不再赘述。
步骤202,将第一进程加入常驻进程组。
其中,本实施例提供的方法,服务器群组中还可以创建一常驻进程组,可以将启动的第一进程加入该常驻进程组,从而便于对第一进程进行管理。常驻进程组用于存储旧版服务端引擎启动时运行的进程,这些进程用于实现旧版服务端引擎的功能。
具体的,旧版服务端引擎性能稳定,因此,可以在服务器向用户提供服务的时间段,使常驻进程组中的第一进程处于开启状态,从而能够通过稳定的旧版服务端引擎向用户提供服务。
步骤203,获取并广播单点实例的通信地址,以使第一进程中存储有通信地址。
步骤204,根据接收的灰度发布指令启动至少一个第二进程,并将单点实例的通信地址写入第二进程。
其中,灰度发布指令包括新版服务端引擎信息。
步骤203-204与步骤102-103的具体原理和实现方式类似,此处不再赘述。
步骤205,将第二进程加入动态进程组。
其中,本实施例提供的方法,服务器群组中还可以创建一动态进程组,可以将启动的第二进程加入该动态进程组,从而便于对第二进程进行管理。动态进程组用于存储旧版服务器端启动后启动的进程。
具体的,第二进程用于运行新版服务端引擎,可以在需要对新版服务端引擎进行测试时,启动第二进程,从而运行新版服务端引擎。
进一步的,若同时启动多个新版服务端引擎,则可以设置每个新版服务端引擎对应的动态进程组,用于存储各个新版服务端引擎对应的第二进程。本实施例以一个新版服务端引擎进行说明,但不限于此。
图2A为本发明一示例性实施例示出的第三种服务器集群示意图。
如图2A所示,在每个服务器群组中设置有常驻进程组、动态进程组,分别用于执行旧版服务端引擎、新版服务端引擎的功能。
可选的,每个服务器群组还可以设置有进程管理器,可以通过服务器群组中的进程管理器执行本实施例提供的方法。
步骤206,接收用户登录请求,根据预设发布需求确定登录请求对应的目标进程组。
步骤207,根据目标进程组中包括的进程响应用户登录请求。
实际应用时,在新版服务端引擎被启动后,当服务器群组接收用户的登录请求后,可以通过旧版服务端引擎响应用户的登录请求,也可以根据旧版服务端引擎响应用户的登陆请求。用户可以在客户端选择加入的服务器,从而使得对应的服务器群组接收到登录请求。
其中,具体可以根据预设灰度发布需求确定用于响应登录请求的服务端引擎。例如,新版服务端引擎刚发布,还没有用户端使用新版服务端引擎所提供的服务,则可以通过新版服务端引擎响应当前接收的用户登陆请求。
具体的,服务端引擎的功能是通过启动的进程实现的,因此,可以具体确定目标进程组,并根据目标进程组中包括的进程响应用户登录请求。
进一步的,根据预设发布需求确定常驻进程组与动态进程组的流量关系;根据常驻进程组的实际流量、动态进程组的实际流量、流量关系,确定登录请求对应的目标进程组。
例如,预设发布需求包括重点测试新版服务端引擎,则可以确定动态进程组的流量大于常驻进程组的流量,具体还可以设置二者流量比值。在接受用户登录请求后,可以获取常驻进程组、动态进程组分别对应的实际流量,即常驻进程组、动态进程组实际处理的流量值。假设常驻进程组的实际流量大于或等于动态进程组的实际流量,则将动态进程组确定为目标进程组,再例如,可以根据两个实际流量确定比值,并与预设的比值相比,根据比对结果确定目标进程组。
再例如,若预设发布需求包括稳定测试,采用小流量测试新版服务端引擎。此时,则可以确定动态进程组的流量小于常驻进程组的流量,可以设置二者比值,也可以设置具体的预设动态流量,例如可以是1000万用户。获取常驻进程组、动态进程组对应的实际流量,若常驻进程组的实际流量小于或等于动态进程组的实际流量,则可以通过常驻进程组的进程响应用户登录请求。
再例如,若预设发布需求包括使用一半流程测试新版服务端引擎,则可以确定动态进程组的流量应当等于常驻进程组的流量。可以获取常驻进程组、动态进程组对应的实际流量,并比对这两个实际流程,可以将实际流量较少的进程组作为目标进程组。
其中,本实施例提供的方法能够根据实际的发布需求确定新、旧引擎处理的流量关系,进而能够向新、旧服务端引擎对应的进程组分配流量,实现流量完全可控。
步骤208,接收迁移指令,根据迁移指令确定目标场景对象,并将迁移指令对应的角色对象迁移至目标场景对象。
具体的,本实施例提供的方法,还可以对角色进行迁移。
可以接收迁移指令,例如,当几个用户组队打副本时,其中一个角色可以先进入副本,再通过一定的方式召唤其他队友进入副本。例如,可以通过法术召唤其他队友。其他队友接收召唤后,可以进入同一个副本。在这种情况下,可以接收到迁移指令,可以在其他队友接收召唤后,触发接收该迁移指令。
其中,可以根据迁移指令确定目标场景对象。在上述例子中,召唤其他队友的角色所在的场景对象即为目标场景对象,而接收队友召唤的角色,即是与迁移指令对应的角色。例如一用户A召唤队友B,且B接收了这一召唤请求,则可以将B迁移至A所在的目标场景对象中。
具体的,在另一种实施方式中,还可以根据迁移指令通过常驻进程组或动态进程组中的进程创建目标场景对象。例如,需要关闭灰度发布时,可以获取动态进程组中已创建的场景对象,并在常驻进程组中创建相应的场景对象,再将动态进程组中的角色对象迁移至常驻进程组中创建的场景对象中。
进一步的,再例如灰度发布一段时间后,若认为新版服务端引擎趋于稳定,则可以将更多的使用旧版服务端引擎的用户迁移至新版服务端引擎中。此时,可以选择常驻进程组中部分或全部的场景对象,并在动态进程组中创建相应的场景对象,然后对这些场景对象中的角色对象进行迁移。
实际应用时,同一个场景对象中的角色之间是可见的。例如,队列1中的角色都进入了副本M,则这些角色处于同一场景对象中。再例如,队列2中的角色也进入了副本M,但是队列1与队列2之间的角色互不可见,则这两个队列处于不同的场景对象。即使两个场景对象中的场景完全相同,例如是相同副本,但是在服务器底层,这是两个不同的场景对象。
步骤209,接收场景创建指令,确定场景创建指令对应的场景对象是否为灰度场景。
若是,则执行步骤210,若否,则执行步骤211。
其中,本实施例提供的方法中,服务器群组还可以接收场景创建指令,并根据该创建指令创建新的场景对象。
具体的,例如当一用户希望进入副本时,用户端会向连接的服务器群组发送创建该副本对应的场景对象的指令。
进一步的,服务器群组可以根据场景创建指令对应的场景对象是否为灰度场景。场景创建指令中还可以包括需要创建的场景标识,例如场景标号。此时,服务器群组可以根据场景标号确定该场景对象是否为一灰度场景。
实际应用时,可以预先设置一些灰度场景,例如开发人员优化了服务端引擎,优化后的服务端引擎会对一些场景对象产生影响,则可以将这些场景对象预先设置为灰度场景。
步骤210,通过动态进程组中的进程创建场景对象。
其中,若需要创建的场景对象是一灰度场景,即是需要进行线上测试的场景对象,则可以通过动态进程组中的进程创建场景对象,也就是使用新版服务端引擎的功能创建场景对象,能够对新版服务端引擎进行测试。
步骤211,通过常驻进程组中的进程创建场景对象。
具体的,若需要创建的场景对象不是灰度场景,则可以通过常驻进程组中的进程创建场景对象,从而向用户提供更加稳定的服务。
步骤212,获取动态进程组中运行的已有场景对象,通过常驻进程组中包括的进程创建已有场景对象。
步骤213,将在动态进程组中的角色对象迁移至常驻进程组中对应的已有场景对象中。
进一步的,本实施例提供的方法,还可以包括将动态进程组中的角色对象全部迁移到常驻进程组的方案。例如,当动态进程组出现问题后,例如报错增多、出现崩溃信息等情况时,可以触发步骤212-213的执行,还可以由开发人员触发该步骤,例如,开发人员可以手动关闭动态进程组,进而触发步骤212-213的执行。
实际应用时,可以获取动态进程组中运行的已有场景对象,具体可以获取全部的场景对象,并通过常驻进程组中包括的进程创建已有场景对象。例如将动态进程组中已有100个场景对象,即新版服务端引擎为用户创建了100个场景对象,若直接关闭动态进程组,则会导致没有向这些用户的客户端提供服务的进程,导致客户端报错甚至崩溃。因此,本实施例提供的方案中,可以通过驻进程组中包括的进程创建这100个已有场景对象,即通过旧版服务端引擎创建这些场景对象,并将动态进程组中的角色对象迁移至对应的新创建的场景对象中。
其中,获取动态进程组中运行的已有场景对象时,还可以获取每个已有场景对象中存在的角色对象,从而在迁移角色对象时,准确的将角色对象迁移至其对应的场景对象中。例如,角色甲原本在动态进程组创建的场景对象1中,则可以通过常驻进程组创建与场景对象1的场景相同的场景对象2,并将角色甲迁移至场景对象2中。在用户的客户端界面中,角色甲仍然处于相同的游戏场景中,因此,对于用户来说,本实施例提供的方法能够做到无感知迁移。
具体的,步骤206、208、209、212的执行时序不做限制,这些步骤之间可以是并行的关系。
图3为本发明一示例性实施例示出的灰度发布装置的结构图。
如图3所示,本实施例提供的灰度发布装置,包括:
第一启动模块31,用于在旧版服务端引擎启动时,根据所述旧版服务端引擎启动至少一个第一进程,并创建单点实例;
广播模块32,用于获取并广播所述单点实例的通信地址,以使所述第一进程中存储有所述通信地址;
第二启动模块33,用于根据接收的所述灰度发布指令启动至少一个第二进程,并将所述单点实例的通信地址写入所述第二进程;
其中,所述灰度发布指令包括新版服务端引擎信息。
本实施例提供的灰度发布装置,包括:第一启动模块,用于在旧版服务端引擎启动时,根据旧版服务端引擎启动至少一个第一进程,并创建单点实例;广播模块,用于获取并广播单点实例的通信地址,以使第一进程中存储有通信地址;第二启动模块,用于根据接收的灰度发布指令启动至少一个第二进程,并将单点实例的通信地址写入第二进程;其中,灰度发布指令包括新版服务端引擎信息。本实施例提供的灰度发布装置,可以以进程的粒度进行灰度发布,从而能够在服务器集群中同时运行新版本服务端引擎、旧版本服务端引擎,并且,根据旧版本服务端引擎创建单点实例后,才启动新版本服务端引擎,使得创建的单点实例与新版本服务端引擎相隔离,当新版本服务端引擎对应的进程被关闭后,不会影响这些单点实例的正常运行。
本实施例提供的灰度发布装置的具体原理和实现方式均与图1所示的实施例类似,此处不再赘述。
图4为本发明另一示例性实施例示出的灰度发布装置的结构图。
如图4所示,在上述实施例的基础上,本实施例提供的灰度发布装置,可选的,所述装置还包括分组模块34,用于:
将所述第一进程加入常驻进程组,将所述第二进程加入动态进程组。
其中,所述常驻进程组用于存储所述旧版服务端引擎启动时运行的进程,所述动态进程组用于存储所述旧版服务器端启动后启动的进程。
可选的,所述装置还包括登陆请求处理模块35,用于:
接收用户登录请求,根据预设发布需求确定所述登录请求对应的目标进程组;
根据所述目标进程组中包括的进程响应所述用户登录请求。
可选的,所述登陆请求处理模块35具体用于:
根据所述预设发布需求确定所述常驻进程组与所述动态进程组的流量关系;
根据所述常驻进程组的实际流量、所述动态进程组的实际流量、所述流量关系,确定所述登录请求对应的目标进程组。
可选的,所述装置还包括第一迁移模块36,用于:
接收迁移指令,根据所述迁移指令确定目标场景对象,并将所述迁移指令对应的角色对象迁移至所述目标场景对象。
可选的,所述第一迁移模块36具体用于:
根据所述迁移指令通过常驻进程组或动态进程组中的进程创建所述目标场景对象。
可选的,所述装置还包括创建指令处理模块37,用于:
接收场景创建指令,确定所述场景创建指令对应的场景对象是否为灰度场景;
若是,则通过所述动态进程组中的进程创建场景对象;
若否,则通过所述常驻进程组中的进程创建场景对象。
可选的,所述装置还包括第二迁移模块37,用于:
获取所述动态进程组中运行的已有场景对象,通过所述常驻进程组中包括的进程创建所述已有场景对象;
将在所述动态进程组中的角色对象迁移至所述常驻进程组中对应的已有场景对象中。
本实施例提供的灰度发布装置的具体原理和实现方式均与图2所示的实施例类似,此处不再赘述。
图5为本发明一示例性实施例示出的灰度发布设备的结构图。
如图5所示,本实施例提供的灰度发布设备包括:
存储器51;
处理器52;以及
计算机程序;
其中,所述计算机程序存储在所述存储器51中,并配置为由所述处理器52执行以实现如上所述的任一种灰度发布方法。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,
所述计算机程序被处理器执行以实现如上所述的任一种灰度发布方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (11)

1.一种灰度发布方法,其特征在于,包括:
旧版服务端引擎启动时,根据所述旧版服务端引擎启动至少一个第一进程,并创建单点实例;
获取并广播所述单点实例的通信地址,以使所述第一进程中存储有所述通信地址;
根据接收的所述灰度发布指令启动至少一个第二进程,并将所述单点实例的通信地址写入所述第二进程;
其中,所述灰度发布指令包括新版服务端引擎信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
将所述第一进程加入常驻进程组,将所述第二进程加入动态进程组;
其中,所述常驻进程组用于存储所述旧版服务端引擎启动时运行的进程,所述动态进程组用于存储所述旧版服务器端启动后启动的进程。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收用户登录请求,根据预设发布需求确定所述登录请求对应的目标进程组;
根据所述目标进程组中包括的进程响应所述用户登录请求。
4.根据权利要求3所述的方法,其特征在于,所述根据预设发布需求确定所述登录请求对应的目标进程组,包括:
根据所述预设发布需求确定所述常驻进程组与所述动态进程组的流量关系;
根据所述常驻进程组的实际流量、所述动态进程组的实际流量、所述流量关系,确定所述登录请求对应的目标进程组。
5.根据权利要求2所述的方法,其特征在于,还包括:
接收迁移指令,根据所述迁移指令确定目标场景对象,并将所述迁移指令对应的角色对象迁移至所述目标场景对象。
6.根据权利要求5所述的方法,其特征在于,所述根据所述迁移指令确定目标场景对象,包括:
根据所述迁移指令通过常驻进程组或动态进程组中的进程创建所述目标场景对象。
7.根据权利要求2所述的方法,其特征在于,还包括:
接收场景创建指令,确定所述场景创建指令对应的场景对象是否为灰度场景;
若是,则通过所述动态进程组中的进程创建场景对象;
若否,则通过所述常驻进程组中的进程创建场景对象。
8.根据权利要求2所述的方法,其特征在于,所述动态进程组出现问题后,所述方法还包括:
获取所述动态进程组中运行的已有场景对象,通过所述常驻进程组中包括的进程创建所述已有场景对象;
将在所述动态进程组中的角色对象迁移至所述常驻进程组中对应的已有场景对象中。
9.一种灰度发布装置,其特征在于,包括:
第一启动模块,用于在旧版服务端引擎启动时,根据所述旧版服务端引擎启动至少一个第一进程,并创建单点实例;
广播模块,用于获取并广播所述单点实例的通信地址,以使所述第一进程中存储有所述通信地址;
第二启动模块,用于根据接收的所述灰度发布指令启动至少一个第二进程,并将所述单点实例的通信地址写入所述第二进程;
其中,所述灰度发布指令包括新版服务端引擎信息。
10.一种灰度发布设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并配置为由所述处理器执行以实现如权利要求1-8任一种所述的方法。
11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,
所述计算机程序被处理器执行以实现如权利要求1-8任一种所述的方法。
CN201910973312.3A 2019-10-14 2019-10-14 灰度发布方法、装置、设备及计算机可读存储介质 Active CN110716730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910973312.3A CN110716730B (zh) 2019-10-14 2019-10-14 灰度发布方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910973312.3A CN110716730B (zh) 2019-10-14 2019-10-14 灰度发布方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110716730A true CN110716730A (zh) 2020-01-21
CN110716730B CN110716730B (zh) 2023-09-26

Family

ID=69211571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910973312.3A Active CN110716730B (zh) 2019-10-14 2019-10-14 灰度发布方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110716730B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947969A (zh) * 2021-03-10 2021-06-11 支付宝(杭州)信息技术有限公司 一种页面离屏渲染方法、装置、设备和可读介质
CN113626068A (zh) * 2020-05-09 2021-11-09 北京沃东天骏信息技术有限公司 一种页面管理方法和装置

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653328A (zh) * 2015-12-29 2016-06-08 百度在线网络技术(北京)有限公司 大内存服务的多版本程序的并存方法和装置
CN106469154A (zh) * 2015-08-17 2017-03-01 阿里巴巴集团控股有限公司 一种用于发布网页应用的方法与设备
CN107656748A (zh) * 2017-09-08 2018-02-02 北京京东尚科信息技术有限公司 应用发布的方法和装置
CN108076088A (zh) * 2016-11-10 2018-05-25 ***通信集团安徽有限公司 基于电信网络的通信业务***及其版本发布方法
CN108376118A (zh) * 2018-02-09 2018-08-07 腾讯科技(深圳)有限公司 服务发布***、方法、设备及存储介质
CN108446219A (zh) * 2018-03-01 2018-08-24 网易宝有限公司 应用程序的操作方法、***、介质和计算设备
US20190050272A1 (en) * 2017-08-14 2019-02-14 International Business Machines Corporation Container based service management
CN109391512A (zh) * 2018-09-28 2019-02-26 阿里巴巴集团控股有限公司 一种服务发布方法、装置及电子设备
CN109729138A (zh) * 2018-06-01 2019-05-07 平安普惠企业管理有限公司 客户端资源更新方法、设备、客户端及存储介质
CN109814910A (zh) * 2018-12-14 2019-05-28 深圳壹账通智能科技有限公司 自动化灰度发布方法、装置、计算机***及存储介质
CN110071960A (zh) * 2019-03-12 2019-07-30 平安科技(深圳)有限公司 管理灰度发布的方法、***、设备及存储介质
CN110162382A (zh) * 2019-04-09 2019-08-23 平安科技(深圳)有限公司 基于容器的灰度发布方法、装置、计算机设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469154A (zh) * 2015-08-17 2017-03-01 阿里巴巴集团控股有限公司 一种用于发布网页应用的方法与设备
CN105653328A (zh) * 2015-12-29 2016-06-08 百度在线网络技术(北京)有限公司 大内存服务的多版本程序的并存方法和装置
CN108076088A (zh) * 2016-11-10 2018-05-25 ***通信集团安徽有限公司 基于电信网络的通信业务***及其版本发布方法
US20190050272A1 (en) * 2017-08-14 2019-02-14 International Business Machines Corporation Container based service management
CN107656748A (zh) * 2017-09-08 2018-02-02 北京京东尚科信息技术有限公司 应用发布的方法和装置
CN108376118A (zh) * 2018-02-09 2018-08-07 腾讯科技(深圳)有限公司 服务发布***、方法、设备及存储介质
CN108446219A (zh) * 2018-03-01 2018-08-24 网易宝有限公司 应用程序的操作方法、***、介质和计算设备
CN109729138A (zh) * 2018-06-01 2019-05-07 平安普惠企业管理有限公司 客户端资源更新方法、设备、客户端及存储介质
CN109391512A (zh) * 2018-09-28 2019-02-26 阿里巴巴集团控股有限公司 一种服务发布方法、装置及电子设备
CN109814910A (zh) * 2018-12-14 2019-05-28 深圳壹账通智能科技有限公司 自动化灰度发布方法、装置、计算机***及存储介质
CN110071960A (zh) * 2019-03-12 2019-07-30 平安科技(深圳)有限公司 管理灰度发布的方法、***、设备及存储介质
CN110162382A (zh) * 2019-04-09 2019-08-23 平安科技(深圳)有限公司 基于容器的灰度发布方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEIXIN_34258838: "haproxy控制下的灰度发布策略", pages 1 - 2 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626068A (zh) * 2020-05-09 2021-11-09 北京沃东天骏信息技术有限公司 一种页面管理方法和装置
CN112947969A (zh) * 2021-03-10 2021-06-11 支付宝(杭州)信息技术有限公司 一种页面离屏渲染方法、装置、设备和可读介质

Also Published As

Publication number Publication date
CN110716730B (zh) 2023-09-26

Similar Documents

Publication Publication Date Title
CN109787830B (zh) 灰度发布控制方法、装置、***、电子设备及存储介质
CN107534571B (zh) 用于管理虚拟网络功能的方法、***和计算机可读介质
WO2016184045A1 (zh) 一种网络业务扩容的方法和装置
WO2019037203A1 (zh) 应用程序的性能测试方法、装置、计算机设备和存储介质
US9342328B2 (en) Model for simulation within infrastructure management software
WO2017016212A1 (zh) 桌面云***的测试方法及装置
CN107179986B (zh) 业务***的压力测试方法和装置
CN103685351B (zh) 一种基于云计算平台的缓存服务节点的调度方法和设备
US20220382936A1 (en) Method and system for micro-service testing, and storage medium
US11843674B2 (en) Virtual workspace experience visualization and optimization
CN104580302A (zh) 云服务管理***及云联云管理***
JP2023523242A (ja) データ処理方法、データ処理装置、コンピュータ機器、及びコンピュータプログラム
CN110716730B (zh) 灰度发布方法、装置、设备及计算机可读存储介质
CN115328752A (zh) 一种用于Kubernetes控制面测试的集群模拟方法及***
CN111581077A (zh) 智能合约测试方法、装置
US10176067B1 (en) On-demand diagnostics in a virtual environment
CN110888800A (zh) 服务交互功能的测试方法、装置、存储介质及测试***
CN108345508B (zh) 接口调用测试方法和装置
CN113900939A (zh) 测试环境访问方法、装置、可读存储介质和计算机设备
EP4006725A1 (en) Virtual machine migration processing and strategy generation method, apparatus and device, and storage medium
US20220038444A1 (en) Cloud device, application processing method, electronic device and storage medium
CN113076248B (zh) 一种应用处理方法、装置、设备及可读存储介质
US9176797B1 (en) Workflow processing and methods for auditing and playback of data
US20220164168A1 (en) Generating mock services based on log entries
US20220255808A1 (en) Methods, systems, and computer readable media for establishing dynamic agent associations in a cloud computing environment

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