CN110609704B - 服务程序版本的灰度调整方法、装置及系统 - Google Patents
服务程序版本的灰度调整方法、装置及系统 Download PDFInfo
- Publication number
- CN110609704B CN110609704B CN201910889156.2A CN201910889156A CN110609704B CN 110609704 B CN110609704 B CN 110609704B CN 201910889156 A CN201910889156 A CN 201910889156A CN 110609704 B CN110609704 B CN 110609704B
- Authority
- CN
- China
- Prior art keywords
- target
- version
- instances
- current
- traffic weight
- 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 56
- 230000007423 decrease Effects 0.000 claims abstract description 13
- 230000003247 decreasing effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
Images
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
- G06F8/71—Version 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)
- Traffic Control Systems (AREA)
Abstract
本申请公开了一种服务程序版本的灰度调整方法、装置及系统,属于通信技术领域。所述方法包括:获取目标灰度参数;控制服务器将目标版本的当前实例数调整为目标实例数;在目标版本的实例中已启动实例的个数小于目标版本的目标实例数时,控制服务器增大目标版本的当前流量权重,并减小另一版本的当前流量权重;在已启动实例的个数等于目标版本的目标实例数时,控制服务器将目标版本的当前流量权重调整为目标版本的目标流量权重,将另一版本的当前流量权重调整为另一版本的目标流量权重,以及将另一版本的当前实例数调整为另一版本的目标实例数。本申请解决了目标版本无法正常运行的情况。本申请用于服务程序版本的灰度调整。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种服务程序版本的灰度调整方法、装置及系统。
背景技术
灰度发布又称为蓝绿部署,是指在服务器上同时部署服务程序的老版本和新版本,然后再对这两个版本进行灰度调整,直至将服务程序的全部的流量均由老版本切换至新版本。
相关技术中,服务器上设置有每个版本的流量权重和实例数。其中,服务器会按照每个版本的流量权重,为该版本分配该服务程序的流量。需要说明的是,服务器具有多个实例,服务程序的每个版本需要通过多个实例执行该版本的服务程序,该多个实例的个数可以称为该版本的实例数。服务器在对服务程序的两个版本进行灰度调整时,需要首先确定这两个版本中流量权重增大的版本,之后,再依次增大该版本的实例数和流量权重,最后,再降低另一版本的流量权重。
但是,相关技术中服务器在增大流量增大版本的实例数时,若服务器中的实例数不足,则会导致该版本的实例中已启动实例的个数小于该实例数,导致该版本的实例无法承担分配给该版本的流量,进而使该版本无法正常运行。
发明内容
本申请提供了一种服务程序版本的灰度调整方法、装置及系统,所述技术方案如下:
一方面,提供了一种服务程序版本的灰度调整方法,所述方法包括:
获取目标灰度参数,所述目标灰度参数包括:所述服务程序的两个版本各自待调整至的目标流量权重和目标实例数;
在所述两个版本中存在目标流量权重大于当前流量权重的目标版本,且所述目标版本的当前实例数小于目标实例数时,控制服务器将所述目标版本的当前实例数调整为目标实例数,所述服务程序运行在所述服务器上;
在所述目标版本的实例中已启动实例的个数小于所述目标版本的目标实例数时,控制所述服务器增大所述目标版本的当前流量权重,并减小所述两个版本中除所述目标版本之外的另一版本的当前流量权重,其中,所述目标版本增大后的当前流量权重小于目标流量权重。
另一方面,提供了一种服务程序版本的灰度调整装置,所述灰度调整装置包括:
获取模块,用于获取目标灰度参数,所述目标灰度参数包括:所述服务程序的两个版本各自待调整至的目标流量权重和目标实例数;
第一控制模块,用于在所述两个版本中存在目标流量权重大于当前流量权重的目标版本,且所述目标版本的当前实例数小于目标实例数时,控制服务器将所述目标版本的当前实例数调整为目标实例数,所述服务程序运行在所述服务器上;
第二控制模块,用于在所述目标版本的实例中已启动实例的个数小于所述目标版本的目标实例数时,控制所述服务器增大所述目标版本的当前流量权重,并减小所述两个版本中除所述目标版本之外的另一版本的当前流量权重,其中,所述目标版本增大后的当前流量权重小于目标流量权重。
又一方面,提供了一种服务程序版本的灰度调整系统,其特征在于,所述灰度调整系统包括:服务器,以及上述灰度调整装置。
本申请提供的技术方案带来的有益效果至少包括:
本申请提供的服务程序版本的灰度调整方法中,灰度调整装置能够检测目标版本的已启动实例的个数是否等于目标版本的目标实例数,并在已启动实例的个数小于目标版本的目标实例数时,并未直接将目标版本的当前流量权重调整至目标流量权重,从而使得目标版本的已启动实例能够承担分配给该版本的流量。这样一来,就避免了目标版本的无法正常运行。
并且,该过程中并不需要工作人员手动对实例数进行调整,因此,灰度调整的效率较高,且人力成本较低。
附图说明
图1为本发明实施例提供的一种服务程序版本的灰度调整方法的应用场景示意图;
图2为本发明实施例提供的一种服务程序版本的灰度调整方法的流程图;
图3为本发明实施例提供的另一种服务程序版本的灰度调整方法的流程图;
图4为本发明实施例提供的一种指定文件的示意图;
图5为本发明实施例提供的一种流量权重文件的示意图;
图6为本发明实施例提供的一种服务程序版本的灰度调整装置的结构示意图;
图7为本发明实施例提供的另一种服务程序版本的灰度调整装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为本发明实施例提供的一种服务程序版本的灰度调整方法的应用场景示意图,如图1所示,服务程序版本的灰度调整系统包括:服务器01、终端02以及灰度调整装置03。
其中,服务器01上可以运行有服务程序的多个版本(如图1中的版本A和版本B),终端02能够与该服务器01建立通信连接,并向服务器01发送该服务程序相关的数据,该数据也可以称为该服务程序的流量。服务器01在接收到服务程序的流量后,可以基于服务程序每个版本的流量权重(与流量占比相关),将该服务程序的流量分摊给服务程序的各个版本,以便于每个版本的服务程序对分摊到的流量进行处理。
需要说明的是,服务器01包括处理器和存储器,可能还有其他的硬件结构,存储器上存储有多个程序。服务器01中的所有硬件结构能够划分为多个实例,每个实例包括程序,以及用于执行该程序的硬件资源等。服务器01中运行的每个版本的服务程序在运行时,均需要通过服务器01中的至少一个实例分别执行该服务程序中的程序。服务器01可以为k8s服务器(一种用于灰度发布服务程序的服务器,英文为Kubernetes)或者其他用于灰度发布服务程序的服务器。
相关技术中服务器01在对服务程序的两个版本(如新版本和旧版本)进行灰度调整(比如调整两个版本的流量权重和实例数)时,可以首先确定这两个版本中需要增大流量权重的版本,之后,再依次增大该版本的实例数和流量权重,最后,再降低另一版本的流量权重。其中,在增大某一版本的实例数后,服务器01需要基于该实例数为该版本新增实例,并且每个新增的实例在新增成功后均会启动(也即该实例能够正常执行该版本中的程序)。但是,服务器01在增大流量增大版本的实例数时,若服务器中的实例数不足,则会导致该版本的实例中已启动实例的个数小于该实例数,导致该版本的实例无法承担分配给该版本的流量,进而使该版本的服务程序无法正常运行。
为了解决该问题,相关技术中工作人员可以手动对服务器中各个版本的实例进行调整,以释放某些版本的实例,从而增加服务器中能够分配的实例。但是,该方法需要工作人员手动调整实例,导致灰度调整的效率较低,且人力成本较高。
本发明实施例提供了一种用于图1中的灰度调整装置03的灰度调整方法,其中,灰度调整装置03与服务器01建立有通信连接,灰度调整装置03用于控制服务器01对服务程序的版本进行灰度调整。需要说明的是,该灰度调整装置03可以为服务器01的外置装置,当然该灰度调整装置03也可以集成在服务器01中,本发明实施例以灰度调整装置03为服务器01的外置装置为例。基于本发明实施例提供的灰度调整方法对服务程序的版本进行灰度调整时,不会导致某一版本的服务程序无法正常运行,且无需工作人员手动调整实例。
示例地,图2为本发明实施例提供的一种服务程序版本的灰度调整方法的流程图,该灰度调整方法可以用于图1中的灰度调整装置03。如图2所示,所述方法包括:
步骤201、获取目标灰度参数,目标灰度参数包括:服务程序的两个版本各自待调整至的目标流量权重和目标实例数;
步骤202、在两个版本中存在目标流量权重大于当前流量权重的目标版本,且目标版本的目标实例数大于当前实例数时,控制服务器将目标版本的当前实例数调整为目标版本的目标实例数,服务程序运行在服务器上;
步骤203、在目标版本的实例中已启动实例的个数小于目标版本的目标实例数时,控制服务器增大目标版本的当前流量权重,并减小所述两个版本中除目标版本之外的另一版本的当前流量权重,其中,目标版本增大后的当前流量权重小于目标流量权重。
综上所述,本发明实施例提供的服务程序版本的灰度调整方法中,灰度调整装置能够检测目标版本的已启动实例的个数是否等于目标版本的目标实例数,并在已启动实例的个数小于目标版本的目标实例数时,并未直接将目标版本的当前流量权重调整至目标流量权重,从而使得目标版本的已启动实例能够承担分配给该版本的流量。这样一来,就避免了目标版本的无法正常运行。
并且,该过程中并不需要工作人员手动对实例数进行调整,因此,灰度调整的效率较高,且人力成本较低。
示例地,图3为本发明实施例提供的另一种服务程序版本的灰度调整方法的流程图,该灰度调整方法可以用于图1中的灰度调整装置03。如图3所示,所述方法包括:
步骤301、获取待调整至的目标灰度参数。
灰度调整装置能够与服务器建立通信连接,因此,灰度调整装置能够获取到工作人员输入至服务器的灰度调整指令,并基于该灰度调整指令获取目标灰度参数,该目标灰度参数包括:服务程序的两个版本各自待调整至的目标流量权重和目标实例数。
示例地,服务器中的指定文件可以存储有工作人员输入的灰度调整指令。该指定文件可以位于服务器中的TPR/CRD中,TPR为Third party resource的简称,中文为第三方资源类型;CRD为Custom resource Definition的简称,中文为自定义资源。该指定文件可以如图4所示,该灰度调整指令可以包括:“任务、版本:V1(也即服务程序的版本V1)、目标实例数:4(也即V1的目标实例数)、目标流量权重:9999(也即V1的目标流量权重)、版本:V2(也即服务程序的版本V2)、目标实例数:1(也即V2的目标实例数)、目标流量权重:1(也即V2的目标流量权重)”。
步骤302、比较服务程序的当前灰度参数和目标灰度参数。
灰度调整装置在获取到目标灰度参数后,便可以将服务程序的目标灰度参数与当前灰度参数进行比较,该当前灰度参数包括:服务程序的两个版本各自的当前流量权重和当前实例数。
可选地,灰度调整装置也可以是在步骤302之前,先判断目标条件是否满足,并在目标条件满足时,才在步骤302中比较当前灰度参数和待调整至的灰度参数。其中,目标条件包括以下一个或两个条件:两个版本灰度调整完毕;务器并未正在对两个版本进行灰度调整。
需要说明的是,在两个版本灰度调整完毕后,这两个版本中一个版本的流量权重为零,因此,两个版本灰度调整完毕也即是:这两个版本中不存在当前流量权重为零的版本。在执行步骤302之前若两个版本已经灰度调整完毕,则表明灰度调整已经结束,此时无需执行后续灰度调整步骤。在执行步骤302时,若服务器正对这两个版本进行灰度调整,则为了避免与服务器当前对这两个版本的灰度调整冲突,也无需执行后续的灰度调整步骤。
可选地,步骤301中的指定文件还可以存储有服务程序的这两个版本是否灰度调整完毕的状态指示。如图4中的状态指示可以包括:“状态、暂停:假(代表当前两个版本还未灰度调整完毕)”。灰度调整装置可以基于该状态指示确定这两个版本是否已经灰度调整完毕。
步骤303、检测两个版本中是否存在目标流量权重大于当前流量权重的目标版本。当两个版本中不存在目标版本时,执行步骤304。当两个版本中存在目标版本时,执行步骤306。
步骤304、检测两个版本各自的目标实例数是否等于当前实例数。当两个版本中至少一个版本的目标实例数不等于当前实例数时,执行步骤305。当两个版本中至少一个版本的目标实例数等于当前实例数时,执行步骤312。
需要说明的是,当两个版本中不存在权重增加的目标版本时,若两个版本的目标实例数均等于当前实例数,则表明两个版本的权重和实例数均没变化,此时,无需对这两个版本进行灰度调整,可以直接执行步骤312结束流程。
步骤305、控制服务器将该至少一个版本中每个版本的当前实例数调整为目标实例数。
当两个版本中至少一个版本的目标实例数不等于当前实例数时,表明该至少一个版本的实例数需要更改,此时,灰度调整装置可以控制服务器按照该至少一个版本中每个版本的目标实例数,调整该版本的当前实例数,并结束流程。
步骤306、检测目标版本的当前实例数是否大于目标实例数。当目标版本的当前实例数小于或等于目标实例数时,执行步骤307;当目标版本的目标实例数大于当前实例数时,执行步骤308。
当两个版本中存在需要增大流量权重的目标版本时,灰度调整装置还需要检测目标版本的当前实例数是否大于目标实例数,以确定该目标版本的实例数是否也需要增加。
步骤307、控制服务器将两个版本的当前流量权重调整为目标流量权重,以及在另一版本的当前实例数与目标实例数不同时,将另一版本的当前实例数调整为目标实例数。执行步骤312。
如果目标版本的流量权重需要增加,但实例数不需要增加,此时灰度调整装置可以直接控制服务器按照每个版本的目标流量权重,调整每个版本的当前流量权重;以及直接按照每个版本的目标实例数,调整每个版本的当前实例数即可结束流程。
步骤308、控制服务器将目标版本的当前实例数调整为目标版本的目标实例数。执行步骤309。
如果目标版本的流量权重需要增加,且实例数也需要增加,此时灰度调整装置可以先控制服务器将目标版本的当前实例数调整为其目标实例数。需要说明的是,由于目标版本的当前实例数变为目标实例数,且目标实例数是与目标流量权重匹配的,因此会存在由于服务器的实例数不足,导致目标版本调整后的实例数中已启动的实例数无法支撑目标流量权重的情况。所以,此时还不能立即对目标版本的当前流量权重进行调整,而是需要先执行步骤309。
步骤309、周期性地检测目标版本的已启动实例的个数是否小于目标版本的目标实例数。在已启动实例的个数小于目标版本的目标实例数时,执行步骤310。在已启动实例的个数等于目标版本的目标实例数时,执行步骤311。
灰度调整装置在控制服务器调整目标版本的当前实例数后,需要周期性地获取目标版本的已启动实例的个数,并检测该个数是否达到目标版本的目标实例数。
当已启动实例的个数等于目标版本的目标实例数时,表明当前服务器中的实例充足,目标版本的已启动实例能够支撑目标流量权重。此时灰度调整装置可以直接执行步骤311,以对目标版本和另一版本的当前流量权重进行调整,以及在另一版本的实例数需要调整时对该实例数进行调整,之后便结束流程。
当已启动实例的个数小于目标版本的目标实例数时,表明当前服务器中的实例不足,目标版本的已启动实例无法支撑目标流量权重。此时灰度调整装置可以直接执行步骤310,以降低目标版本的目标流量权重,使得目标版本的已启动实例能够支撑降低后的目标流量权重。
可选地,灰度调整装置执行步骤309的周期可以为任意时长,比如1秒、10秒、20秒等。当然,该灰度调整装置也可以不是周期性地检测已启动实例的个数是否小于目标版本的目标实例数,比如仅检测已启动实例的个数是否小于目标版本的目标实例数一次。
步骤310、控制服务器增大目标版本的当前流量权重,减小两个版本中除目标版本之外的另一版本的当前流量权重,以及减小另一版本的当前实例数,且目标版本增大后的当前流量权重小于目标流量权重。
可选地,也可以是仅控制服务器增大目标版本的当前流量权重,减小目标版本之外的另一版本的当前流量权重,而并未控制服务器减小另一版本的当前实例数。
其中,在控制服务器增大目标版本的当前流量权重时,可以控制所述服务器将所述目标版本的当前流量权重增大为x1;在控制服务器减小另一版本的当前流量权重时,可以控制服务器将该另一版本的当前流量权重减小为;在控制服务器减小另一版本的当前实例数时,可以控制服务器将该另一版本的当前实例数减小为x3。其中,x1=w1/r1*n,w1表示所述目标版本增大前的当前流量权重,r1表示所述目标版本的目标实例数,n表示所述已启动实例的个数;x2=y-x1,y表示所述两个版本的总流量权重。x3=x1*r2/w2,x1表示所述目标版本增大后的当前流量权重,w2表示所述另一版本减小后的当前流量权重,r2表示所述另一版本减小前的当前实例数。
步骤311、控制服务器将目标版本的当前流量权重调整为目标版本的目标流量权重,将另一版本的当前流量权重调整为另一版本的目标流量权重,以及在另一版本的当前实例数与目标实例数不同时,将另一版本的当前实例数调整为另一版本的目标实例数。
示例地,服务器中还存储有用于记录流量权重的流量权重文件,如图5所示,该流量权重文件可以记载有:
“权重修改历史:
-××××-××-××(表示某年某月某日)
××:××:××(表示几点几分几秒)###[{版本:V1,流量权重:9000,标签:旧},{版本:V2,流量权重:1000,标签:新}](表示将版本V1的当前流量权重调整为9000,以及将版本V2的当前流量权重调整为1000,其中,版本V1为老版本,版本V2为新版本)
-××××-××-××(表示某年某月某日)
××:××:××(表示几点几分几秒)###[{版本:V1,流量权重:8000,标签:旧},{版本:V2,流量权重:2000,标签:新}](表示将版本V1的当前流量权重调整为8000,以及将版本V2的当前流量权重调整为2000,其中,版本V1为老版本,版本V2为新版本)
API(Application Programming Interface,应用程序编程接口)版本:××××××.××/××
类型:流量权重
当前流量权重:
-标签:新
版本:V2
流量权重:2000
标签:旧
版本:V1
流量权重:8000。
服务器在调整流量权重后,相应的也可以对该流量权重文件进行调整。
步骤312、结束流程。
可选地,灰度调整装置在结束流程后,还可以检测本次灰度调整是否为两个版本的最后一次灰度调整,比如检测是否存在某一版本调整后的流量权重为零,当存在该版本时,确定本次灰度调整为最后一次灰度调整,则可以相应的控制服务器将其中的状态指示调整为用于指示灰度调整完毕,比如将图4中的状态指示调整为:“状态、暂停:真(代表当前两个版本已经灰度调整完毕)”
可选地,步骤301中的指定文件中的状态指示还可以指示当前灰度调整是否是最后一步灰度调整。如图4中的状态指示还包括“最后一步:假”(代表当前灰度调整不是最后一步灰度调整)。灰度调整装置也可以基于该状态指示确定当前灰度调整是否为最后一步灰度调整步骤。
需要说明的是,本发明实施例中以灰度调整装置周期性地执行步骤309为例,可选地,灰度调整装置还可以在第一次确定已启动实例的个数小于目标版本的目标实例数时,重复执行步骤302至步骤309,本发明实施例对此不作限定。
综上所述,本发明实施例提供的服务程序版本的灰度调整方法中,灰度调整装置能够检测目标版本的已启动实例的个数是否等于目标版本的目标实例数,并在已启动实例的个数小于目标版本的目标实例数时,并未直接将目标版本的当前流量权重调整至目标流量权重,从而使得目标版本的已启动实例能够承担分配给该版本的流量。这样一来,就避免了目标版本的无法正常运行。
并且,该过程能够逐步调整目标版本的流量权重,从而实现实现流量权重的平滑调整,实现自动平滑的灰度调整。另外,该过程中并不需要工作人员手动对实例数进行调整,因此,灰度调整的效率较高,且人力成本较低。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
本发明实施例提供了一种服务程序版本的灰度调整装置,其应用于图1所示的灰度调整系统中的灰度调整装置。如图6所示,该灰度调整装置60包括:
获取模块601,用于获取目标灰度参数,所述目标灰度参数包括:所述服务程序的两个版本各自待调整至的目标流量权重和目标实例数;
第一控制模块602,用于在所述两个版本中存在目标流量权重大于当前流量权重的目标版本,且所述目标版本的当前实例数小于目标实例数时,控制服务器将所述目标版本的当前实例数调整为目标实例数,所述服务程序运行在所述服务器上;
第二控制模块603,用于在所述目标版本的实例中已启动实例的个数小于所述目标版本的目标实例数时,控制所述服务器增大所述目标版本的当前流量权重,并减小所述两个版本中除所述目标版本之外的另一版本的当前流量权重,其中,所述目标版本增大后的当前流量权重小于目标流量权重;
综上所述,本发明实施例提供的服务程序版本的灰度调整装置中,第二控制模块能够在目标版本的已启动实例的个数小于目标版本的目标实例数时,并未直接将目标版本的当前流量权重调整至目标流量权重,从而使得目标版本的已启动实例能够承担分配给该版本的流量。这样一来,就避免了目标版本的无法正常运行。
可选地,第二控制模块用于:
控制所述服务器将所述目标版本的当前流量权重增大为x1;
控制所述服务器将所述另一版本的当前流量权重减小为x2;
其中,x1=w1/r1*n,w1表示所述目标版本增大前的当前流量权重,r1表示所述目标版本的目标实例数,n表示所述已启动实例的个数;x2=y-x1,y表示所述两个版本的总流量权重。
可选地,灰度调整装置还包括:
第三控制模块,用于在所述目标版本的实例中已启动实例的个数小于所述目标版本的目标实例数时,控制所述服务器减小所述另一版本的当前实例数。
可选地,第三控制模块用于:
控制所述服务器将所述另一版本的当前实例数减小为x3;
其中,x3=x1*r2/w2,x1表示所述目标版本增大后的当前流量权重,w2表示所述另一版本减小后的当前流量权重,r2表示所述另一版本减小前的当前实例数。
可选地,灰度调整装置还包括:
第四控制模块,用于在所述已启动实例的个数等于所述目标版本的目标实例数时,控制服务器将所述目标版本的当前流量权重调整为所述目标版本的目标流量权重,将所述另一版本的当前流量权重调整为所述另一版本的目标流量权重,以及在所述另一版本的当前实例数与目标实例数不同时,将所述另一版本的当前实例数调整为所述另一版本的目标实例数。
可选地,灰度调整装置还包括:
第一检测模块(图6中未示出),用于周期性地检测已启动实例的个数是否小于目标版本的目标实例数。
可选地,灰度调整装置还包括:
第五控制模块(图6中未示出),用于在两个版本中不存在目标版本时,若两个版本中存在至少一个版本的当前实例数不等于目标实例数,则控制服务器将至少一个版本中每个版本的当前实例数调整为目标实例数。
可选地,灰度调整装置还包括:
第六控制模块(图6中未示出),用于在两个版本中存在目标版本,且目标版本的当前实例数大于或等于目标实例数时,控制服务器将两个版本的当前流量权重调整为目标流量权重,以及在另一版本的当前实例数与目标实例数不同时,将另一版本的当前实例数调整为目标实例数。
可选地,灰度调整装置还包括:
第二检测模块(图6中未示出),用于在目标条件满足时,检测两个版本中是否存在目标版本,目标条件包括以下一个或两个条件:
两个版本灰度调整完毕;
服务器并未正在对两个版本进行灰度调整。
综上所述,本发明实施例提供的服务程序版本的灰度调整装置中,第二控制模块能够在目标版本的已启动实例的个数小于目标版本的目标实例数时,并未直接将目标版本的当前流量权重调整至目标流量权重,从而使得目标版本的已启动实例能够承担分配给该版本的流量。这样一来,就避免了目标版本的无法正常运行。
本发明实施例提供了一种服务程序版本的灰度调整装置,如图7所示,所述灰度调整装置70包括:
处理器701,以及用于存储处理器701的可执行指令的存储器702。
其中,处理器701被配置为:在运行可执行指令时,能够实现本发明实施例提供的任一灰度调整方法。
本发明实施例提供了一种可读存储介质,该可读存储介质中存储有指令,当指令在处理组件上运行时,使得处理组件可以执行本发明实施例提供的任一灰度调整方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机可以执行本发明实施例提供的任一灰度调整方法。
在本发明实施例中,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。
需要说明的是,本发明实施例提供的方法实施例能够与相应的装置实施例相互参考,本发明实施例对此不做限定。本发明实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内
需要说明的是,本发明实施例提供的方法实施例能够与相应的装置实施例相互参考,本发明实施例对此不做限定。本发明实施例提供的方法实施例步骤的先后顺序能够进行适当调整,步骤也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种服务程序版本的灰度调整方法,其特征在于,所述方法包括:
获取目标灰度参数,所述目标灰度参数包括:所述服务程序的两个版本各自待调整至的目标流量权重和目标实例数;
在所述两个版本中存在目标流量权重大于当前流量权重的目标版本,且所述目标版本的当前实例数小于目标实例数时,控制服务器将所述目标版本的当前实例数调整为目标实例数,所述服务程序运行在所述服务器上;
在所述目标版本的实例中已启动实例的个数小于所述目标版本的目标实例数时,控制所述服务器将所述目标版本的当前流量权重增大为x1;
控制所述服务器将另一版本的当前流量权重减小为x2;
其中,x1=w1/r1*n,w1表示所述目标版本增大前的当前流量权重,r1表示所述目标版本的目标实例数,n表示所述已启动实例的个数;x2=y-x1,y表示所述两个版本的总流量权重,所述目标版本增大后的当前流量权重小于目标流量权重。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标版本的实例中已启动实例的个数小于所述目标版本的目标实例数时,控制所述服务器减小所述另一版本的当前实例数。
3.根据权利要求2所述的方法,其特征在于,控制所述服务器减小所述另一版本的当前实例数,包括:
控制所述服务器将所述另一版本的当前实例数减小为x3;
其中,x3=x1*r2/w2,x1表示所述目标版本增大后的当前流量权重,w2表示所述另一版本减小后的当前流量权重,r2表示所述另一版本减小前的当前实例数。
4.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
周期性地检测所述已启动实例的个数是否小于所述目标版本的目标实例数。
5.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
在所述已启动实例的个数等于所述目标版本的目标实例数时,控制服务器将所述目标版本的当前流量权重调整为所述目标版本的目标流量权重,将所述另一版本的当前流量权重调整为所述另一版本的目标流量权重,以及在所述另一版本的当前实例数与目标实例数不同时,将所述另一版本的当前实例数调整为所述另一版本的目标实例数。
6.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
在所述两个版本中不存在所述目标版本时,若所述两个版本中存在至少一个版本的当前实例数不等于目标实例数,则控制服务器将所述至少一个版本中每个版本的当前实例数调整为目标实例数;
在所述两个版本中存在所述目标版本,且所述目标版本的当前实例数大于或等于目标实例数时,控制服务器将所述两个版本的当前流量权重调整为目标流量权重,以及在所述另一版本的当前实例数与目标实例数不同时,将所述另一版本的当前实例数调整为目标实例数。
7.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
在目标条件满足时,检测所述两个版本中存在所述目标版本,所述目标条件包括以下一个或两个条件:
所述两个版本灰度调整完毕;
所述服务器并未正在对所述两个版本进行灰度调整。
8.一种服务程序版本的灰度调整装置,其特征在于,所述灰度调整装置包括:
获取模块,用于获取目标灰度参数,所述目标灰度参数包括:所述服务程序的两个版本各自待调整至的目标流量权重和目标实例数;
第一控制模块,用于在所述两个版本中存在目标流量权重大于当前流量权重的目标版本,且所述目标版本的当前实例数小于目标实例数时,控制服务器将所述目标版本的当前实例数调整为目标实例数,所述服务程序运行在所述服务器上;
第二控制模块,用于在所述目标版本的实例中已启动实例的个数小于所述目标版本的目标实例数时,控制所述服务器将所述目标版本的当前流量权重增大为x1,控制所述服务器将另一版本的当前流量权重减小为x2,其中,x1=w1/r1*n,w1表示所述目标版本增大前的当前流量权重,r1表示所述目标版本的目标实例数,n表示所述已启动实例的个数;x2=y-x1,y表示所述两个版本的总流量权重,所述目标版本增大后的当前流量权重小于目标流量权重。
9.一种服务程序版本的灰度调整系统,其特征在于,所述灰度调整系统包括:服务器,以及权利要求8所述的灰度调整装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910889156.2A CN110609704B (zh) | 2019-09-19 | 2019-09-19 | 服务程序版本的灰度调整方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910889156.2A CN110609704B (zh) | 2019-09-19 | 2019-09-19 | 服务程序版本的灰度调整方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110609704A CN110609704A (zh) | 2019-12-24 |
CN110609704B true CN110609704B (zh) | 2023-03-21 |
Family
ID=68891640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910889156.2A Active CN110609704B (zh) | 2019-09-19 | 2019-09-19 | 服务程序版本的灰度调整方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110609704B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113050978B (zh) * | 2019-12-26 | 2024-03-19 | 中国移动通信集团北京有限公司 | 应用的灰度发布控制方法、装置、设备及计算机存储介质 |
CN111782766B (zh) * | 2020-06-30 | 2023-02-24 | 福建健康之路信息技术有限公司 | 一种通过关键字检索Kubernetes集群中所有资源的方法和系统 |
CN112446714A (zh) * | 2020-12-11 | 2021-03-05 | 上海中通吉网络技术有限公司 | 快递售后工单处理系统的服务器升级方法、装置及设备 |
CN114726919B (zh) * | 2022-03-22 | 2024-02-13 | 新华三大数据技术有限公司 | 灰度流量控制的方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013026332A1 (zh) * | 2011-08-23 | 2013-02-28 | 腾讯科技(深圳)有限公司 | 一种软件安装及升级方法和装置 |
CN110162382A (zh) * | 2019-04-09 | 2019-08-23 | 平安科技(深圳)有限公司 | 基于容器的灰度发布方法、装置、计算机设备及存储介质 |
-
2019
- 2019-09-19 CN CN201910889156.2A patent/CN110609704B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013026332A1 (zh) * | 2011-08-23 | 2013-02-28 | 腾讯科技(深圳)有限公司 | 一种软件安装及升级方法和装置 |
CN110162382A (zh) * | 2019-04-09 | 2019-08-23 | 平安科技(深圳)有限公司 | 基于容器的灰度发布方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Maintaining image quality when watermarking grayscale comic images for electronic books;Takaaki Yamada 等;《 2011 9th IEEE International Conference on Industrial Informatics》;20111106;全文 * |
移动应用灰度发布系统的设计与实现;颜振东;《全国硕士学位论文全文库(信息科技辑)》;20180316;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110609704A (zh) | 2019-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110609704B (zh) | 服务程序版本的灰度调整方法、装置及系统 | |
CN105677469B (zh) | 定时任务执行方法及装置 | |
CN104809025B (zh) | 一种项目上线方法及装置 | |
CN104834602B (zh) | 一种程序发布方法、装置和程序发布系统 | |
EP1489508B1 (en) | Task management device and method, operation judgment device and method, and program to be judged | |
CN110457197B (zh) | 服务测试方法、装置、计算机设备和存储介质 | |
CN110378529B (zh) | 一种数据生成的方法、装置、可读存储介质和电子设备 | |
CN110689254A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
EP2637366A1 (en) | Method and device for interprocess communication and computer storage medium | |
EP2916301A1 (en) | Self-service terminal (SST) backups and rollbacks | |
CN107645476B (zh) | 请求处理方法和装置 | |
EP4020200B1 (en) | Resource management platform-based task allocation method and system | |
CN110162322A (zh) | 一种升级方法及装置 | |
CN107301055A (zh) | 升级服务器的方法及装置 | |
CN112486535A (zh) | 一种用于NB-IoT设备的远程升级方法及系统 | |
CN114840248A (zh) | 一种基于企业级分布式应用服务的系统灰度发布方法 | |
CN108696554B (zh) | 负载均衡方法和装置 | |
US9298447B2 (en) | Method and device for the management of software updates of a set of equipment of a system such as an aircraft system | |
CN117519973A (zh) | 资源调节方法、装置、及设备 | |
CN111708545B (zh) | 业务流程的部署方法、装置、电子设备及存储介质 | |
CN115174223B (zh) | 一种工控主机安全防护方法、系统、智能终端及存储介质 | |
KR102421633B1 (ko) | 자원 사용량을 고려한 소프트웨어 배포 스케줄링 방법 및 장치 | |
CN113452622A (zh) | 一种基于客户端的灰度分流方法 | |
CN111581042B (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240725 Address after: 266061 No. 399 Songling Road, Laoshan District, Qingdao, Shandong (A6 3rd floor) Patentee after: QINGDAO JUKANYUN TECHNOLOGY CO.,LTD. Country or region after: China Address before: 266100 Songling Road, Laoshan District, Qingdao, Shandong Province, No. 399 Patentee before: JUHAOKAN TECHNOLOGY Co.,Ltd. Country or region before: China |