CN108376118A - 服务发布系统、方法、设备及存储介质 - Google Patents

服务发布系统、方法、设备及存储介质 Download PDF

Info

Publication number
CN108376118A
CN108376118A CN201810135823.3A CN201810135823A CN108376118A CN 108376118 A CN108376118 A CN 108376118A CN 201810135823 A CN201810135823 A CN 201810135823A CN 108376118 A CN108376118 A CN 108376118A
Authority
CN
China
Prior art keywords
gray scale
lists
service
user identifier
destination service
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
CN201810135823.3A
Other languages
English (en)
Other versions
CN108376118B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810135823.3A priority Critical patent/CN108376118B/zh
Publication of CN108376118A publication Critical patent/CN108376118A/zh
Application granted granted Critical
Publication of CN108376118B publication Critical patent/CN108376118B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

本申请公开了一种服务发布系统、方法、设备及存储介质,属于软件发布领域。所述系统包括:灰度任务设备用于接收目标服务的灰度任务;根据所述灰度任务生成灰度路由规则;路由管理设备用于从所述灰度任务设备获取所述灰度路由规则;接收至少一个请求设备发送的用户标识;在所述用户标识未命中所述灰度用户标识段时,向所述请求设备返回所述第一IP列表;在所述用户标识命中所述灰度用户标识段时,向所述请求设备返回所述第二IP列表。本申请使得提供目标服务的服务器中不需要添加冗余的代码逻辑,减少重复性的代码开发和代码复杂度,能够为整个服务集群提供一个通用和统一的灰度发布解决方案。

Description

