logo好方法网

灰度发布升级方法、装置、计算机系统及可读存储介质


技术摘要:
本发明涉及人工智能领域,公开了灰度发布升级方法、装置、计算机系统及可读存储介质,包括:识别需要升级的应用设为升级应用,将其他应用设为辅助应用;将升级应用的请求消息切换到升级应用的非灰度实例上,在升级应用中上线新版本的灰度实例;将辅助应用中的请求消息  全部
背景技术:
很多公司在系统迭代上线的过程中,经常会遇到停机发版上线的情况;在传统的 应用中,这些公司可能会首先备份老版本包,接着停掉当前应用服务并上传新包,最后重启 应用服务。这种传统的发版方式不仅繁琐,而且中间停机宕调的那段时间无法正常给用户 提供服务,严重影响用户体验。 为解决以上问题,一些企业采用通过在应用的上层准备一台Nginx(负载均衡器), 当需要更新应用时,先在冗余机器或者当前机器使用不同端口启动新版本的应用,然后使 用Nginx把流量切过来。 这样虽然可以免去应用的重启过程,但是这种方式的应用升级不仅需要大量硬件 资源的支持,还会因Nginx的重启耗时对服务器的平顺性和稳定性造成影响。
技术实现要素:
本发明的目的是提供一种灰度发布升级方法、装置、计算机系统及可读存储介质, 用于解决现有技术存在的应用升级不仅需要大量硬件资源的支持,还会因Nginx的重启耗 时对服务器的平顺性和稳定性造成影响的问题;本申请可应用于智慧政务场景中,从而推 动智慧城市的建设。 为实现上述目的,本发明提供一种灰度发布升级方法,用于同时具有灰度实例和 非灰度实例的应用进行优雅上下线,包括: 接收升级请求,识别服务器中需要升级的应用并将其设为升级应用,将所述服务 器中其他应用设为辅助应用;其中,所述升级请求包括有需要升级实例的应用的编号; 将所述升级应用所接收到的请求消息切换到所述升级应用的非灰度实例上,下线 所述升级应用的旧版本灰度实例,在所述升级应用中上线新版本的灰度实例; 将所述辅助应用所接收到的请求消息切换到其自身的非灰度实例上,使所述升级 应用和所述辅助应用的非灰度实例串联成为旧版本链路; 更新辅助应用中灰度实例的元数据版本号,将所述升级应用和所述辅助应用中的 灰度实例串联成为新版本链路; 下线所述升级应用中的非灰度实例,并在所述升级应用中上线新版本的非灰度实 例,将所述新版本链路中升级应用的请求消息逐步切换至所述新版本的非灰度实例。 上述方案中,将所述升级应用和所述辅助应用中的灰度实例串联成为新版本链路 之后,包括: 对所述新版本链路进行验证,判断所述新版本链路是否通过验证;若通过,则将所 述新版本链路上应用的元数据版本号设为所述新版本链路的链路版本号;若未通过,则发 4 CN 111736872 A 说 明 书 2/12 页 出升级失败信号。 上述方案中,对所述新版本链路进行验证,判断所述新版本链路是否通过验证的 步骤,包括: 提取网关接收到的请求消息; 在所述请求消息的请求头中增加测试版本号,其中,所述测试版本号与新版本链 路的链路版本号一致; 根据所述测试版本号将所述请求消息发送至所述新版本链路; 监测所述新版本链路在处理所述请求消息获得处理结果的过程中,是否生成实例 化异常信息;若是,则判定所述新版本链路未通过验证,并将所述实例化异常信息上传至区 块链;若否,则判定所述新版本链路通过验证。 上述方案中,将所述升级应用和所述辅助应用中的灰度实例串联成为新版本链路 之后,包括: 将旧版本链路上的请求消息逐步切换至新版本链路,直至所有请求消息均切换至 所述新版本链路。 上述方案中,所述请求消息至少由一个请求报文构成; 将旧版本链路上的请求消息逐步切换至新版本链路的步骤,包括: 接收请求报文,判断所述请求报文中是否具有指定版本号;若是,则将所述请求报 文发送至链路版本号与所述指定版本号一致的链路;若否,则将所述请求报文发送至预设 的版本计算器,所述版本计算器按照预设的权重规则分配所述请求报文,使旧版本链路上 的请求消息逐步切换至新版本链路。 上述方案中,所述权重规则包括至少一个时间段及与所述时间段对应的权重比 例;所述版本计算器按照预设的权重规则分配所述请求报文的步骤,包括: 所述版本计算器自接收到第一个请求消息开始计时,并识别接收到的请求消息所 处的时间段,按照该时间段对应的权重比例分配所述请求消息的发送版本号; 将所述请求消息发送至与其发送版本号对应的链路。 上述方案中,将所述新版本链路中升级应用的请求消息逐步切换至所述新版本的 非灰度实例之后,包括: 更新所述辅助应用中的非灰度实例的元数据版本号,及更新网关中的配置版本号 使其与所述辅助应用中更新后的元数据版本号对应。 为实现上述目的,本发明还提供一种灰度发布升级装置,用于同时具有灰度实例 和非灰度实例的应用进行优雅上下线,包括: 升级识别模块,用于接收升级请求,识别服务器中需要升级的应用并将其设为升 级应用,将所述服务器中其他应用设为辅助应用;其中,所述升级请求包括有需要升级实例 的应用的编号; 切换升级模块,用于将所述升级应用所接收到的请求消息切换到所述升级应用的 非灰度实例上,下线所述升级应用的旧版本灰度实例,在所述升级应用中上线新版本的灰 度实例; 切换串联模块,用于将所述辅助应用所接收到的请求消息切换到其自身的非灰度 实例上,使所述升级应用和所述辅助应用的非灰度实例串联成为旧版本链路; 5 CN 111736872 A 说 明 书 3/12 页 更新串联模块,用于更新辅助应用中灰度实例的元数据版本号,将所述升级应用 和所述辅助应用中的灰度实例串联成为新版本链路; 下线切换模块,用于下线所述升级应用中的非灰度实例,并在所述升级应用中上 线新版本的非灰度实例,将所述新版本链路中升级应用的请求消息逐步切换至所述新版本 的非灰度实例。 为实现上述目的,本发明还提供一种计算机系统,其包括多个计算机设备,各计算 机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述 多个计算机设备的处理器执行所述计算机程序时共同实现上述灰度发布升级方法的步骤。 为实现上述目的,本发明还提供一种计算机可读存储介质,其包括多个存储介质, 各存储介质上存储有计算机程序,所述多个存储介质存储的所述计算机程序被处理器执行 时共同实现上述灰度发布升级方法的步骤。 本发明提供的灰度发布升级方法、装置、计算机系统及可读存储介质,通过识别服 务器中需要升级的应用并将其设为升级应用,将所述服务器中其他应用设为辅助应用;将 所述升级应用的请求消息切换到所述升级应用的非灰度实例上,下线所述升级应用的旧版 本灰度实例,在所述升级应用中上线新版本的灰度实例;因此,下线的灰度实例将不会对请 求消息调用的实例产生影响,保证了实例下线的平顺性,以及处理请求消息的稳定性; 将所述辅助应用中的请求消息切换到其自身的非灰度实例上,使所述升级应用和 辅助应用的非灰度实例串联成为旧版本链路;更新辅助应用中灰度实例的元数据版本号, 将所述升级应用和所述辅助应用中的灰度实例串联成为新版本链路;下线所述升级应用中 的非灰度实例,并在所述升级应用中上线新版本的非灰度实例,将所述新版本链路中升级 应用的请求消息逐步切换至所述新版本的非灰度实例;因此,仅需对应用中的流量进行调 节,无需大量硬件资源的支持并且无需构建Nginx(负载均衡器),因此避免了因Nginx的重 启耗时对服务器的平顺性和稳定性造成影响的情况发生。 附图说明 图1为本发明灰度发布升级方法实施例一的流程图; 图2为本发明灰度发布升级方法实施例一中同时具有灰度实例和非灰度实例的服 务器的结构框图; 图3为本发明灰度发布升级方法实施例一中将应用B中的请求消息切换到应用B的 非灰度实例上的结构框图; 图4为本发明灰度发布升级方法实施例一中在应用B中上线新版本的灰度实例的 结构框图; 图5为本发明灰度发布升级方法实施例一中将应用A的请求消息切换到其自身的 非灰度实例上,将应用C的请求消息切换到其自身的非灰度实例上的结构框图; 图6为本发明灰度发布升级方法实施例一中更新应用A和应用C中灰度实例的元数 据版本号的结构框图; 图7为本发明灰度发布升级方法实施例一中在应用B中上线新版本的非灰度实例 的结构框图; 图8为本发明灰度发布升级方法实施例二中一种灰度发布升级方法的具体方法流 6 CN 111736872 A 说 明 书 4/12 页 程图; 图9为本发明灰度发布升级方法实施例二中对所述新版本链路进行验证,判断所 述新版本链路是否通过验证的具体方法流程图; 图10为本发明灰度发布升级方法实施例二中将旧版本链路上的请求消息逐步切 换至新版本链路的具体方法流程图; 图11为本发明灰度发布升级装置实施例三的程序模块示意图; 图12为本发明计算机系统实施例四中计算机设备的硬件结构示意图。
下载此资料需消耗2积分,
分享到:
收藏