CN113900686A - 一种灰度系统的发布方法、服务器及介质 - Google Patents
一种灰度系统的发布方法、服务器及介质 Download PDFInfo
- Publication number
- CN113900686A CN113900686A CN202111153156.XA CN202111153156A CN113900686A CN 113900686 A CN113900686 A CN 113900686A CN 202111153156 A CN202111153156 A CN 202111153156A CN 113900686 A CN113900686 A CN 113900686A
- Authority
- CN
- China
- Prior art keywords
- gray
- node
- gray scale
- rule
- gateway
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例适用于系统更新技术领域,提供了一种灰度系统的发布方法、服务器及介质,所述方法包括:当接收到发布灰度系统的指令时,获取所述灰度系统的灰度规则,所述灰度规则包括第一灰度规则和第二灰度规则;根据所述第一灰度规则,将业务系统中各个子系统的目标节点配置为灰度节点,所述业务系统还包括灰度网关;根据所述第二灰度规则和所述灰度节点,更新所述灰度网关,所述灰度网关用于识别并转发用户请求;根据所述灰度网关和所述灰度节点,建立灰度调用链,以构成所述灰度系统。通过上述方法,能够利用当前系统环境发布灰度系统,从而减少资源浪费。
Description
技术领域
本申请属于系统更新技术领域,特别是涉及一种灰度系统的发布方法、服务器及介质。
背景技术
当需要更新系统时,通常会采用灰度发布的方法进行系统升级。采用灰度发布的方法进行系统升级,一方面可以及时解决新系统出现的问题,另一方面可以考虑到用户对于新系统的喜好度,从而实现新旧系统的平稳过渡。
目前的灰度发布方法,一般是部署两套系统,将其中一个系统作为另一个系统的灰度系统。但是部署两套系统环境,增加了服务器资源成本,同时也增加了运维成本。
发明内容
有鉴于此,本申请实施例提供了一种灰度系统的发布方法、服务器及介质,用以在灰度发布过程中降低成本。
本申请实施例的第一方面提供了一种灰度系统的发布方法,所述方法包括:
当接收到发布灰度系统的指令时,获取所述灰度系统的灰度规则,所述灰度规则包括第一灰度规则和第二灰度规则;
根据所述第一灰度规则,将业务系统中各个子系统的目标节点配置为灰度节点,所述业务系统还包括灰度网关;
根据所述第二灰度规则和所述灰度节点,更新所述灰度网关,所述灰度网关用于识别并转发用户请求;
根据所述灰度网关和所述灰度节点,建立灰度调用链,以构成所述灰度系统。
本申请实施例的第二方面提供了一种灰度系统的发布装置,所述装置包括:
获取模块,用于当接收到发布灰度系统的指令时,获取所述灰度系统的灰度规则,所述灰度规则包括第一灰度规则和第二灰度规则;
配置模块,用于根据所述第一灰度规则,将业务系统中各个子系统的目标节点配置为灰度节点,所述业务系统还包括灰度网关;
更新模块,用于根据所述第二灰度规则和所述灰度节点,更新所述灰度网关,所述灰度网关用于识别并转发用户请求;
建立模块,用于根据所述灰度网关和所述灰度节点,建立灰度调用链,以构成所述灰度系统。
本申请实施例的第三方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的灰度系统的发布方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的灰度系统的发布方法。
本申请实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在服务器上运行时,使得所述服务器执行上述第一方面所述的灰度系统的发布方法。
与现有技术相比,本申请实施例包括以下优点:
在本申请实施例中,当需要进行灰度系统的发布时,可以从当前的业务系统中抽取一部分节点,作为灰度节点,然后更新灰度网关;采用灰度网关和灰度节点构建灰度调用链,从而完成在现有系统中发布灰度系统。本申请实施例中,在发布灰度系统时,不需要重新部署在另一套系统环境中,节省了计算机资源,同时降低了运维成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例的一种灰度系统的发布方法的步骤流程示意图;
图2是本申请一个实施例的另一种灰度系统的发布方法的步骤流程示意图;
图3是本申请一个实施例的一种正常系统的运行流程图;
图4是本申请一个实施例的一种灰度系统发布时系统的运行流程图;
图5是本申请一个实施例的又一种灰度系统的发布方法的步骤流程示意图;
图6是本申请一个实施例的一种灰度系统的发布装置的示意图;
图7是本申请一个实施例的一种服务器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
下面通过具体实施例来说明本申请的技术方案。
参照图1,示出了本申请一个实施例的一种灰度系统的发布方法的步骤流程示意图,具体可以包括如下步骤:
S101,当接收到发布灰度系统的指令时,获取所述灰度系统的灰度规则,所述灰度规则包括第一灰度规则和第二灰度规则。
本实施例的执行主体为服务器,具体可以应用于系统更新。
上述灰度系统可以为需要新发布的系统。当系统发展到一定程度后,升级系统时,需要考虑新系统产生的影响是否可以接受,比如可能会出现未知的bug,或者用户不喜欢新的系统,这时候我们可能就需要一套灰度方案发布新系统;发布时开始先找一部分试点用户使用,确定用户是否满意,新系统是否存在已知bug;当新系统一切正常的时候才可以考虑全面升级;当新系统有问题时或者用户反馈不好,可以快速撤回到原来的系统,并针对这批试点用户存在的问题进行修复,从而可以将升级失败带来的损失降到最低。比如,现有的银行系统中开发了新的功能,需要对系统进行升级,灰度系统是指新开发的系统,新开发的系统还没经过测试,并不清楚该系统的稳定性,因此,在进行系统升级时,一般采用灰度发布的方法完成对新系统的测试和发布。
具体地,本实施例中,是在现有的系统环境中抽取一部分资源进行灰度系统的发布。现有的系统环境中,包括一个稳定运行的业务系统,业务系统中,包括至少一个子系统集群,每个子系统集群中,可以包括多个节点,每个节点用于对子系统接收到的请求进行处理。另外,业务系统中,还可以包括一个网关,该网关用于识别和转发用户请求,从而将用户请求发送至对应的处理节点。在本实施例中,为了便于与灰度系统区别,可以采用正常系统代指系统中稳定运行的业务系统。
灰度后台在进行灰度系统的发布时,会向业务系统中的网关和各个子系统发送灰度系统的发布指令和灰度规则。
当系统接收到灰度后台的灰度系统的发布指令时,可以从灰度后台获取灰度规则,灰度规则用于确定从当前的系统环境中抽调哪些系统资源构建灰度系统。灰度规则可以包括第一灰度规则,和第二灰度规则,每个子系统可以获取到对应的第一灰度规则,灰度网关可以获取到对应的第二灰度规则。
S102,根据所述第一灰度规则,将业务系统中各个子系统的目标节点配置为灰度节点,所述业务系统还包括灰度网关。
具体地,上述目标节点为子系统中需要配置为灰度节点的节点。灰度节点用于在灰度系统构建完成后处理灰度请求。
在本实施例中,每个子系统中至少包括两个节点,在正常系统中,可以将其称为正常节点。在进行灰度系统的发布时,子系统根据灰度规则,将至少一个节点设置为灰度节点。相当于,在灰度发布过程中,每个子系统包括至少一个正常节点和至少一个灰度节点。各个子系统灰度节点的数量可以不同。在一种可能的实现方式中,可以采用Dubbo进行灰度节点的设置,Dubbo远程服务调用的分布式框架。
S103,根据所述第二灰度规则和所述灰度节点,更新所述灰度网关,所述灰度网关用于识别并转发用户请求。
具体地,灰度网关用于根据用户请求的请求参数对接收到的用户请求进行识别和转发。用户请求是指用户发送到系统中,需要系统进行处理的业务;在灰度系统发布的过程中,一部分用户被设置为灰度用户,用于对灰度系统进行测试。对于未被设置为灰度用户的其他用户,可以成为正常用户。
灰度用户发送的灰度请求与正常用户发送的正常请求的请求参数不同,灰度网关可以根据请求参数识别用户请求是否为灰度请求。第二灰度规则中,可以包括灰度请求和正常请求的识别标识,从而灰度网关可以根据第二灰度规则更新灰度网关,使得灰度网关能够识别灰度请求和正常请求。
灰度网关需要对用户请求进行转发。在进行转发时,灰度网关需要将灰度请求发送至灰度节点,将正常请求发送至正常节点,因此其需要确定可以转发的灰度节点和正常节点。根据灰度节点,灰度网关可以更新转发规则,确定灰度转发表和正常转发表,灰度转发表用于对灰度请求进行转发,正常转发表用于对正常请求进行转发。
S104,根据所述灰度网关和所述灰度节点,建立灰度调用链,以构成所述灰度系统。
具体地,根据灰度网关和灰度节点,可以建立起灰度调用链。通过该灰度调用链,可以对灰度用户的灰度请求进行处理。此时,现有的系统环境中可以包括原有的正常系统和灰度调用链构建的灰度系统,灰度系统和正常系统在同一个系统环境中通过调用链实现了隔离,互不干扰。
在本实施例中,从现有的稳定系统中抽取了网关中的一部分资源和子系统中的一部分节点,在系统环境中建立了灰度调用链,完成了灰度系统的发布。在灰度系统发布过程中,不需要重新部署另一套系统环境,节省了服务器资源;同时降低了系统的维护成本。
参照图2,示出了本申请一个实施例的另一种灰度系统的发布方法的步骤流程示意图,具体可以包括如下步骤:
S201,当接收到发布灰度系统的指令时,获取所述灰度系统的灰度规则,所述灰度规则包括第一灰度规则和第二灰度规则。
具体地,本实施例的执行者主体为服务器,比如可以应用在服务器集群中,执行主体可以为主服务器。本实施例中的方案,针对应用的发版,子系统的概念是对应于公司内部的系统的子系统,例如:商城系统、会员系统、商户系统、商品系统、订单系统、营销系统等等。
图3是正常系统的运行流程图;参照图3,在灰度系统发布之前,业务系统中的各个子系统中的所有节点均为正常节点。系统中可以包括子系统1集群、子系统2集群、子系统3集群、消息队列、其他依赖系统及灰度网关。在正常系统中,所有用户发送的请求都是正常请求,灰度网关可以根据用户请求的请求参数将其发送到对应的子系统中的某个正常节点中,子系统1中的正常节点可以调用子系统2中的正常节点对用户请求进行处理。
图4是本申请灰度系统发布时系统的运行流程图;参照图4,在进行灰度系统的发布时,灰度后台会向灰度网关和各个子系统集群发布灰度规则。在本实施例中,为了便于区分,将子系统接收到的灰度规则称为第一灰规则,将灰度网关接收到的灰度规则称为第二灰度规则。
参照图3和图4,灰度后台用于控制灰度系统的发布。当发布灰度系统时,运维管理人员可以采用灰度后台创建或修改灰度规则,从而向当前的系统环境中发布灰度规则。当前系统环境中的子系统会接收到第一灰度规则;灰度网关会接收到第二灰度规则。
本方案是在现有的系统环境中(不部署两套系统,只有一套系统)抽起一部分资源(所有可分隔的子系统都必须至少部署两个节点)作为灰度系统,用来发布新系统,当确定新系统没有问题时,可以逐步将资源都至为灰度系统,当全部为灰度系统时就发布完成(因为本方案采用了系统内抽取其中一部分资源进行部署,处于一套系统环境中,因此数据同步较为迅速也容易)。
灰度后台控制所有的业务系统子系统的所有节点及灰度网关系统;使用时需设置灰度规则、灰度节点。
S202,根据所述第一灰度规则,确定所述子系统的目标节点,所述目标节点具有对应的内部标识。
具体地,图3所示的子系统1集群中,可以包括多个子系统,每个子系统至少包括两个节点,每个节点具有对应的内部标识。运维人员在进行灰度系统发布时,可以指定将子系统中的哪些节点配置为灰度节点,然后灰度后台可以根据运维人员的设置创建第一灰度规则。
子系统接收到第一灰度规则时,可以对第一灰度规则进行解析,确定需要配置为灰度节点的目标节点的物理地址;然后通过物理地址找到对应的目标节点,将目标节点的内部标识配置为预设的标识值,可以将其修改为灰度节点。例如,正常节点的内部标识可以为0,灰度节点的内部标识可以为1。
S203,将所述目标节点的内部标识修改为灰度标识,得到所述灰度节点。
子系统可以根据第一灰度规则,对节点的内部标识进行修改,从而将子系统中的一部分节点修改为灰度节点。例如,正常节点的内部标识为0,灰度节点的内部表示为1。
在一种可能的实现方式中,可以采用Dubbo来配置灰度节点。
S204,根据所述第二灰度规则,确定所述灰度网关的识别规则,所述灰度网关用于根据所述识别规则对用户请求进行识别。
具体地,灰度网关可以识别用户请求。用户请求可以包括正常请求和灰度请求,用户请求具有对应的请求参数,请求参数可以包括请求头、请求路径和请求体,请求参数中可以包括用户请求的标识。
例如,在灰度系统发布时,可以设置灰度用户的灰度请求具有第一标识;正常用户的正常请求具有第二标识;根据第一标识和第二标识,灰度网关可以识别灰度请求和正常请求。灰度网关的识别规则可以为,识别用户请求的标识信息,若用户请求携带第一标识信息,则将该用户请求识别为灰度请求;若用户请求携带第二标识信息,则将该用户请求识别为正常请求。
灰度后台控制所有的业务系统子系统的所有节点及灰度网关系统;使用时需设置灰度规则、灰度节点。
S205,根据所述灰度节点,更新所述灰度网关的转发规则,所述灰度网关用于根据所述转发规则将所述用户请求转发至对应的子系统中的节点。
具体地,灰度网关可以转发用户请求,上述转发规则可以包括转表,转发表中可以包括灰度网关可以转发的节点的物理地址。
在本实施例中,灰度网关直接转发的子系统,可以称为接口调用子系统;每个接口调用子系统中均包括多个节点,每个节点具有对应的物理地址。根据第一灰度规则,接口调用子系统会将其中的一些节点设置为灰度节点,此时,接口调用子系统可以将灰度节点的物理地址返回至灰度网关;或者,灰度网关可以通过对接收到的数据报文进行解析,从而获取到哪些节点为灰度节点。
灰度网关可以根据灰度节点的物理地址,建立灰度转发表。灰度转发表中包括接口调用子系统的灰度节点的物理地址。当灰度网关接收到灰度请求后,可以将灰度请求转发至灰度转发表中的一个物理地址指向的节点。
在一种可能的实现方式中,还可以识别子系统中的业务处理子系统;当业务处理子系统配置灰度节点时,可以将业务处理子系统的灰度节点的物理地址发送至预设的注册中心。
S206,根据所述灰度网关和所述灰度节点,建立灰度调用链,以构成所述灰度系统。
当全部的子系统都有开启一部分节点做灰度系统时,系统就拆成两套:正常系统,灰度系统;消息队列也拆成逻辑灰度队列与正常队列,假设出问题了,两边数据也不需要做数据同步,直接消费完就可以了(消息队列会排队处理,只要正常处理完就行,但不进行数据同步);其他外部依赖系统(比如mysql,redis,elasticsearch)也可以根据实据需要是否拆成两套系统。
各子系统节点的远程接口调用链也已经进行归队,正常的请求只走正常的调用链,灰度的只走灰度的调用链;对于灰度节点的消息队列的订阅者,不用重启服务,自动切断正常的队列连接,创建新的灰度队列(如果该逻辑灰度队列不存在),重新连接该灰度队列,对于灰度节点的消息队列的生产者,根据灰度规则判断是发送到新的灰度队列,还是发送到原有的正常队列。
具体地,根据灰度网关以及灰度网关的识别和转发规则,灰度网关可以将灰度请求转发至接口调用子系统中的灰度节点;接口调用子系统中的灰度节点可以从注册中心获取业务处理子系统中的灰度节点的物理地址,然后调用业务处理子系统中的灰度节点处理灰度请求。
在一种可能的实现方式中,一个灰度请求需要多个子系统继续处理,但是,各个子系统的处理速度不同,可能导致一些子系统因为请求太多而崩溃,此时,可以在子系统集群之间建立消息队列子系统处理完用户请求后,可以将处理结果发放至消息队列,然后其他子系统可以从消息队列中获取处理结果。
灰度系统发布过程中,可以建立灰度消息队列,通过灰度消息队列,业务处理子系统中的灰度节点可以与其他子系统中的灰度节点建立连接。
S207,当接收到用户请求时,采用所述灰度网关识别所述用户请求。
具体地,在系统升级时,为了测试灰度系统的功能,可以设置一部分的用户为灰度用户,这些灰度用户使用灰度系统进行系统操作,从而对灰度系统进行测试。剩余的用户可以称为正常用户,正常用户仍然可以使用以前的业务系统进行操作。
一般地,可以对灰度用户和正常用户的用户请求进行区分。比如,可以通过在用户请求中携带不同的标识信息进行区分。正常用户的用户请求的请求头中可以包括一个正常标识;灰度用户的用户请求的请求头中可以包括一个灰度标识。
灰度网关在接收到用户请求时,可以通过用户请求的请求头,识别出该用户请求为灰度请求还是正常请求。正常请求为正常用户的用户请求;灰度请求为灰度用户的用户请求。
S208,若所述用户请求为灰度请求,则调用所述灰度调用链上的各个灰度节点对所述灰度请求进行处理。
具体地,上述灰度调用链中可以包括灰度网关、灰度节点灰度、灰度队列以及一些其他依赖系统。
具体地,灰度网关具有识别和转发用户请求的功能,用户请求一般包括请求路径,通过请求路径,灰度网关可以将用户请求转发至对应的子系统中的节点进行处理。
当系统中的所有节点均为正常节点时,灰度网关只需要确定对应的子系统中的节点的物理地址,然后根据各个节点之前处理任务的多少,从中选择一个节点,将用户请求发送至该节点中。
但是,当系统中存在灰度节点时,灰度网关在对用户请求进行转发时,需要根据调用链对其进行转发。灰度网关需要将灰度请求转发至子系统中的灰度节点,将正常请求转发至子系统中的正常节点。
具体地,当灰度网关识别到用户请求为灰度请求时,可以根据更新的转发规则,查找灰度网关的灰度转发表,确定可以转发的灰度节点;然后根据从可以转发的灰度节点中选取一个灰度节点,将灰度请求转发至该灰度节点。
当灰度网关从灰度转发表中确定要转发的灰度节点时,若灰度转发表中只包括一个灰度节点,则直接将灰度请求转发至该唯一的灰度节点;若灰度转发表中存在多个灰度节点,需要从多个灰度节点中确定一个目标灰度节点,然后将灰度请求发送至该目标灰度节点。在从多个灰度节点中确定目标灰度节点时,可以考虑每个灰度节点当前的工作量,然后选择其中工作量最小的一个灰度节点作为目标灰度节点。比如,灰度网关可以按照灰度转发表中的灰度节点建立环形转发队列,每次选取转发队列中指针指向的第一个灰度节点作为目标灰度节点,然后将指针指向下一个灰度节点。在另一种可能的实现方式中,灰度网关可以获取不会获取灰度转发列表中的灰度节点的当前状态;然后将处于空闲状态的灰度节点作为目标灰度节点。根据目标灰度节点的物理地址,灰度网关可以将灰度请求转发至该目标灰度节点。
S209,若所述用户请求为正常请求,则调用各个子系统的非灰度节点对所述正常请求进行处理。
具体地,上述非灰度节点为子系统中未被配置为灰度节点的节点,在本申请实施例中也称为正常节点。
具体地,若灰度网关识别到该用户请求为正常请求,则可以将该正常请求发送至对应的子系统中的非灰度节点中。
具体地,当灰度网关读取到用户请求携带正常标识时,可以认为该用户请求为正常请求。根据正常请求的请求路径,灰度网关可以确定该正常请求需要去往的子系统,然后将该正常请求发送至该子系统中进行处理。
采用灰度调用链对灰度用户地灰度请求进行处理,当一段时间之后,可以统计灰度调用链对灰度请求的处理结果;若灰度调用链灰度请求的处理结果与预期的处理结果相同,实现了预期的功能,且该过程中没有发生错误,则可以认为灰度系统通过测试,可以将整个业务系统升级为该灰度系统。
当然,若一段时间后,灰度调用链并没有实现预期的功能,没有达到预期的效果,则可以进行回撤,将灰度节点重新修改为正常节点,整个系统环境中采用原来的业务系统进行运行。运维人员可以对灰度系统修改和校正。
在本实施例中,通过灰度调用链,在现有的灰度系统中建立了一个灰度系统,不需要重新部署服务器,节省了资源;同时灰度系统与业务系统处于同一个系统环境中,数据同步更为方便。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
参照图5,示出了本申请一个实施例的另一种灰度系统的发布方法的步骤流程示意图。图5中,仅仅截取了系统的两个子系统及两个子系统中的部分节点对本申请中方案进行说明。本领域人员应当理解,系统中可以多个子系统,每个子系统中可以包括多个节点,系统中还可以包括一些其他结构。
图5中,是以子系统1和子系统2分别具有3个节点来阐述本方案的。在原来的业务系统中,子系统1和子系统2中的三个节点均为正常节点,当进行灰度系统的发布时,在图5中,1.1.1的步骤为设置子系统1的灰度节点,将子系统1的节点2和节点3分别设置为灰度节点,这样子系统1中包括正常节点1,物理地址为192.168.1.1;灰度节点2,物理地址为192.168.1.2;灰度节点3,物理地址为192.168.1.3。1.2.1步骤为设置子系统2的灰度节点,将子系统2的灰度节点,这样子系统2中包括正常节点1,物理地址为192.168.2.1;灰度节点2,物理地址为192.168.2.2;灰度节点3,物理地址为192.168.2.3;子系统2在灰度节点设置完后,会更新dubbo注册中心的数据,使得注册中心可以确定子系统2中的灰度节点的物理地址。灰度后台还可以设置灰度用户的标志,比如若商户的id为1,则该商户为灰度用户;灰度后台还可以设置子系统的转发节点,灰度用户的请求只能转发至192.168.1.2或192.168.1.3;正常用户的请求只能转发至192.168.1.1。
当商户id为1的人发送用户请求时,灰度网关可以识别出该用户为灰度用户,需要将该用户请求发送至子系统1中的灰度节点2或灰度节点3。灰度网关可以根据后台设置的选择策略,从灰度节点1和2中选择一个灰度节点,将用户请求发送至对应的物理地址。比如,在图5中,灰度网关将用户请求发送至灰度节点2。灰度节点2需要调用子系统2中的灰度节点对用户请求进行处理,此时,子系统1可以到注册中心中获取带有tag的子系统2的节点,这些节点即为子系统2中的灰度节点,然后调用子系统2中的灰度节点。
本方案是在现有的系统环境中抽起一部分资源作为灰度系统,用来发布新系统,当确定新系统没有问题时,可以逐步将资源都至为灰度系统,当全部为灰度系统时就发布完成。(因为本方案采用了系统内抽取其中一部分资源进行部署,处于一套系统环境中因此数据同步较为迅速也容易)。
灰度后台控制所有的业务系统子系统的所有节点及灰度网关系统;使用时需设置灰度规则、灰度节点。
当全部的子系统都有开启一部分节点做灰度系统时,系统就拆成两套:正常系统,灰度系统;消息队列也拆成逻辑灰度队列与正常队列,假设出问题了,两边数据也不需要做数据同步,直接消费完就可以了(消息队列会排队处理,只要正常处理完就行,但不进行数据同步);其他外部依赖系统(比如mysql,redis,elasticsearch)也可以根据实据需要是否拆成两套系统。
各子系统节点的远程接口调用链也已经进行归队,正常的请求只走正常的调用链,灰度的只走灰度的调用链;对于灰度节点的消息队列的订阅者,不用重启服务,自动切断正常的队列连接,创建新的灰度队列(如果该逻辑灰度队列不存在),重新连接该灰度队列,对于灰度节点的消息队列的生产者,根据灰度规则判断是发送到新的灰度队列,还是发送到原有的正常队列。另外,可以根据本实施例中的方案,开发通用组件。在系统接入该通用组件,即可实现对系统的灰度发布。
参照图6,示出了本申请一个实施例的一种灰度系统的发布装置的示意图,具体可以包括获取模块61、配置模块62、更新模块63、建立模块64,其中:
获取模块61,用于当接收到发布灰度系统的指令时,获取所述灰度系统的灰度规则,所述灰度规则包括第一灰度规则和第二灰度规则;
配置模块62,用于根据所述第一灰度规则,将业务系统中各个子系统的目标节点配置为灰度节点,所述业务系统还包括灰度网关;
更新模块63,用于根据所述第二灰度规则和所述灰度节点,更新所述灰度网关,所述灰度网关用于识别并转发用户请求;
建立模块64,用于根据所述灰度网关和所述灰度节点,建立灰度调用链,以构成所述灰度系统。
上述配置模块62包括:
目标节点确定子模块,用于根据所述第一灰度规则,确定所述子系统的目标节点,所述目标节点具有对应的内部标识;
灰度标识配置子模块,用于将所述目标节点的内部标识修改为灰度标识,得到所述灰度节点。
上诉更新模块63包括:
识别规则确定子模块,用于根据所述第二灰度规则,确定所述灰度网关的识别规则,所述灰度网关用于根据所述识别规则对用户请求进行识别;
转发规则更新子模块,用于根据所述灰度节点,更新所述灰度网关的转发规则,所述灰度网关用于根据所述转发规则将所述用户请求转发至对应的子系统中的节点。
上述转发规则更新子模块,用于,包括:
识别单元,用于识别所述子系统中的接口调用子系统;
获取单元,用于获取所述接口调用子系统的灰度节点的物理地址;
更新单元,用于根据所述接口调用子系统的灰度节点的物理地址,更新所述灰度网关的转发规则。
上述装置,还包括:
识别模块,用于识别所述子系统中的业务处理子系统;
发送模块,用于将所述业务处理子系统的灰度节点的物理地址发送至预设的注册中心。
上述装置还包括:
用户请求识别模块,用于当接收到用户请求时,采用所述灰度网关识别所述用户请求;
灰度处理模块,用于若所述用户请求为灰度请求,则调用所述灰度调用链上的各个灰度节点对所述灰度请求进行处理;
正常处理模块,用于若所述用户请求为正常请求,则调用各个子系统的非灰度节点对所述正常请求进行处理。
上述灰度处理模块,包括:
转发子模块,用于根据所述灰度网关的转发规则,将所述灰度请求发送至对应的目标接口调用子系统中的灰度节点,所述目标接口调用子系统中的灰度节点用于从预设的注册中心获取目标业务处理子系统的灰度节点的物理地址;
调用子模块,用于根据所述目标业务处理子系统的灰度节点的物理地址,调用所述目标业务处理子系统的灰度节点对所述灰度请求进行处理。
上述装置还包括:
统计模块,用于在预设时间后,统计所述灰度调用链对多个所述灰度请求的处理结果;
升级模块,用于若所述处理结果与预期的处理结果相同,则将所述各个子系统中的所有节点配置为灰度节点,以完成系统升级。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
图7为本申请一实施例提供的服务器的结构示意图。如图7所示,该实施例的服务器7包括:至少一个处理器70(图7中仅示出一个)处理器、存储器71以及存储在所述存储器71中并可在所述至少一个处理器70上运行的计算机程序72,所述处理器70执行所述计算机程序72时实现上述任意各个方法实施例中的步骤。
所述服务器7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该服务器可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是服务器7的举例,并不构成对服务器7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器70可以是中央处理单元(CentralProcessingUnit,CPU),该处理器70还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71在一些实施例中可以是所述服务器7的内部存储单元,例如服务器7的硬盘或内存。所述存储器71在另一些实施例中也可以是所述服务器7的外部存储设备,例如所述服务器7上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。进一步地,所述存储器71还可以既包括所述服务器7的内部存储单元也包括外部存储设备。所述存储器71用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还公开了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述各个实施例所述的方法。
本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述各个实施例所述的方法。
本申请实施例还公开了一种计算机程序产品,当所述计算机程序产品在服务器上运行时,使得所述服务器执行前述各个实施例所述的方法。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种灰度系统的发布方法,其特征在于,所述方法包括:
当接收到发布灰度系统的指令时,获取所述灰度系统的灰度规则,所述灰度规则包括第一灰度规则和第二灰度规则;
根据所述第一灰度规则,将业务系统中各个子系统的目标节点配置为灰度节点,所述业务系统还包括灰度网关;
根据所述第二灰度规则和所述灰度节点,更新所述灰度网关,所述灰度网关用于识别并转发用户请求;
根据所述灰度网关和所述灰度节点,建立灰度调用链,以构成所述灰度系统。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一灰度规则,将各个子系统中的各个目标节点设置为灰度节点,包括:
根据所述第一灰度规则,确定所述子系统的目标节点,所述目标节点具有对应的内部标识;
将所述目标节点的内部标识修改为灰度标识,得到所述灰度节点。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述第二灰度规则和所述灰度节点,更新灰度网关的规则,包括:
根据所述第二灰度规则,确定所述灰度网关的识别规则,所述灰度网关用于根据所述识别规则对用户请求进行识别;
根据所述灰度节点,更新所述灰度网关的转发规则,所述灰度网关用于根据所述转发规则将所述用户请求转发至对应的子系统中的节点。
4.如权利要求3所述的方法,其特征在于,所述根据所述灰度节点,更新所述灰度网关的转发规则,包括:
识别所述子系统中的接口调用子系统;
获取所述接口调用子系统的灰度节点的物理地址;
根据所述接口调用子系统的灰度节点的物理地址,更新所述灰度网关的转发规则。
5.如权利要求3所述的方法,其特征在于,还包括:
识别所述子系统中的业务处理子系统;
将所述业务处理子系统的灰度节点的物理地址发送至预设的注册中心。
6.如权利要求1或2或4或5所述的方法,其特征在于,在根据所述灰度网关和所述灰度节点,建立灰度调用链之后,还包括:
当接收到用户请求时,采用所述灰度网关识别所述用户请求;
若所述用户请求为灰度请求,则调用所述灰度调用链上的各个灰度节点对所述灰度请求进行处理;
若所述用户请求为正常请求,则调用各个子系统的非灰度节点对所述正常请求进行处理。
7.如权利要求6所述的方法,其特征在于,所述调用所述灰度调用链上的各个灰度节点对所述灰度请求进行处理,包括:
根据所述灰度网关的转发规则,将所述灰度请求发送至对应的目标接口调用子系统中的灰度节点,所述目标接口调用子系统中的灰度节点用于从预设的注册中心获取目标业务处理子系统的灰度节点的物理地址;
根据所述目标业务处理子系统的灰度节点的物理地址,调用所述目标业务处理子系统的灰度节点对所述灰度请求进行处理。
8.如权利要求6所述的方法,其特征在于,还包括:
在预设时间后,统计所述灰度调用链对多个所述灰度请求的处理结果;
若所述处理结果与预期的处理结果相同,则将所述各个子系统中的所有节点配置为灰度节点,以完成系统升级。
9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-8任一项所述的灰度系统的发布方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-8任一项所述的灰度系统的发布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153156.XA CN113900686A (zh) | 2021-09-29 | 2021-09-29 | 一种灰度系统的发布方法、服务器及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153156.XA CN113900686A (zh) | 2021-09-29 | 2021-09-29 | 一种灰度系统的发布方法、服务器及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113900686A true CN113900686A (zh) | 2022-01-07 |
Family
ID=79189410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111153156.XA Pending CN113900686A (zh) | 2021-09-29 | 2021-09-29 | 一种灰度系统的发布方法、服务器及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113900686A (zh) |
-
2021
- 2021-09-29 CN CN202111153156.XA patent/CN113900686A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11405274B2 (en) | Managing virtual network functions | |
US10432460B2 (en) | Network service scaling method and apparatus | |
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
US8185624B2 (en) | Efficient on-demand provisioning of servers for specific software sets | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
CN108141378B (zh) | Vnfd中的休眠vdu | |
US20200167150A1 (en) | Upgrading an execution environment for event-driven functions | |
CN109189494B (zh) | 配置灰度发布方法、装置、设备及计算机可读存储介质 | |
CN108632085B (zh) | 灰度用户管理方法、装置、平台及存储介质 | |
CN116302448B (zh) | 任务调度方法和系统 | |
US20230385048A1 (en) | Predictive recycling of computer systems in a cloud environment | |
CN109669727B (zh) | 一种服务器的配置方法、系统及相关组件 | |
CN113900686A (zh) | 一种灰度系统的发布方法、服务器及介质 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN116049000A (zh) | 环境参数配置方法、装置、设备、存储介质及产品 | |
CN114721686A (zh) | 配置数据更新方法、装置、电子设备和存储介质 | |
CN114240132A (zh) | 业务流程编排执行方法、装置、计算机设备及存储介质 | |
CN111930626A (zh) | 基于PaaS云服务的自动化测试方法及装置 | |
CN113032004A (zh) | 在开发环境中管理开发作业的方法、设备和程序产品 | |
CN110554906A (zh) | 虚拟机配置管理方法及装置 | |
CN113535187B (zh) | 服务上线方法、服务更新方法及服务提供方法 | |
CN111475226B (zh) | 电子装置、微服务调用方法和计算机可读存储介质 | |
JP2013020494A (ja) | ソフトウェア実行システムおよびソフトウェア実行方法およびプログラム | |
CN113553097B (zh) | 模型版本管理方法及装置 | |
CN111741097B (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 |