服务发布系统、方法、设备及存储介质
技术领域
本申请实施例涉及软件发布领域,特别涉及一种服务发布系统、方法、设备及存储介质。
背景技术
在互联网服务方的服务器集群中提供有多个服务。在升级目标服务时,可采用灰度发布方式进行服务发布。灰度发布方式是将旧版本的目标服务逐渐替换为新版本的目标服务的发布方式。
相关技术提供有基于用户的灰度发布方式,在提供目标服务的服务器中设置用户标识段的识别逻辑。当用户属于普通用户标识段时,使用户访问旧版本的目标服务;当用户属于灰度用户标识段时,使用户访问新版本的目标服务。
由于用户标识段的识别逻辑是在服务器中添加代码实现的,当存在多个服务和/或存在多次灰度发布时,会引入较多的重复性代码开发工作,同时会提高服务器中的代码复杂度。
发明内容
本申请提供了一种服务发布系统、方法、设备及存储介质,可以解决相关技术需要在服务器中添加代码来实现用户标识段的识别,导致重复性代码开发以及代码复杂度的问题。所述技术方案如下:
根据本申请的一方面,提供了一种服务发布系统,所述系统包括:灰度任务设备和路由管理设备;
所述灰度任务设备,用于接收目标服务的灰度任务;根据所述灰度任务向已具有第一版本的所述目标服务的服务器,逐渐发布第二版本的所述目标服务;根据所述灰度任务生成灰度路由规则,所述灰度路由规则包括用户标识段与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器;向所述路由管理设备提供所述灰度路由规则;
所述路由管理设备,用于获取所述灰度路由规则;接收至少一个请求设备发送的用户标识;根据所述用户标识和所述灰度路由规则,确定所述用户标识是否命中灰度用户标识段;当所述用户标识未命中所述灰度用户标识段时,向所述请求设备发送所述第一IP列表;当所述用户标识命中所述灰度用户标识段时,向所述请求设备发送所述第二IP列表。
在一个可选的实施例中,所述灰度任务设备,用于根据所述灰度任务中的灰度速度确定第i执行单元;通过所述第i执行单元将所述第一IP列表中的第i组IP地址剔除;通过所述第i执行单元向所述第i组IP地址对应的第一服务器进行第二版本的服务升级操作;当所述第二版本的服务升级操作成功后,将所述第i组IP地址添加至所述第二IP列表中。
在一个可选的实施例中,所述灰度任务设备,还用于根据所述灰度任务中的灰度速度确定灰度用户标识段,根据所述灰度用户标识段和所述第二IP列表生成第一对应关系,根据除所述灰度用户标识段之外的普通用户标识段和所述第一IP列表生成第二对应关系;将所述第一对应关系和所述第二对应关系确定为所述灰度路由规则。
在一个可选的实施例中,所述灰度任务设备,还用于当所述目标服务处于全量发布状态时,将所述第一IP列表中的第一IP地址剔除;向所述第一IP地址对应的第一服务器进行第二版本的服务升级操作;当所述配置发布和所述软件服务包升级操作成功后,将所述第一IP地址全部添加至所述第二IP列表中。
在一个可选的实施例中,所述灰度任务设备,还用于当所述目标服务处于灰度回滚状态时,将所述第二IP列表中的第二IP地址剔除;向所述第二IP地址对应的第一服务器进行第一版本的服务回滚操作;当所述第一版本的服务回滚操作成功后,将所述第二IP地址全部添加至所述第二IP列表中。
在一个可选的实施例中,所述路由管理设备,用于向所述灰度任务设备发送状态查询请求,所述状态查询请求携带所述目标服务的服务标识;接收所述灰度任务设备发送的状态反馈信息;当所述状态反馈信息用于指示所述目标服务处于灰度发布状态时,从所述灰度任务设备的预设缓存中读取所述目标服务的灰度路由规则。
在一个可选的实施例中,所述灰度路由规则包括采用位图存储的尾号、版本号与IP列表之间的关系;
所述根据所述用户标识和所述灰度路由规则,确定所述用户标识是否命中灰度用户标识段,包括:
确定所述用户标识的尾号,所述尾号是所述用户标识的后n位,n为正整数;
根据所述位图对应关系确定所述尾号是否命中灰度用户标识段;
所述方法还包括:
当所述尾号命中所述灰度用户标识段时,根据所述位图对应关系确定所述尾号对应的IP列表。
根据本申请的另一方面,提供了一种服务发布方法,所述方法包括:
接收目标服务的灰度任务;
根据所述灰度任务向已具有第一版本的所述目标服务的服务器,逐渐发布第二版本的所述目标服务;
根据所述灰度任务生成灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器;
向所述路由管理设备发送所述灰度路由规则。
根据本申请的另一方面,提供了一种服务发布方法,所述方法包括:
获取所述灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器;
接收至少一个请求设备发送的用户标识;
根据所述用户标识和所述灰度路由规则,确定所述用户标识是否命中灰度用户标识段;
当所述用户标识未命中所述灰度用户标识段时,向所述请求设备发送所述第一IP列表;当所述用户标识命中所述灰度用户标识段时,向所述请求设备发送所述第二IP列表。
根据本申请的另一方面,提供了一种服务发布装置,所述装置包括:
接收模块,用于接收目标服务的灰度任务;
发布模块,用于根据所述灰度任务向已具有第一版本的所述目标服务的服务器,逐渐发布第二版本的所述目标服务;
生成模块,用于根据所述灰度任务生成灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器,所述第二版本晚于所述第一版本;
提供模块,用于向所述路由管理设备提供所述灰度路由规则。
根据本申请的另一方面,提供了一种服务发布装置,所述装置包括:
获取模块,用于获取所述灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器;
接收模块,用于接收至少一个请求设备发送的用户标识;
确定模块,用于根据所述用户标识和所述灰度路由规则,确定所述用户标识是否命中灰度用户标识段;
发送模块,用于当所述用户标识未命中所述灰度用户标识段时,向所述请求设备发送所述第一IP列表;当所述用户标识命中所述灰度用户标识段时,向所述请求设备发送所述第二IP列表。
根据本申请的另一方面,提供了一种灰度任务设备,所述设备包括:处理器和存储器,所述存储器存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的服务发布方法。
根据本申请的另一方面,提供了一种路由管理设备,所述设备包括:处理器和存储器,所述存储器存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的服务发布方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的服务发布方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过灰度任务设备生成和灰度路由规则,当路由管理设备接收到请求设备发送的用户标识后,根据用户标识是否命中灰度号码段向请求设备反馈第一IP列表或第二IP列表,使得提供目标服务的服务器中不需要添加冗余的代码逻辑,减少重复性的代码开发和代码复杂度,能够为整个服务集群提供一个通用和统一的灰度发布解决方案。当服务集群提供有多个服务时,能够实现全自动的灰度发布。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例提供的计算机系统的结构框图;
图2示出了本申请一个示例性实施例提供的服务发布方法的流程图;
图3示出了本申请一个示例性实施例提供的服务发布方法的流程图;
图4示出了本申请一个示例性实施例提供的服务发布方法的流程图;
图5示出了本申请一个示例性实施例提供的服务发布方法的流程图;
图6示出了本申请一个示例性实施例提供的服务发布方法的流程图;
图7示出了本申请一个示例性实施例提供的服务发布方法的流程图;
图8示出了本申请一个示例性实施例提供的服务发布方法的流程图;
图9示出了本申请一个示例性实施例提供的服务发布装置的框图;
图10示出了本申请一个示例性实施例提供的服务发布装置的框图;
图11示出了本申请一个示例性实施例提供的服务器的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
服务:由一个服务器向另一个服务器提供的软件服务,或者,由服务器向客户端提供的软件服务。一个服务是一个软件功能或多个软件功能的组合。
灰度发布:将第一版本的目标服务逐渐替换为第二版本的目标服务的发布任务。具体地,灰度发布是向一部分用户发布目标服务的第一版本,另一部分用户发布目标服务的第二版本。在目标服务的第二版本没有异常时,逐渐向所有用户发布目标服务的第二版本的发布方式。
灰度期:灰度发布从开始时刻到结束时刻之间的时间段,称为灰度期。
全量发布:向所用用户发布某一版本的服务的发布方式。
回滚:在向用户发布第二版本的服务后,取消第二版本的发布,重新提供第一版本的服务的操作。
图1示出了本申请一个示例性实施例提供的计算机系统的结构框图。该计算机系统包括:灰度集群120和服务集群140。
灰度集群120是用于实现灰度任务的录入和执行的设备集群。可选地,灰度集群120包括管理端122、灰度任务设备124和路由管理设备126。
管理端122是由管理人员所使用的设备。管理端122可以是手机、平板电脑、笔记本电脑和台式电脑等设备。管理端122上运行有客户端程序或者web管理网页。管理人员通过管理端122向灰度任务设备124录入目标服务对应的灰度发布任务、灰度速度、全量发布指示、回滚指示中的至少一种。
管理端122与灰度任务设备124通过有线网络或无线网络相连。
灰度任务设备124可以是一台或多台服务器。灰度任务设备124中设置有数据库,该数据库用于存储目标服务的灰度任务。
路由管理设备140可以是一台或多台服务器。路由管理设备140是在多个服务之间实现负载均衡和动态路由的组件。本申请通过在路由管理设备140中增加灰度路由规则,可以帮助一个或多个请求设备142将访问目标服务的不同用户寻址到不同版本的服务所对应的服务器上。
服务集群140是用于提供至少一种服务的设备集群。服务集群140包括多个服务器,每个服务器用于提供一个或多个服务。可选地,不同的服务器上提供的服务的类型可以相同或不同,两个服务器上提供同一类型的服务的版本号可以相同或不同。
当服务集群140提供两种或两种以上的服务时,存在至少两个服务之间具有调用关系。每个服务在调用其下游服务时,可以从路由管理设备140获取下游服务的IP地址。
示例性的,服务集群140包括:请求设备142、第一服务器144和第二服务器146。请求设备142可以是提供服务A的服务器,服务A是需要调用服务B的上游服务,服务B是服务A的下游服务。第一服务器144中提供有第一版本的服务B;第二服务器146中提供有第二版本的服务B。可选的,第一版本是老版本,第二版本是新版本,也即第二版本是晚于第一版本的版本。
图2示出了本申请一个示例性实施例提供的服务发布方法的流程图。本实施例以该服务发布方法应用于图1所示的计算机系统100来举例说明。该方法包括:
步骤201,灰度任务设备接收目标服务的灰度任务;
目标服务是服务集群140中的服务器所提供的任意一个服务。本实施例以目标服务是服务B来举例说明。
目标服务的灰度任务是将第一版本的目标服务逐渐替换为第二版本的目标服务的发布任务。
可选地,灰度任务包括:目标服务的服务标识、灰度速度、与目标服务对应的原始IP列表中的至少一种信息。可选地,灰度任务还包括:使用第一版本的普通用户标识段、使用第二版本的灰度用户标识段。
可选地,灰度速度是指将第一版本的目标服务替换为第二版本的目标服务的速度。原始IP列表包括至少两个IP地址(或n个IP地址,n为大于1的整数),每个IP地址对应一个提供目标服务的服务器。比如,在初始状态下,服务集群140中存在10台服务器提供有服务B,则原始IP列表存在有10个IP地址,每个IP地址对应一台服务器。
步骤202,灰度任务设备根据灰度任务向已具有第一版本的目标服务的服务器,逐渐发布第二版本的目标服务;
步骤203,灰度任务设备根据灰度任务生成灰度路由规则。该灰度路由规则包括用户标识与IP列表之间的对应关系。
灰度任务设备根据灰度任务中的各项信息生成灰度路由规则,灰度路由规则包括用户标识与IP列表之间的对应关系。
可选地,IP列表包括第一IP列表和第二IP列表,第一IP列表用于指向提供第一版本的目标服务的第一服务器,第二IP列表用于指向提供第二版本的目标服务的第二服务器。
存在属于至少一个普通用户标识段与第一IP列表对应;存在属于至少一个灰度用户标识段与第二IP列表对应。
灰度任务设备向路由管理设备提供灰度路由规则。
步骤204,路由管理设备从灰度任务设备获取灰度路由规则;
可选地,灰度任务设备将目标服务的灰度路由规则存储在预设的缓存中,路由管理设备从该缓存中读取目标服务的灰度路由规则。
路由管理设备存储目标服务的灰度路由规则。以目标服务是服务B为例,路由管理设备存储服务B的灰度路由规则。
步骤205,路由管理设备接收至少一个请求设备发送的用户标识;
至少一个请求设备向路由管理设备发送服务请求,该服务请求中携带有用户标识。路由管理设备接收该至少一个请求设备发送的用户标识。
步骤206,路由管理设备根据用户标识和灰度路由规则,确定用户标识是否命中灰度用户标识段;
步骤207,路由管理设备在用户标识未命中灰度状态时,向请求设备返回第一IP列表;
步骤208,路由管理设备在用户标识命中灰度用户标识时,向请求设备返回第二IP列表。
综上所述,本实施例提供的服务发布方法,通过灰度任务设备生成和灰度路由规则,当路由管理设备接收到请求设备发送的用户标识后,根据用户标识是否命中灰度号码段向请求设备反馈第一IP列表或第二IP列表,使得提供目标服务的服务器中不需要添加冗余的代码逻辑,减少重复性的代码开发和代码复杂度,能够为整个服务集群提供一个通用和统一的灰度发布解决方案。当服务集群提供有多个服务时,能够实现全自动的灰度发布。
灰度任务设备122包括有:数据库、灰度任务执行进程和缓存。
数据库用于存储管理端122为目标服务录入的灰度任务、全量发布指示和回滚指示中的至少一种。该灰度任务包括:目标服务的服务标识、灰度速度、与目标服务对应的原始IP列表(初始的第一IP列表)中的至少一种信息。可选地,数据库采用关系型数据库MySQL进行存储。
灰度任务执行进程用于执行目标服务的灰度任务;根据灰度任务向已提供有第一版本的目标服务的服务器,逐渐发布第二版本的目标服务。灰度任务执行进程还用于根据灰度任务为目标服务生成灰度路由规则。灰度任务执行进程可以是多个。
灰度任务执行进程还将目标服务的灰度路由规则存储在缓存中,以便路由管理设备从缓存中读取该灰度路由规则。可选地,该缓存采用读写性能较高的noSQL存储。
在基于图2的可选实施例中,灰度任务执行进程执行如下步骤21至步骤27,如图3所示:
步骤21,灰度任务执行进程检测目标服务的灰度任务的进程锁标识是否一致;
由于灰度任务设备122中可能存在多个灰度任务执行进程同时执行,灰度任务设备122为目标服务的灰度任务提供有进程锁,同一时刻仅能由一个灰度任务执行进程执行该灰度任务。
进程锁具有锁标识和锁时间。锁标识用于指示当前占用该灰度任务的进程;锁时间用于指示当前进程能够占用该进程锁的最长时间。当当前进程占用该进程锁的时间超过该最长时间后(比如当前进程出现卡顿异常),其它进程可以抢占该进程锁。
灰度任务执行进程在获取进程锁后,首先检测目标服务的灰度任务的进程锁标识与自身的标识是否一致;若一致,则进入步骤22;若不一致,则进入步骤27。
步骤22,灰度任务执行进程更新进程锁的锁时间;
灰度任务执行进程在验证进程锁标识与自身标识一致时,更新进程锁的锁时间重新计时,以防止进程锁的锁时间过期。
步骤23,灰度任务执行进程查询目标服务的发布状态;
目标服务的发布状态包括:灰度发布状态、全量发布状态和回滚状态中的至少一种。灰度任务执行进程从数据库中查询目标服务的发布状态。
当处于灰度发布状态时,进入步骤24;
当处于全量发布状态时,进入步骤25;
当处于回滚状态时,进入步骤26。
步骤24,根据灰度任务向已具有第一版本的目标服务的服务器,逐渐发布第二版本的目标服务;
步骤25,为目标服务执行全量发布操作;
步骤26,为目标服务执行回滚操作。
在针对步骤202(或步骤24)提供的可选实施例中,上述方法还包括如下步骤202a至步骤202d,如图4所示:
步骤202a,根据灰度速度确定第i执行单元;
灰度任务设备的数据库中存储有目标服务的灰度任务。可选地,该灰度任务包括:目标服务的服务标识、灰度速度、与目标服务对应的原始IP列表中的至少一种信息。
灰度任务执行进程预先根据该灰度速度确定n个执行单元,每个执行单元具有开始执行时间。灰度任务执行进程可以将n个执行单元的序号、开始执行时间和当前状态存储在任务信息表中。当前状态的初始值为未执行。其中,i≤n,i为整数,n为大于1的整数。
示意性的,灰度任务执行进程根据灰度速度和原始IP列表确定n个执行单元。例如,灰度速度为每天完成10%的灰度发布任务,原始IP列表包括10个IP地址,则灰度任务设备为目标服务设置10个执行单元,每个执行单元用于每次完成1个IP地址的灰度发布任务,第i个执行单元的开始执行时间是第i天的凌晨12:00。
在本次占用进程锁后,若目标服务处于灰度发布状态,灰度任务执行进程根据任务信息表获取n个执行单元中尚未执行的第i执行单元。若n个执行单元已经全部执行完毕,则跳出本次处理;若存在尚未执行的第i执行单元,则检测当前时间是否已经达到第i执行单元的开始执行时间。
若当前时间已经达到第i执行单元的开始执行时间,则进入步骤202b。
若当前时间尚未达到第i执行单元的开行执行时间,则跳出本次处理。
步骤202b,通过第i执行单元将第一IP列表中的第i组IP地址剔除;
灰度任务执行进程将灰度任务中的原始IP列表作为第一IP列表。假设第一IP列表中包括10个IP地址。
灰度任务执行进程通过第i执行单元,将第一IP列表中的第i组IP地址从第一IP列表中剔除。可选地,灰度任务执行进程设置一定时器(比如60s),在定时器结束时,检查该第i组IP地址对应的服务器是否成功升级至第二版本;若升级成功,则将第i执行单元对应的状态设置为“剔除成功”;若升级失败,则重新执行本步骤。
步骤202c,通过第i执行单元向第i组IP地址对应的第一服务器进行第二版本的服务升级操作;
可选地,服务升级操作包括:配置发布和安装包升级。
本步骤包括如下子步骤:
第一,灰度任务执行进程调用配置接口向第i组IP地址对应的第一服务器进行配置发布;当配置发布成功后,将第i执行单元对应的状态更新为“配置发布完成”;
第二,灰度任务执行进程调用PKG(Package,安装包)升级接口对第i组IP地址对应的第一服务器进行安装包升级,使第一服务器升级为第二版本的目标服务。
该PKG接口是异步接口。灰度任务执行进程调用该PKG升级接口成功后,PKG升级接口会返回一个实例id,通过该id可以查询第一服务器的升级状态。当调用该PKG升级接口成功后,将实例ID更新到对应记录,并将第i执行单元对应的状态更新为“包发布中”。
灰度任务执行进程通过PKG的实例ID查询包升级的状态,如果升级失败,则再次调用PKG包升级接口,并更新新的实例ID。如果尝试次数达到阈值,则进行告警;如果PKG升级成功,则将第i执行单元对应的状态更新为“包发布完成”。
步骤202d,当第二版本的服务升级操作成功后,将第i组IP地址添加至第二IP列表中。
在第二版本的服务升级操作成功后,灰度任务执行进程将第i组IP地址加入第二IP列表。可选地,灰度任务执行进程设置一定时器(比如60s),在定时器结束时,检查该第二IP列表是否生效;若生效成功,则将第i执行单元对应的状态设置为“加入灰度IP完成”;若生效失败,则重新执行本步骤。
可选地,灰度任务执行进程第i执行单元在任务信息表中的状态为执行完毕。然后,灰度任务执行进程根据灰度执行间隔和任务锁更新时间,计算出需要睡眠的时间。
综上所述,本实施例提供的方法,通过按照灰度速度来对原始IP列表中的各个IP地址对应的服务器升级为第二版本,提供了一种灰度比例可控制和灰度速度可控制的全自动灰度发布方案。
全量发布操作用于将所有第一版本的目标服务升级为第二版本的目标服务。在针对步骤25提供的可选实施例中,上述方法还包括如下步骤25a至步骤25c,如图5所示:
步骤25a,当目标服务处于全量发布状态时,将第一IP列表中的第一IP地址剔除;
灰度任务执行进程将第一IP列表中的所有第一IP地址剔除。
可选地,灰度任务执行进程设置一定时器(比如60s),在定时器结束时,检查该第一IP地址对应的服务器是否成功升级至第二版本;若升级成功,则将第i执行单元对应的状态设置为“剔除成功”;若升级失败,则重新执行本步骤。
步骤25b,向第一IP地址对应的第一服务器进行第二版本的服务升级操作;
可选地,服务升级操作包括:配置发布和安装包升级。
本步骤包括如下子步骤:
第一,灰度任务执行进程调用配置接口向第一IP地址对应的第一服务器进行配置发布;
第二,灰度任务执行进程调用PKG(Package,安装包)升级接口对第一IP地址对应的第一服务器进行安装包升级,使第一服务器升级为第二版本的目标服务。
该PKG接口是异步接口。灰度任务执行进程调用该PKG升级接口成功后,PKG升级接口会返回一个实例id,通过该id可以查询第一服务器的升级状态。当调用该PKG升级接口成功后,将实例ID更新到对应记录。
灰度任务执行进程通过PKG的实例ID查询包升级的状态,如果升级失败,则再次调用PKG包升级接口,并更新新的实例ID。如果尝试次数达到阈值,则进行告警;如果PKG升级成功,则将第i执行单元对应的状态更新为“包发布完成”。
步骤25c,当第二版本的服务升级操作成功后,将第一IP地址全部添加至第二IP列表中。
综上所述,本实施例提供的方法,通过管理端向灰度任务设备发送目标服务的全量发布指示,灰度任务设备对第一IP列表中的所有第一IP地址对应的服务器升级为第二版本,为上述服务发布系统提供了一键全量发布的特性。
回滚操作用于将所有第二版本的目标服务回滚为第一版本的目标服务。在针对步骤26提供的可选实施例中,上述方法还包括如下步骤26a至步骤26c,如图6所示:
步骤26a,当目标服务处于灰度回滚状态时,将第二IP列表中的第二IP地址剔除;
灰度任务执行进程将第二IP列表中的所有第二IP地址剔除。
可选地,灰度任务执行进程设置一定时器(比如60s),在定时器结束时,检查该第二IP地址对应的服务器是否成功回滚至第一版本;若升级成功,则将第i执行单元对应的状态设置为“剔除成功”;若升级失败,则重新执行本步骤
步骤25b,向第二IP地址对应的第一服务器进行第一版本的服务回滚操作;
可选地,服务升级操作包括:配置发布和安装包升级。
本步骤包括如下子步骤:
第一,灰度任务执行进程调用配置接口向第二IP地址对应的第二服务器进行配置发布;
第二,灰度任务执行进程调用PKG降级接口对第二IP地址对应的第二服务器进行安装包降级,使第二服务器降级为第一版本的目标服务。PKG降级接口和PKG升级接口可以相同或不同。
该PKG接口是异步接口。灰度任务执行进程调用该PKG降级接口成功后,PKG降级接口会返回一个实例id,通过该id可以查询第二服务器的升级状态。当调用该PKG升级接口成功后,将实例ID更新到对应记录。
灰度任务执行进程通过PKG的实例ID查询包降级的状态,如果降级失败,则再次调用PKG包降级接口,并更新新的实例ID。如果尝试次数达到阈值,则进行告警;如果PKG降级成功,则确定该第二服务器的回滚成功。
步骤25c,当第一版本的服务回滚操作成功后,将第二IP地址全部添加至第一IP列表中。
综上所述,本实施例提供的方法,通过管理端向灰度任务设备发送目标服务的回滚指示,灰度任务设备对第二IP列表中的所有第二IP地址对应的服务器降级为第一版本,为上述服务发布系统提供了一键回滚的特性。
由于第二版本的目标服务没有经过线上的运行,在灰度过程中可能会产生一些问题,例如功能性的bug,服务性能的下降,处理耗时的增高,接口成功率的下降等等。灰度任务设备还对第二版本的目标服务的服务运行情况进行监控,并在监控到异常时,向管理端发送告警信息。
第二版本的目标服务的服务运行情况包括但不限于:接口成功率、接口耗时和性能参数。
接口成功率:通过规范目标服务的调用接口的方式,对每次接口调用的结果和耗时都进行上报,通过这种方式可以统计到服务集群中每个服务调用各个接口的成功率和耗时。
接口调用耗时包括:队列等待耗时+服务自身处理耗时+各个外部接口耗时之和。
性能参数包括:内存,网卡流量,CPU使用率,磁盘IO情况中的至少一种。
灰度任务设备通过上述3个维度的数据采集,来监控和对比目标服务的第一版本和第二版本,一旦发现第二版本的目标服务的各项指标低于第一版本的目标服务达到预设时长,则向管理端发送告警信息。
在针对步骤203提供的可选实施例中,灰度任务执行进程执行如下步骤,如图7所示:
步骤203a,根据灰度任务中的灰度速度确定灰度用户标识段;
灰度任务执行进程根据灰度速度和用户标识的尾号确定灰度用户标识段。
可选地,灰度任务执行进程将所有用户标识分为n个用户标识段,每个用户标识段的尾号属于不同的区间。灰度任务执行进程按照灰度速度将n个用户标识段逐渐确定为灰度用户标识段。比如,灰度速度为每天完成10%的灰度发布任务,所有用户标识分为n个用户标识段,则灰度任务执行进程每次将10个用户标识段中的第i个用户标识段确定为灰度用户标识段。当最终灰度发布结束时,所有的用户标识均会命中灰度用户标识段。
其中,尾号是指用户标识的后n位。
示意性的,按用户标识的尾号,精确到万分之一。灰度任务设备可以支持多段连续的尾号号段。比如,当设置灰度用户标识段的尾号为[0000-1000,2000-3000,5000-6000],就是表示当用户标识按10000求模,其结果大于0000且小于1000,或者大于2000且小于3000,或者大于5000且小于6000时,用户标识命中灰度用户标识段。又比如:当用户标识按167255288求模10000的结果是5288,在5000-6000的范围内,则判定该用户标识命中灰度用户标识段;而用户标识1637251288求模10000的结果是1288,不在上述的3个区间内,该用户标识不命中灰度用户标识段。
步骤203b,根据灰度用户标识段和第二IP列表生成第一对应关系;
灰度任务执行进程将灰度用户标识段和第二IP列表进行对应,生成第一对象关系。
步骤203c,根据除灰度用户标识段之外的普通用户标识段和第一IP列表生成第二对应关系;
灰度任务执行进程将普通用户标识段和第一IP列表进行对应,生成第二对象关系。
步骤203d,将第一对应关系和第二对应关系确定为目标服务的灰度路由规则。
综上所述,本实施例提供的方法,根据灰度速度生成灰度用户标识段,能够将用户按照灰度速度逐渐引导访问至第二版本的目标服务,从而实现全自动的灰度发布功能。
参考图8,其示出了本申请一个示例性实施例提供的服务发布方法的流程图。本实施例以该方法应用于图1所示的服务发布系统中来举例说明。该方法包括:
步骤801,管理端向灰度任务设备发送目标服务的灰度任务;
管理人员可以通过管理端向灰度任务设备录入目标任务的灰度任务、全量发布指示或回滚指示。
步骤802,灰度任务设备接收目标服务的灰度任务;
目标服务是服务集群140中的服务器所提供的任意一个服务。本实施例以目标服务是服务B来举例说明。
目标服务的灰度任务是将第一版本的目标服务逐渐替换为第二版本的目标服务的发布任务。
可选地,灰度任务包括:目标服务的服务标识、灰度速度、与目标服务对应的原始IP列表中的至少一种信息。可选地,灰度任务还包括:使用第一版本的普通用户标识段、使用第二版本的灰度用户标识段。
可选地,灰度速度是指将第一版本的目标服务替换为第二版本的目标服务的速度。原始IP列表包括至少两个IP地址,每个IP地址对应一个提供目标服务的服务器。比如,在初始状态下,服务集群140中存在10台服务器提供有服务B,则原始IP列表存在有10个IP地址,每个IP地址对应一台服务器。
步骤803,灰度任务设备根据灰度任务向已具有第一版本的目标服务的服务器,逐渐发布第二版本的目标服务;
本步骤的技术细节可以参考图3至图4所示的技术方案。
步骤804,灰度任务设备根据灰度任务生成灰度路由规则。
该灰度路由规则包括用户标识与IP列表之间的对应关系。
灰度任务设备根据灰度任务中的各项信息生成灰度路由规则,灰度路由规则包括用户标识与IP列表之间的对应关系。
可选地,IP列表包括第一IP列表和第二IP列表,第一IP列表用于指向提供第一版本的目标服务的第一服务器,第二IP列表用于指向提供第二版本的目标服务的第二服务器。第一IP列表还可称为普通IP列表,第二IP列表还可称为灰度IP列表。
存在属于至少一个普通用户标识段与第一IP列表对应;存在属于至少一个灰度用户标识段与第二IP列表对应。
灰度任务设备向路由管理设备提供灰度路由规则。可选地,灰度任务设备将每个目标任务的灰度路由规则存储在自身的cache中。
步骤805,路由管理设备向灰度任务设备发送状态查询请求,该状态查询请求携带有目标服务的服务标识;
可选地,路由管理设备每隔预定时间间隔向灰度任务设备发送状态查询请求。或者,路由管理设备在接收到请求设备发送的路由规则获取请求后,若当前未存储有目标服务的灰度路由规则时,向灰度任务设备发送状态查询请求。
可选地,该状态查询请求携带有目标服务的服务标识。
灰度任务设备接收路由管理设备发送的状态查询请求,根据状态查询请求中携带的服务标识从数据库中查询目标服务的当前状态,灰度任务设备根据目标服务的当前状态向路由管理设备发送状态反馈信息。状态反馈信息中携带有目标服务的当前状态。
可选地,目标服务的状态包括:灰度发布状态、全量发布状态、回滚状态中的至少一种。本实施例以目标服务的状态是灰度发布状态来举例说明。
步骤806,路由管理设备接收灰度任务设备发送的状态反馈信息;
步骤807,当状态反馈信息用于指示目标服务处于灰度发布状态时,路由管理设备从灰度任务设备的预设缓存中读取目标服务的灰度路由规则;
可选地,当状态反馈信息用于指示目标服务处于灰度发布状态时,路由管理设备从该缓存中读取目标服务的灰度路由规则。
路由管理设备存储目标服务的灰度路由规则。以目标服务是服务B为例,路由管理设备存储服务B的灰度路由规则。可选地,路由管理设备中存储有多个服务的灰度路由规则。
步骤808,请求设备向路由管理设备发送路由规则获取请求,该路由规则获取请求中携带有用户标识;
可选地,请求设备在需要使用目标服务时,向路由滚利设备发送路由规则获取请求。
可选地,该用户标识采用字符串来标识。该字符串的全部字符或者位于尾部的n个字符是数字,n的取值大于或等于取模值的位数,比如取模值是10000,则n≥5。示意性的,该路由规则获取请求中携带有一个或多个用户标识。本实施例以该用户标识是一个来举例说明。
步骤809,路由管理设备接收至少一个请求设备发送的用户标识;
至少一个请求设备向路由管理设备发送服务请求,该服务请求中携带有用户标识。路由管理设备接收该至少一个请求设备发送的用户标识。
步骤810,路由管理设备根据用户标识和灰度路由规则,确定用户标识是否命中灰度用户标识段;
可选地,灰度路由规则包括用户标识段和IP列表之间的对应关系,该对应关系中的普通用户标识段与第一IP列表对应,灰度用户标识段与第二IP列表对应。路由管理设备确定用户标识所属的用户标识段,当用户标识属于灰度用户标识段时,进入步骤811;当用户标识属于普通用户标识段时,进入步骤812。
可选地,灰度路由规则包括采用位图存储的尾号段、版本号与IP列表之间的关系,以便提供路由管理设备的查询效率。可选地,在该灰度路由规则中,每个尾号对应两个比特,00表示未命中灰度用户标识段,01表示该尾号对应版本A的目标服务,10表示该尾号对应版本B的目标服务,11表示该尾号对应版本C的目标服务。
在一个示意性的例子中,位图对应关系如下所示:
其中,uinbit是尾号的位图,一个尾号占用两个位(bit),可以表示4种状态。由于一个字节有8位,如果以取模值是10000为例,则需要10000*2/8=25002500个字节。
此时,路由管理设备确定用户标识的尾号,该尾号是用户标识的后n位,n为正整数;根据位图对应关系确定尾号是否命中灰度用户标识段;当尾号命中灰度用户标识段时,根据位图对应关系确定尾号对应的第一IP列表;当尾号命中普通用户标识段时,根据位图对应关系确定尾号对应的第二IP列表。
在一个示意性的例子中,路由管理设备检查用户标识uin是否命中灰度的计算是:
unsigned char off[4]={6,4,2,0};
(uinbit+((uin%10000)>>2))>>off[(uin%10000)&(0x03)]。
其中,uin是用户标识,off是数组,>>是左移,uin%10000是除以10000后的余数,0x03是16进制,&表示将左右两边的数转化成二进制数字。
步骤811,路由管理设备在用户标识未命中灰度状态时,向请求设备返回第一IP列表;
请求设备接收路由管理设备反馈的第一IP列表,请求设备中的服务A可根据第一IP列表调用第一版本的目标服务B。
步骤812,路由管理设备在用户标识命中灰度用户标识时,向请求设备返回第二IP列表;
请求设备接收路由管理设备反馈的第二IP列表,请求设备中的服务A可根据第二IP列表调用第二版本的目标服务B。
综上所述,本实施例提供的服务发布方法,通过灰度任务设备生成和灰度路由规则,当路由管理设备接收到请求设备发送的用户标识后,根据用户标识是否命中灰度号码段向请求设备反馈第一IP列表或第二IP列表,使得提供目标服务的服务器中不需要添加冗余的代码逻辑,减少重复性的代码开发和代码复杂度,能够为整个服务集群提供一个通用和统一的灰度发布解决方案。当服务集群提供有多个服务时,能够实现全自动的灰度发布。
本实施例提供的服务发布方法,还通过采用位图形式存储灰度路由规则,能够使得路由管理设备快速地确定出用户标识所对应的IP列表,提高路由管理设备的响应效率。
需要说明的是:上述实施例提供的服务发布装置在以灰度发布方式发布目标服务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务发布装置与服务发布方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参考图9,其示出了本申请一个示例性实施例提供的服务发布装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为灰度任务设备的全部或一部分。该装置包括:
接收模块920,用于接收目标服务的灰度任务;
发布模块940,用于根据所述灰度任务向已具有第一版本的所述目标服务的服务器,逐渐发布第二版本的所述目标服务;
生成模块960,用于根据所述灰度任务生成灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器,所述第二版本晚于所述第一版本;
提供模块980,用于向所述路由管理设备提供所述灰度路由规则。
在一个可选的实施例中,所述发布模块940,用于根据所述灰度任务中的灰度速度确定第i执行单元;通过所述第i执行单元将所述第一IP列表中的第i组IP地址剔除;通过所述第i执行单元向所述第i组IP地址对应的第一服务器进行第二版本的服务升级操作;当所述第二版本的服务升级操作成功后,将所述第i组IP地址添加至所述第二IP列表中。
在一个可选的实施例中,所述生成模块960,用于根据所述灰度任务中的灰度速度确定待灰度的用户标识段;根据所述待灰度的用户标识段和所述第二IP列表生成第一对应关系;根据剩余的用户标识段和所述第一IP列表生成第二对应关系;将所述第一对应关系和所述第二对应关系确定为所述灰度路由规则。
在一个可选的实施例中,所述装置还包括:全量升级模块992;
所述全量升级模块992,用于当所述目标服务处于全量发布状态时,将所述第一IP列表中的第一IP地址剔除;向所述第一IP地址对应的第一服务器进行第二版本的服务升级操作;当所述配置发布和所述软件服务包升级操作成功后,将所述第一IP地址全部添加至所述第二IP列表中。
在一个可选的实施例中,所述装置还包括:回滚模块994;
所述回滚模块994,用于当所述目标服务处于灰度回滚状态时,将所述第二IP列表中的第二IP地址剔除;向所述第二IP地址对应的第一服务器进行第一版本的服务回滚操作;当所述第一版本的服务回滚操作成功后,将所述第二IP地址全部添加至所述第二IP列表中。
参考图10,其示出了本申请一个示例性实施例提供的服务发布装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为路由管理设备的全部或一部分。该装置包括:获取模块1020、接收模块1040、确定模块1060、发送模块1080。
获取模块1020,用于获取所述灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器;
接收模块1040,用于接收至少一个请求设备发送的用户标识;
确定模块1060,用于根据所述用户标识和所述灰度路由规则,确定所述用户标识是否命中灰度用户标识段;
发送模块1080,用于当所述用户标识未命中所述灰度用户标识段时,向所述请求设备发送所述第一IP列表;当所述用户标识命中所述灰度用户标识段时,向所述请求设备发送所述第二IP列表。
在一个可选的实施例中,所述获取模块1020,用于向灰度任务设备发送状态查询请求,所述状态查询请求携带所述目标服务的服务标识;接收所述灰度任务设备发送的状态反馈信息;当所述状态反馈信息用于指示所述目标服务处于灰度发布状态时,从所述灰度任务设备的预设缓存中读取所述目标服务的灰度路由规则。
在一个可选的实施例中,所述灰度路由规则包括采用位图存储的尾号段、版本号与IP列表之间的关系;
所述确定模块1060,用于确定所述用户标识的尾号,所述尾号是所述用户标识的后n位,n为正整数;根据所述位图对应关系确定所述尾号是否命中灰度用户标识段;当所述尾号命中灰度用户标识段时,根据所述位图对应关系确定所述尾号对应的IP列表。
本申请还提供了一种服务器,该服务器包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的服务发布方法。该服务器可以是图1中的灰度任务设备和/或路由管理设备。需要说明的是,该服务器可以是如下图11所提供的服务器。
请参考图11,其示出了本申请一个示例性实施例提供的服务器的结构示意图。具体来讲:所述服务器1100包括中央处理单元(CPU)1101、包括随机存取存储器(RAM)1102和只读存储器(ROM)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。所述服务器1100还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1106,和用于存储操作系统1113、应用程序1114和其他程序模块1115的大容量存储设备1107。
所述基本输入/输出系统1106包括有用于显示信息的显示器1108和用于用户输入信息的诸如鼠标、键盘之类的输入设备1109。其中所述显示器1108和输入设备1109都通过连接到系统总线1105的输入输出控制器1110连接到中央处理单元1101。所述基本输入/输出系统1106还可以包括输入输出控制器1110以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1110还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1107通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。所述大容量存储设备1107及其相关联的计算机可读介质为服务器1100提供非易失性存储。也就是说,所述大容量存储设备1107可以包括诸如硬盘或者CD-ROI驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1107可以统称为存储器。
存储器存储有一个或多个程序,一个或多个程序被配置成由一个或多个中央处理单元1101执行,一个或多个程序包含用于实现上述视频标注方法的指令,中央处理单元1101执行该一个或多个程序实现上述各个方法实施例提供的视频标注方法。
根据本申请的各种实施例,所述服务器1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1100可以通过连接在所述系统总线1105上的网络接口单元1111连接到网络1112,或者说,也可以使用网络接口单元1111来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本申请实施例提供的服务发布方法中由服务器所执行的步骤。
本申请提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述各个方法实施例提供的服务发布方法。
本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的服务发布方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种服务发布系统,其特征在于,所述系统包括:灰度任务设备和路由管理设备;
所述灰度任务设备,用于接收目标服务的灰度任务;根据所述灰度任务向已具有第一版本的所述目标服务的服务器,逐渐发布第二版本的所述目标服务;根据所述灰度任务生成灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器;
所述路由管理设备,用于从所述灰度任务设备获取所述灰度路由规则;接收至少一个请求设备发送的用户标识;根据所述用户标识和所述灰度路由规则,确定所述用户标识是否命中灰度用户标识段;在所述用户标识未命中所述灰度用户标识段时,向所述请求设备返回所述第一IP列表;在所述用户标识命中所述灰度用户标识段时,向所述请求设备返回所述第二IP列表。
2.根据权利要求1所述的系统,其特征在于,
所述灰度任务设备,用于根据所述灰度任务中的灰度速度确定第i执行单元;通过所述第i执行单元将所述第一IP列表中的第i组IP地址剔除;通过所述第i执行单元向所述第i组IP地址对应的第一服务器进行第二版本的服务升级操作;当所述第二版本的服务升级操作成功后,将所述第i组IP地址添加至所述第二IP列表中,i为正整数。
3.根据权利要求2所述的系统,其特征在于,
所述灰度任务设备,还用于根据所述灰度任务中的灰度速度确定灰度用户标识段,根据所述灰度用户标识段和所述第二IP列表生成第一对应关系,根据除所述灰度用户标识段之外的普通用户标识段和所述第一IP列表生成第二对应关系;将所述第一对应关系和所述第二对应关系确定为所述灰度路由规则。
4.根据权利要求2所述的系统,其特征在于,
所述灰度任务设备,还用于当所述目标服务处于全量发布状态时,将所述第一IP列表中的第一IP地址剔除;向所述第一IP地址对应的第一服务器进行第二版本的服务升级操作;当所述配置发布和所述软件服务包升级操作成功后,将所述第一IP地址全部添加至所述第二IP列表中。
5.根据权利要求2所述的系统,其特征在于,
所述灰度任务设备,还用于当所述目标服务处于灰度回滚状态时,将所述第二IP列表中的第二IP地址剔除;向所述第二IP地址对应的第一服务器进行第一版本的服务回滚操作;当所述第一版本的服务回滚操作成功后,将所述第二IP地址全部添加至所述第二IP列表中。
6.一种服务发布方法,其特征在于,所述方法包括:
接收目标服务的灰度任务;
根据所述灰度任务向已具有第一版本的所述目标服务的服务器,逐渐发布第二版本的所述目标服务;
根据所述灰度任务生成灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器;
向所述路由管理设备提供所述灰度路由规则。
7.一种服务发布方法,其特征在于,所述方法包括:
获取所述灰度路由规则,所述灰度路由规则包括用户标识与IP列表之间的对应关系,所述IP列表包括第一IP列表和第二IP列表,所述第一IP列表用于指向提供第一版本的所述目标服务的服务器,所述第二IP列表用于指向提供第二版本的所述目标服务的服务器;
接收至少一个请求设备发送的用户标识;
根据所述用户标识和所述灰度路由规则,确定所述用户标识是否命中灰度用户标识段;
当所述用户标识未命中所述灰度用户标识段时,向所述请求设备发送所述第一IP列表;当所述用户标识命中所述灰度用户标识段时,向所述请求设备发送所述第二IP列表。
8.一种灰度任务设备,其特征在于,所述设备包括:处理器和存储器,所述存储器存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求6所述的服务发布方法。
9.一种路由管理设备,其特征在于,所述设备包括:处理器和存储器,所述存储器存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求7所述的服务发布方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求6或7所述的服务发布方法。
CN201810135823.3A 2018-02-09 2018-02-09 服务发布系统、方法、设备及存储介质 Active CN108376118B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810135823.3A CN108376118B (zh) 2018-02-09 2018-02-09 服务发布系统、方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810135823.3A CN108376118B (zh) 2018-02-09 2018-02-09 服务发布系统、方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN108376118A true CN108376118A (zh) 2018-08-07
CN108376118B CN108376118B (zh) 2021-07-13

