一种发布应用程序的回滚方法、装置及计算机设备与流程

文档序号:30093318发布日期:2022-05-18 09:55阅读:196来源:国知局
一种发布应用程序的回滚方法、装置及计算机设备与流程

1.本发明涉及应用服务发布技术领域,具体涉及一种发布应用程序的回滚方法、装置及计算机设备。


背景技术:

2.近来,随着容器技术和kubernetes容器管理技术的发展,将应用服务打包成docker镜像,一次生成,重复部署成为应用服务发布的主流。该技术用户只需要关注应用服务的状态,并在不同版本的镜像之间切换,就可以快速地进行服务的部署和回滚。kubernetes容器管理技术虽然提供了应用服务基于镜像的快速回滚的能力,但是当前应用服务程序的发布方式一般由运维人员或研发人员根据各自应用程序的需求,编译代码,生成可执行应用的数据包,并配置后台集群环境,最后部署上限,切换流量。显然,这种通过手工操作部署程序回滚流程,不但操作过程繁琐,而且还存在很大出错风险。当线上发生故障时,往往定位故障来源就需耗费大量时间。


技术实现要素:

3.因此,本发明要解决的技术问题在于克服现有技术中的通过手工操作部署程序回滚流程,不但操作过程繁琐,而且还存在很大出错风险,当线上发生故障时,往往定位故障来源就需耗费大量时间的问题,从而提供一种发布应用程序的回滚方法、装置及计算机设备。
4.根据第一方面,本发明实施例提供一种发布应用程序的回滚方法,用于应用程序发布模块,包括如下步骤:
5.接收报警监控平台下发的应用程序报警消息;
6.基于预设触发规则,确定所述应用程序报警消息是否满足对目标应用对象执行触发动作要求;
7.当满足对所述目标应用对象执行触发动作要求时,调用所述目标应用对象的回滚动作指令并向目标用户发送报警消息通知;
8.发送所述回滚动作指令给容器管理集群使其执行回滚动作。
9.在一种实施方式中,本发明实施例中所述的发布应用程序的回滚方法,还包括:当满足对所述目标应用对象执行触发动作要求时,调用所述目标应用对象的修复动作指令对所述目标应用对象执行修复动作。
10.在一种实施方式中,基于预设触发规则,确定所述报警消息队列中的所述应用程序报警消息是否满足对目标应用对象执行触发动作要求,包括:
11.若所述应用程序报警消息的当前数量在预设时间内超过预设数值,则满足对目标应用对象执行触发动作要求。
12.在一种实施方式中,所述发送所述回滚动作指令给容器管理集群使其执行回滚动作,包括:
13.发送所述回滚动作指令给容器管理集群使其将所述目标应用对象的当前状态退回所属正常状态的应用界面。
14.在一种实施方式中,所述容器管理集群为kubernetes容器管理集群,所述容器管理集群用于管理不同类型的应用程序。
15.在一种实施方式中,所述应用程序报警消息添加在报警消息队列中存储。
16.在一种实施方式中,向目标用户发送报警消息通知,包括:
17.基于所述目标用户订阅的消息接收方式向所述目标用户发送报警消息通知,所述消息接收方式包括邮件和/或短信和/或微信中的一种或几种。
18.根据第二方面,本发明实施例还提供一种发布应用程序的回滚方法,用于应用程序发布模块,包括如下模块:
19.报警消息接收模块,用于接收报警监控平台下发的应用程序报警消息;
20.触发动作确定模块,用于基于预设触发规则,确定所述应用程序报警消息是否满足对目标应用对象执行触发动作要求;
21.回滚指令调用模块,用于当满足对所述目标应用对象执行触发动作要求时,调用所述目标应用对象的回滚动作指令并向目标用户发送报警消息通知;
22.回滚指令发送模块,用于发送所述回滚动作指令给容器管理集群使其执行回滚动作。
23.根据第三方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面或第一方面任一实施方式中所述的发布应用程序的回滚方法。
24.根据第四方面,本发明实施例还提供一种计算机设备,包括:存储器、处理器和应用程序发布模块,所述存储器、所述处理器和所述应用程序发布模块,之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或第一方面任一实施方式中所述的发布应用程序的回滚方法。
25.本发明技术方案,具有如下优点:
26.本发明公开一种发布应用程序的回滚方法、装置及计算机设备,其中,方法用于应用程序发布模块,包括如下步骤:接收报警监控平台下发的应用程序报警消息;基于预设触发规则,确定应用程序报警消息是否满足对目标应用对象执行触发动作要求;当满足对目标应用对象执行触发动作要求时,调用目标应用对象的回滚动作指令并向目标用户发送报警消息通知;发送回滚动作指令给容器管理集群使其执行回滚动作。本发明在用户发布应用程序异常时,无需人工干预,可即时调用回滚动作指令给容器管理集群使其执行回滚动作,为应用业务的恢复节省了宝贵时间,大大提高了故障恢复效率,并且,向用户即时发送报警消息通知,有利于用户及时更新应用程序,进而有效降低了应用程序发布的风险,提高了业务稳定性和可用性。
附图说明
27.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前
提下,还可以根据这些附图获得其他的附图。
28.图1为本发明实施例中发布应用程序的回滚方法的一个具体示例的流程图;
29.图2为本发明实施例中发布应用程序的系统架构示意图;
30.图3为本发明实施例中应用程序发布模块的交互示意图;
31.图4为本发明实施例中发布应用程序的回滚装置的结构示意图;
32.图5为本发明实施例中计算机设备的硬件示意图。
具体实施方式
33.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
35.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
36.此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
37.本发明公开一种发布应用程序的回滚方法,用于应用程序发布模块,该应用程序发布模块可以认为是用于发布应用程序的一个中间软件模块,在该中间软件模块中可以配置k8s api接口,配置默认一些控制触发策略。
38.如图1所示,本发明实施例中的发布应用程序的回滚方法包括如下步骤:
39.步骤s11:接收报警监控平台下发的应用程序报警消息。
40.此处的报警监控平台可以是基于prometheus、elk等开源技术且根据不同业务需求接入相关指标到该报警监控平台使得该报警监控平台对不同类型应用程序的各种指标状态进行实时监控,例如:报警监控平台可以监控订单业务指标状态。报警监控平台对被监控对象(即应用程序的各种指标状态)进行实时监控,并向报警监控平台实时下发应用程序报警信息。
41.在一种实施方式中,应用程序报警消息添加在报警消息队列中存储。利用报警消息队列存储应用程序报警消息便于有序存储大量的报警消息。
42.步骤s12:基于预设触发规则,确定应用程序报警消息是否满足对目标应用对象执行触发动作要求。
43.此处的预设触发规则是根据用户定义配置而成。触发动作包括回滚动动作,报警消息通知动作,异常修复动作。
44.在一种实施方式中,上述步骤s12,基于预设触发规则,确定报警消息队列中的应用程序报警消息是否满足对目标应用对象执行触发动作要求,包括:
45.若应用程序报警消息的当前数量在预设时间内超过预设数值,则满足对目标应用对象执行触发动作要求。
46.例如:预设时间为600s,预设数值为20条,该预设时间和与预设数值均是根据用户需求灵活设置。
47.当在报警消息队列中存储关于目标应用对象的应用程序报警消息为25条,25》20,则对目标对象执行触发动作,即对目标应用对象调用回滚动作指令并告知用户,或,对目标应用对象调用修复动作指令。
48.在一种实施方式中,本发明实施例中的容器管理集群用于管理不同类型的应用程序。容器管理集群为kubernetes容器管理集群。
49.kubernetes容器管理技术应用服务具有基于镜像的快速回滚能力。因此,本发明实施例基于kubernetes容器管理技术,结合业务与技术监控指标,利用自动探测业务指标,接口调用指标,日志统计指标等,在指标突变或者收到报警的时候,自动触发发布回滚,并发送报警信息。有效降低了应用程序发布的风险,提高了业务的稳定性和可用性。
50.kubernetes容器管理集群、应用程序发布模块和报警监控平台结合,汇聚系统侧、应用侧、业务侧的日志和监控报警信息。通过预设触发规则的配置,实时发布状态的监听和判定,当触发预设触发规则中预设数值时,通过发布接口层触发kubernetes容器管理集群执行回滚动作。如图2所示,为整套发布应用程序的系统架构示意图。
51.步骤s13:当满足对目标应用对象执行触发动作要求时,调用目标应用对象的回滚动作指令并向目标用户发送报警消息通知。例如:目标应用对象为用户订单指标,基于上述提及的预设触发规则,当预设时间为600s,预设数值为15,该用户订单指标的应用程序报警消息的当前数量为21条,21》15,此时,调用k8s接口,通过发布对接层将该回滚动作指令发送给kubernetes容器管理集群执行相应的回滚动作。
52.在一种实施方式中,向目标用户发送报警消息通知,包括:
53.基于目标用户订阅的消息接收方式向目标用户发送报警消息通知,消息接收方式包括邮件和/或短信和/或微信中的一种或几种。
54.此处的目标用户为订阅接收报警消息通知的用户群体,可以以邮件或短信或微信中的一种或两种接收方式结合或三种方式结合及时告知用户其当前使用的应用程序发生了异常,以便用户及时进行应用程序更新。
55.步骤s14:发送回滚动作指令给容器管理集群使其执行回滚动作。
56.在一种实施方式中,步骤s14,具体可以为发送回滚动作指令给容器管理集群使其将目标应用对象的当前状态退回所属正常状态的应用界面。
57.例如:当容器管理集群接收到了回滚动作指令,基于集群内部状态,可以将当前状态版本退回之前使用正常版本的界面。
58.因此,本发明实施例中的发布应用程序的回滚方法,通过执行上述步骤s11-步骤s14,当用户发布应用程序失败时,即用户使用的目标应用对应的应用程序报警消息基于预设触发规则,一旦被执行触发动作,无需人工干预,可即时调用回滚动作指令给容器管理集群使其执行回滚动作,为应用业务的恢复节省了宝贵时间,大大提高了故障恢复效率,并
且,向用户即时发送报警消息通知,有利于用户及时更新应用程序,进而有效降低了应用程序发布的风险,提高了业务稳定性和可用性。
59.在另一种实施方式中,本发明实施例中的发布应用程序的回滚方法,还包括:当满足对目标应用对象执行触发动作要求时,调用目标应用对象的修复动作指令对目标应用对象执行修复动作。
60.此处的修复动作指令可以为预设脚本,通过该预设脚本尝试对异常应用程序的恢复,可以避免故障持续,有利于用户体验应用功能。并且,通过修复动作指令对目标应用对象执行修复动作有利于系统维护,有效节约系统恢复时间。
61.在一具体示例中,例如:用户在应用程序发布模块中定义了一次应用服务svc1的v2版本的应用程序部署,此前线上稳定版本为svc1的v1版本的应用程序部署,即属于正常状态的应用版本。
62.从报警监控平台监测到发布订单应用程序的半小时之内,实时订单数量下降了70%,且服务svc1的v2版本的接口请求在发布执行后的2小时内,每秒失败次数大于10,失败率高于15%。
63.当用户使用svc1的v1版本的应用程序时,可以正常发布信息。
64.应用程序发布模块从报警监控平台接收使用svc1的v2版本的应用程序的异常报警消息,基于预设触发规则进行比对,当满足对异常订单执行触发动作要求时,由应用程序发布模块调用k8s接口,使得kubernetes容器管理集群执行版本回滚指令,将当前异常版本回滚到svc1的v1版本,并向用户发送报警消息通知。
65.基于相同构思,本发明实施例还提供一种发布应用程序的回滚方法,用于应用程序发布模块,如图4所示,包括如下模块:
66.报警消息接收模块41,用于接收报警监控平台下发的应用程序报警消息;
67.触发动作确定模块42,用于基于预设触发规则,确定应用程序报警消息是否满足对目标应用对象执行触发动作要求;
68.回滚指令调用模块43,用于当满足对目标应用对象执行触发动作要求时,调用目标应用对象的回滚动作指令并向目标用户发送报警消息通知;
69.回滚指令发送模块44,用于发送回滚动作指令给容器管理集群使其执行回滚动作。
70.在一种实施方式中,本发明实施例中的发布应用程序的回滚装置,还包括:修复模块,用于当满足对目标应用对象执行触发动作要求时,调用目标应用对象的修复动作指令对目标应用对象执行修复动作。
71.在一种实施方式中,本发明实施例中的发布应用程序的回滚装置,触发动作确定模块42,包括:
72.动作执行子模块,用于若应用程序报警消息的当前数量在预设时间内超过预设数值,则满足对目标应用对象执行触发动作要求。
73.在一种实施方式中,本发明实施例中的发布应用程序的回滚装置,回滚指令发送模块44,包括:
74.程序退回子模块,用于发送回滚动作指令给容器管理集群使其将目标应用对象的当前状态退回所属正常状态的应用界面。
75.在一种实施方式中,本发明实施例中的发布应用程序的回滚装置,容器管理集群为kubernetes容器管理集群,容器管理集群用于管理不同类型的应用程序。
76.在一种实施方式中,本发明实施例中的发布应用程序的回滚装置,应用程序报警消息添加在报警消息队列中存储。
77.在一种实施方式中,本发明实施例中的发布应用程序的回滚装置,回滚指令调用模块43向目标用户发送报警消息通知,包括:
78.信息发送子模块,用于基于目标用户订阅的消息接收方式向目标用户发送报警消息通知,消息接收方式包括邮件和/或短信和/或微信中的一种或几种。
79.基于相同构思,本发明实施例还提供了一种计算机设备,如图5所示,该计算机设备可以包括处理器51、存储器52和应用程序发布模块53,
80.其中处理器51、存储器52、应用程序发布模块53可以通过总线或者其他方式连接,图5中以通过总线连接为例。
81.处理器51可以为中央处理器(central processing unit,cpu)。处理器51还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
82.存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述实施例中的发布应用程序的回滚方法。
83.存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于电网、互联网、企业内部网、局域网、移动通信网及其组合。
84.所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行附图所示实施例中的发布应用程序的回滚方法。
85.上述计算机设备具体细节可以对应参阅附图所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。
86.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
87.显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或
变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1