Family

ID=63017532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810135823.3A Active CN108376118B (zh) 2018-02-09 2018-02-09 服务发布系统、方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN108376118B (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241482A (zh) * 2018-08-28 2019-01-18 优视科技新加坡有限公司 确定变更事件发布成功的方法及其装置
CN109669719A (zh) * 2018-09-26 2019-04-23 深圳壹账通智能科技有限公司 应用灰度发布方法、装置、设备及可读存储介质
CN109739527A (zh) * 2018-11-20 2019-05-10 北京奇艺世纪科技有限公司 一种客户端灰度发布的方法、装置、服务器和存储介质
CN109788029A (zh) * 2018-12-14 2019-05-21 平安信托有限责任公司 微服务的灰度调用方法、装置、终端及可读存储介质
CN110032488A (zh) * 2018-11-22 2019-07-19 阿里巴巴集团控股有限公司 集群中特定节点的监控系统、方法、装置及业务服务器
CN110704483A (zh) * 2019-09-06 2020-01-17 平安普惠企业管理有限公司 用户路由流程定位方法、设备、存储介质及装置
CN110716730A (zh) * 2019-10-14 2020-01-21 网易(杭州)网络有限公司 灰度发布方法、装置、设备及计算机可读存储介质
CN110874258A (zh) * 2018-08-31 2020-03-10 阿里巴巴集团控股有限公司 物理机变更方法、装置
CN110912734A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 云管理平台实现容器应用多维度灰度发布方法及装置
CN110958314A (zh) * 2019-11-28 2020-04-03 盛业信息科技服务(深圳)有限公司 服务的灰度发布方法、装置和计算机设备
CN111124431A (zh) * 2019-12-31 2020-05-08 贵阳货车帮科技有限公司 服务回调方法、业务处理方法、装置、设备及存储介质
CN111506455A (zh) * 2020-03-31 2020-08-07 拉扎斯网络科技(上海)有限公司 服务发布结果的查验方法及装置
CN111628894A (zh) * 2020-05-28 2020-09-04 上海冰鉴信息科技有限公司 基于用户请求流量控制的灰度发布方法、装置及系统
CN111786885A (zh) * 2020-06-23 2020-10-16 中国工商银行股份有限公司 分布式全链路灰度路由方法及装置
CN111858312A (zh) * 2020-06-24 2020-10-30 广州亚美信息科技有限公司 应用程序的页面显示方法、装置、计算机设备和存储介质
CN112035126A (zh) * 2020-09-22 2020-12-04 北京百度网讯科技有限公司 用于灰度发布的处理方法和装置、电子设备和存储介质
CN112114869A (zh) * 2020-09-18 2020-12-22 聚好看科技股份有限公司 一种服务器、灰度发布方法、装置及介质
CN112433751A (zh) * 2020-12-18 2021-03-02 江苏满运物流信息有限公司 灰度发布方法、装置、电子设备和存储介质
CN113076248A (zh) * 2021-04-08 2021-07-06 马上消费金融股份有限公司 一种应用处理方法、装置、设备及可读存储介质
CN113411395A (zh) * 2021-06-18 2021-09-17 微民保险代理有限公司 访问请求路由方法、装置、计算机设备和存储介质
CN114884915A (zh) * 2022-04-19 2022-08-09 阿里巴巴(中国)有限公司 基于灰度发布的消息处理方法、装置以及设备
WO2022267677A1 (zh) * 2021-06-22 2022-12-29 康键信息技术(深圳)有限公司 基于全站灰度的版本更新方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102064954A (zh) * 2009-11-17 2011-05-18 腾讯科技(深圳)有限公司 一种分布式容错系统、设备和方法
CN102497454A (zh) * 2011-12-31 2012-06-13 北京新媒传信科技有限公司 一种在应用服务平台系统中对应用进行灰度发布的方法
CN103176790A (zh) * 2011-12-26 2013-06-26 阿里巴巴集团控股有限公司 应用发布方法和系统
CN103916374A (zh) * 2013-01-09 2014-07-09 腾讯科技(深圳)有限公司 服务灰度发布方法及装置
CN104378304A (zh) * 2013-08-14 2015-02-25 腾讯科技(深圳)有限公司 灰度发布的控制方法、装置及系统
US20150067423A1 (en) * 2013-08-28 2015-03-05 International Business Machines Corporation A q-gating cell architecture to satiate the launch-off-shift (los) testing and an algorithm to identify best q-gating candidates
CN105791341A (zh) * 2014-12-22 2016-07-20 华为软件技术有限公司 一种应用发布的处理方法、装置及系统
US20170039507A1 (en) * 2015-08-07 2017-02-09 International Business Machines Corporation Determining Users for Limited Product Deployment Based on Review Histories
CN107145347A (zh) * 2017-04-27 2017-09-08 努比亚技术有限公司 一种应用灰度发布方法、设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102064954A (zh) * 2009-11-17 2011-05-18 腾讯科技(深圳)有限公司 一种分布式容错系统、设备和方法
CN103176790A (zh) * 2011-12-26 2013-06-26 阿里巴巴集团控股有限公司 应用发布方法和系统
CN102497454A (zh) * 2011-12-31 2012-06-13 北京新媒传信科技有限公司 一种在应用服务平台系统中对应用进行灰度发布的方法
CN103916374A (zh) * 2013-01-09 2014-07-09 腾讯科技(深圳)有限公司 服务灰度发布方法及装置
CN104378304A (zh) * 2013-08-14 2015-02-25 腾讯科技(深圳)有限公司 灰度发布的控制方法、装置及系统
US20150067423A1 (en) * 2013-08-28 2015-03-05 International Business Machines Corporation A q-gating cell architecture to satiate the launch-off-shift (los) testing and an algorithm to identify best q-gating candidates
CN105791341A (zh) * 2014-12-22 2016-07-20 华为软件技术有限公司 一种应用发布的处理方法、装置及系统
US20170039507A1 (en) * 2015-08-07 2017-02-09 International Business Machines Corporation Determining Users for Limited Product Deployment Based on Review Histories
CN107145347A (zh) * 2017-04-27 2017-09-08 努比亚技术有限公司 一种应用灰度发布方法、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JAKUB CHLAPINSKI等: "Releasing aperture filter constraints", 《INSTITUTE OF ELECTRICAL AND ELECTRONIC ENGINEERS》 *
颜振东: "移动应用灰度发布系统的设计与实现", 《CNKI优秀硕士学位论文全文库 信息科技辑》 *

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241482A (zh) * 2018-08-28 2019-01-18 优视科技新加坡有限公司 确定变更事件发布成功的方法及其装置
WO2020044090A1 (zh) * 2018-08-28 2020-03-05 优视科技新加坡有限公司 确定变更事件发布成功的方法及其装置
CN110874258B (zh) * 2018-08-31 2023-05-26 阿里巴巴集团控股有限公司 物理机变更方法、装置
CN110874258A (zh) * 2018-08-31 2020-03-10 阿里巴巴集团控股有限公司 物理机变更方法、装置
CN109669719A (zh) * 2018-09-26 2019-04-23 深圳壹账通智能科技有限公司 应用灰度发布方法、装置、设备及可读存储介质
CN109739527A (zh) * 2018-11-20 2019-05-10 北京奇艺世纪科技有限公司 一种客户端灰度发布的方法、装置、服务器和存储介质
CN109739527B (zh) * 2018-11-20 2022-07-08 北京奇艺世纪科技有限公司 一种客户端灰度发布的方法、装置、服务器和存储介质
CN110032488B (zh) * 2018-11-22 2023-09-29 创新先进技术有限公司 集群中特定节点的监控系统、方法、装置及业务服务器
CN110032488A (zh) * 2018-11-22 2019-07-19 阿里巴巴集团控股有限公司 集群中特定节点的监控系统、方法、装置及业务服务器
CN109788029A (zh) * 2018-12-14 2019-05-21 平安信托有限责任公司 微服务的灰度调用方法、装置、终端及可读存储介质
CN110704483A (zh) * 2019-09-06 2020-01-17 平安普惠企业管理有限公司 用户路由流程定位方法、设备、存储介质及装置
CN110716730B (zh) * 2019-10-14 2023-09-26 网易(杭州)网络有限公司 灰度发布方法、装置、设备及计算机可读存储介质
CN110716730A (zh) * 2019-10-14 2020-01-21 网易(杭州)网络有限公司 灰度发布方法、装置、设备及计算机可读存储介质
CN110912734B (zh) * 2019-10-31 2022-07-22 北京浪潮数据技术有限公司 云管理平台实现容器应用多维度灰度发布方法及装置
CN110912734A (zh) * 2019-10-31 2020-03-24 北京浪潮数据技术有限公司 云管理平台实现容器应用多维度灰度发布方法及装置
CN110958314A (zh) * 2019-11-28 2020-04-03 盛业信息科技服务(深圳)有限公司 服务的灰度发布方法、装置和计算机设备
CN111124431A (zh) * 2019-12-31 2020-05-08 贵阳货车帮科技有限公司 服务回调方法、业务处理方法、装置、设备及存储介质
CN111506455A (zh) * 2020-03-31 2020-08-07 拉扎斯网络科技(上海)有限公司 服务发布结果的查验方法及装置
CN111628894A (zh) * 2020-05-28 2020-09-04 上海冰鉴信息科技有限公司 基于用户请求流量控制的灰度发布方法、装置及系统
CN111786885A (zh) * 2020-06-23 2020-10-16 中国工商银行股份有限公司 分布式全链路灰度路由方法及装置
CN111786885B (zh) * 2020-06-23 2022-07-05 中国工商银行股份有限公司 分布式全链路灰度路由方法及装置
CN111858312A (zh) * 2020-06-24 2020-10-30 广州亚美信息科技有限公司 应用程序的页面显示方法、装置、计算机设备和存储介质
CN112114869A (zh) * 2020-09-18 2020-12-22 聚好看科技股份有限公司 一种服务器、灰度发布方法、装置及介质
CN112035126A (zh) * 2020-09-22 2020-12-04 北京百度网讯科技有限公司 用于灰度发布的处理方法和装置、电子设备和存储介质
CN112035126B (zh) * 2020-09-22 2023-10-20 北京百度网讯科技有限公司 用于灰度发布的处理方法和装置、电子设备和存储介质
CN112433751A (zh) * 2020-12-18 2021-03-02 江苏满运物流信息有限公司 灰度发布方法、装置、电子设备和存储介质
CN112433751B (zh) * 2020-12-18 2022-07-08 江苏满运物流信息有限公司 灰度发布方法、装置、电子设备和存储介质
CN113076248A (zh) * 2021-04-08 2021-07-06 马上消费金融股份有限公司 一种应用处理方法、装置、设备及可读存储介质
CN113411395A (zh) * 2021-06-18 2021-09-17 微民保险代理有限公司 访问请求路由方法、装置、计算机设备和存储介质
WO2022267677A1 (zh) * 2021-06-22 2022-12-29 康键信息技术(深圳)有限公司 基于全站灰度的版本更新方法、装置、设备及存储介质
CN114884915A (zh) * 2022-04-19 2022-08-09 阿里巴巴(中国)有限公司 基于灰度发布的消息处理方法、装置以及设备
CN114884915B (zh) * 2022-04-19 2024-03-26 阿里巴巴(中国)有限公司 基于灰度发布的消息处理方法、装置以及设备

Also Published As

Publication number Publication date
CN108376118B (zh) 2021-07-13

Similar Documents

Publication Publication Date Title
CN108376118A (zh) 服务发布系统、方法、设备及存储介质
US9164806B2 (en) Processing pattern framework for dispatching and executing tasks in a distributed computing grid
US8112434B2 (en) Performance of an enterprise service bus by decomposing a query result from the service registry
JP5006348B2 (ja) 応答出力キャッシュに対するマルチキャッシュ協調
US8635250B2 (en) Methods and systems for deleting large amounts of data from a multitenant database
CN107666525A (zh) 集群容器ip分配的方法和装置
US9495411B2 (en) Increased parallelism performance of batch requests
CN106537863A (zh) 网络设备中的处理并发性
US20060123121A1 (en) System and method for service session management
CN101146127B (zh) 一种分布式系统中客户端缓存更新的方法和装置
US20110010420A1 (en) Client environment creation system, client environment creation method, client environment creation program and storage medium
CN107357857A (zh) 一种更新缓存信息的方法及服务节点设备
US8627327B2 (en) Thread classification suspension
CN106936623A (zh) 分布式缓存系统及缓存集群的管理方法
CN109450987A (zh) 编号生成方法、装置及系统和存储介质
CN102317907A (zh) 任务环境生成系统、任务环境生成方法和存储介质
CN107562905A (zh) 数据的管理方法、服务器及计算机可读存储介质
CN108897626A (zh) 一种资源调度方法及服务器
CN101582071A (zh) 数据更新系统及方法
CN110096258A (zh) 一种基于Terraform的OpenStack基础设施架构管理的方法
CN106547790A (zh) 一种关系型数据库服务系统
CN111917573B (zh) 监控方法、监控系统及计算设备
US9258187B2 (en) System and method for optimizing and digitally correcting errors on a computer system
EP2336902A2 (en) A method and system for improving information system performance based on usage pattern
US20050283455A1 (en) Processing of data sets in a computer network

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