CN114201181A - 服务部署方法、装置、电子设备和介质 - Google Patents
服务部署方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN114201181A CN114201181A CN202111527548.8A CN202111527548A CN114201181A CN 114201181 A CN114201181 A CN 114201181A CN 202111527548 A CN202111527548 A CN 202111527548A CN 114201181 A CN114201181 A CN 114201181A
- Authority
- CN
- China
- Prior art keywords
- deployment
- service
- server
- command
- queue
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种服务部署方法,可以应用于金融技术领域。该服务部署方法包括:响应于接收到来自第二服务器的设备相关信息,根据设备相关信息和目标服务的部署信息,创建目标服务对应的队列;根据目标服务的部署信息,确定目标服务的部署信息在预定时段内是否发生变化;在确定目标服务的部署信息发生变化的情况下,根据目标服务对应的队列,生成部署服务命令;以及向第二服务器发送部署服务命令,以使第二服务器执行与部署服务命令对应的部署任务。本公开还提供了一种服务部署装置、设备、存储介质和程序产品。
Description
技术领域
本公开涉及计算机技术领域,可以应用于金融技术领域,更具体地涉及一种服务部署方法、装置、设备、介质和程序产品。
背景技术
对于现代互联网企业研发的系统服务来说,需要进行远程服务部署和监控。现有的自动化部署方案一般采用Ansible、Jenkins等第三方开源工具进行简单的封装,对于现有的自动化监控方案一般采用Zabbix、Nagios、Ganglia第三方开源工具进行实时监控并向服务端上报实时监控数据。
然而,在系统服务较多时,现有的自动化部署方案和自动化监控方案,都存在配置复杂、容易配置出错、运维人员维护成本高、机器资源消耗大等问题。
发明内容
鉴于上述问题,本公开提供了提高配置效率的服务部署方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种服务部署方法,应用于第一服务器,包括:响应于接收到来自第二服务器的设备相关信息,根据所述设备相关信息和目标服务的部署信息,创建目标服务对应的队列;根据所述目标服务的部署信息,确定所述目标服务的部署信息在预定时段内是否发生变化;在确定所述目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成部署服务命令;以及向所述第二服务器发送所述部署服务命令,以使所述第二服务器执行与所述部署服务命令对应的部署任务。
根据本公开的实施例,所述在确定所述目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成部署服务命令,包括:在确定所述目标服务的部署信息发生变化的情况下,复制所述目标服务对应的队列作为任务队列;基于所述任务队列,确定预定数目的设备相关信息;根据所述预定数目的设备相关信息,生成部署服务命令。
根据本公开的实施例,所述方法还包括:根据所述任务队列,建立与所述任务队列对应的第一队列和第二队列;在接收到来自所述第二服务器的执行结果为执行成功的情况下,在所述第一队列中记录所述设备相关信息;在接收到来自所述第二服务器的执行结果为执行失败的情况下,在所述第二队列中记录所述设备相关信息;在确定所述任务队列中的设备相关信息均弹出且所述第二队列为空时,记录所述目标服务部署成功;在确定所述第二队列中存在设备相关信息时,根据所述第二队列中存在的设备相关信息生成部署服务命令,发送所述部署服务命令。
根据本公开的实施例,所述向所述第二服务器发送所述部署服务命令,以使所述第二服务器执行与所述部署服务命令对应的部署任务,包括:通过超文本传输协议,和/或,远程过程调用协议向所述第二服务器发送所述部署服务命令,以使所述第二服务器执行与所述部署服务命令对应的部署任务。
根据本公开的实施例,所述目标服务的部署信息包括健康检查脚本地址和健康检查执行时间周期;所述方法还包括:基于健康检查脚本地址和健康检查执行时间周期,向第二服务器发送健康检查命令;响应于接收到来自所述第二服务器的健康检查结果,存储所述健康检查结果。
根据本公开的实施例,所述方法还包括:基于所述健康检查结果确定不健康的所述第二服务器,并向所述不健康的第二服务器发送启动命令或重启命令。
根据本公开的实施例,所述目标服务的部署信息包括:服务名称、部署服务器的主机名称、互联网协议地址、端口号、停止脚本地址、启动脚本地址、重启脚本地址、健康检查脚本地址、健康检查执行时间周期、自愈指令、部署方式、以及失败重试次数阈值中的至少之一。
根据本公开的第二个方面,提供了一种服务部署方法,应用于第二服务器,包括:发送与所述第二服务器对应的设备相关信息;接收来自第一服务器的部署服务命令,并执行与所述部署服务命令对应的部署任务;其中,所述部署服务命令包括:所述第一服务器在确定目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成的部署服务命令。
根据本公开的实施例,所述执行与所述部署服务命令对应的部署任务,包括:获取与所述部署服务命令对应的程序包信息;执行所述程序包信息完成所述部署服务任务。
根据本公开的实施例,所述方法还包括:接收健康检查命令;执行所述健康检查命令,并发送健康检查结果。
本公开的第三方面提供了一种服务部署装置,应用于第一服务器,包括:第一创建模块,用于响应于接收到来自第二服务器的设备相关信息,根据所述设备相关信息和目标服务的部署信息,创建目标服务对应的队列;第一确定模块,用于根据所述目标服务的部署信息,确定所述目标服务的部署信息在预定时段内是否发生变化;第一生成模块,用于在确定所述目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成部署服务命令;以及第一发送模块,用于向所述第二服务器发送所述部署服务命令,以使所述第二服务器执行与所述部署服务命令对应的部署任务。
本公开的第四方面提供了一种服务部署装置,应用于第二服务器,包括:第一发送模块,用于发送与所述第二服务器对应的设备相关信息;以及第一执行模块,用于接收来自第一服务器的部署服务命令,并执行与所述部署服务命令对应的部署任务;其中,所述部署服务命令包括:所述第一服务器在确定目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成的部署服务命令。
本公开的第五方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述服务部署方法。
本公开的第六方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述服务部署方法。
本公开的第七方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述服务部署方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的服务部署方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的服务部署方法的流程图;
图3示意性示出了根据本公开实施例的队列示意图;
图4示意性示出了根据本公开另一实施例的服务部署方法的流程图;
图5示意性示出了根据本公开实施例的服务部署系统的示意图;
图6示意性示出了根据本公开实施例的服务部署装置的结构框图;
图7示意性示出了根据本公开另一实施例的服务部署装置的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现服务部署方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种服务部署方法和装置,通过响应于接收到来自第二服务器的设备相关信息,根据设备相关信息和目标服务的部署信息,创建目标服务对应的队列;根据目标服务的部署信息,确定目标服务的部署信息在预定时段内是否发生变化;在确定目标服务的部署信息发生变化的情况下,根据目标服务对应的队列,生成部署服务命令;以及向第二服务器发送部署服务命令,以使第二服务器执行与部署服务命令对应的部署任务。本实施例无需复杂的配置部署,仅通过第二服务器上报的设备相关信息即可掌握所有目标服务的部署目的地信息,由此提高了配置效率,从而解决了配置效率低、配置容易出错的问题。
图1示意性示出了根据本公开实施例的服务部署方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括第一服务器101、网络102和第二服务器103。网络102用以在第一服务器101和第二服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
第一服务器101通过网络102与第二服务器103交互,以接收或发送消息等。
需要说明的是,本公开实施例所提供的服务部署方法一般可以由第一服务器101或第二服务器103执行。相应地,本公开实施例所提供的服务部署装置一般可以设置于第一服务器101或第二服务器103中。
应该理解,图1中的网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的网络和服务器。
以下将基于图1描述的场景,通过图2对公开实施例的服务部署方法进行详细描述。
图2示意性示出了根据本公开实施例的服务部署方法的流程图。
如图2所示,该实施例包括操作S210~操作S240,该服务部署方法可以服务部署系统中的服务器执行。
在操作S210,响应于接收到来自第二服务器的设备相关信息,根据设备相关信息和目标服务的部署信息,创建目标服务对应的队列。
在操作S210中,目标服务的部署信息是由系统管理员事先录入到服务器中的相关服务的部署信息,将该服务部署信息作为目标服务的部署信息。举例来说,目标服务的部署信息如为服务名称、部署服务器的主机名称hostname、互联网协议IP地址、端口号等等;进一步的,目标服务的部署信息可以包括:服务名称、部署服务器的主机名称、互联网协议地址(IP地址)、端口号(如PORT端口号)、停止脚本地址、停止命令、启动脚本地址、启动命令、重启脚本地址、重启命令、健康检查脚本地址、健康检查命令、健康检查执行时间周期、自愈指令(针对不健康服务是否进行自愈的命令)、部署方式(如全自动部署、部署并发度、制定部署等)、以及失败重试次数阈值中的至少之一。
在操作S210中,第二服务器启动后,会将自身的设备相关信息发送至第一服务器,如预先在第二服务器配置代理程序,存储在第二服务器的代理程序获取自身的设备相关信息并向第一服务器发送。
在操作S210中,第二服务器的设备相关信息可以为自身的机器hostname信息、自身的IP地址、PORT端口等信息,还可以为自身的部署进程,还可以为自身的存活状态等等。
在操作S210中,通过设备相关信息与目标服务的部署信息进行匹配,即可获知第二服务器的已部署情况和待部署情况。该队列存储了一个或多个设备相关信息,与该设备相关信息对应的第二服务器均待部署该目标服务。
因此根据队列,可掌握部署目的地信息,无需增加各种人工配置,如添加目标及其具有权限的账号密码或其他登陆信息,在进行服务部署时,避免了监控脚本分散、格式不统一、配置容易出错等问题。
在操作S220,根据目标服务的部署信息,确定目标服务的部署信息在预定时段内是否发生变化。
在操作S220中,服务器录入部署信息后会实时或定时监控目标服务的部署信息,监控目标服务的部署信息在预定时段内是否发生变化。
在操作S220中,目标服务的部署信息发生变化的情况可以为部署信息发生变动,如更新版本,也可以为增加了新的部署信息等等。
在操作S230中,在确定目标服务的部署信息发生变化的情况下,根据目标服务对应的队列,生成部署服务命令。
在操作S230中,基于目标服务对应的队列能够生成部署服务命令。
在操作S240,向第二服务器发送部署服务命令,以使第二服务器执行与部署服务命令对应的部署任务。
在操作S240中,向第二服务器发送部署服务命令,以使第二服务器在接收到部署服务命令后,即可执行部署任务,如远程获取目标服务的流程包信息并进行部署。
本实施例,通过响应于接收到来自第二服务器的设备相关信息,根据设备相关信息和目标服务的部署信息,创建目标服务对应的队列。然后,根据目标服务的部署信息,确定目标服务的部署信息在预定时段内是否发生变化。在确定目标服务的部署信息发生变化的情况下,根据目标服务对应的队列,生成部署服务命令。之后,向第二服务器发送部署服务命令,以使第二服务器执行与部署服务命令对应的部署任务,本实施例无需复杂的配置部署,仅通过第二服务器上报的设备相关信息即可掌握所有目标服务的部署目的地信息,可见本实施例提升了配置效率。
在确定目标服务的部署信息发生变化的情况下,根据目标服务对应的队列,生成部署服务命令,包括:在确定目标服务的部署信息发生变化的情况下,复制目标服务对应的队列作为任务队列;基于任务队列,确定预定数目的设备相关信息;根据预定数目的设备相关信息,生成部署服务命令。
在本实施例中,复制目标服务对应的队列作为任务队列,使得目标服务对应的队列始终始终记录设备相关信息和目标服务的部署信息,基于任务队列弹出设备相关信息,如弹出队首的一个或多个设备相关信息。还可以配置部署并发度,确定执行目标服务部署的设备相关信息个数,如部署并发度确定同时执行部署的第二服务器数量为n,则每次从任务队列中弹出队列首部的n个设备相关信息,n为正整数。
图3示意性示出了根据本公开实施例的队列示意图,参见图3,T1时刻对应的是复制好的任务队列,该任务队列存储了1至10共十个设备相关信息。当前确定执行目标服务部署的设备相关信息个数如为2,因此任务队列弹出设备相关信息1和2,则T2时刻对应的任务队列包括3至10共八个设备相关信息。之后,任务队列弹出设备相关信息3和4,则T2时刻对应的任务队列包括5至10共6个设备相关信息,持续运行,直至Tn时刻,此时任务队列中的设备相关信息数量为零。
通过复制目标服务对应的队列作为任务队列,使原始的目标服务对应队列保持不变;采用任务队列进行设备相关信息的弹出,能够实现存储记录整个服务的部署流程,有利于实时掌握所有部署情况。
服务部署方法还包括:根据任务队列,建立与任务队列对应的第一队列和第二队列;在接收到来自第二服务器的执行结果为执行成功的情况下,在第一队列中记录设备相关信息;在接收到来自第二服务器的执行结果为执行失败的情况下,在第二队列中记录设备相关信息;在确定任务队列中的设备相关信息均弹出且第二队列为空时,记录目标服务部署成功;在确定第二队列中存在设备相关信息时,根据第二队列中存在的设备相关信息生成部署服务命令,发送部署服务命令。
举例来说,建立的第一队列和第二队列,当前状态为空队列,将第一队列做为成功队列,将第二队列作为失败队列;等待执行结果,在执行成功的情况下,第一队列中记录相应的设备相关信息,在执行失败的情况下,第二队列中记录相应的设备相关信息,一轮部署后,检查任务队列、第一队列和第二队列各自存储设备相关信息的情况,在确定任务队列中的设备相关信息均弹出且第二队列(失败队列)为空时,记录目标服务部署成功;在确定第二队列(失败队列)中存在设备相关信息时,则表示当前未全部部署成功,则根据第二队列中存在的设备相关信息生成部署服务命令,发送部署服务命令,进行下一轮的服务部署任务,等待执行结果,直至第一队列(成功队列)中的设备相关信息数量与任务队列中的设备相关信息数量相等,或第二队列中的设备相关信息数量为零时,确定不再执行当前部署服务任务。进一步的,可以配置部署失败的最大重试次数,即失败重试次数阈值,每失败一次记录一次,直至达到失败重试次数阈值,停止执行当前部署服务任务,不再生成部署服务命令。
本实施例,通过建立与任务队列的成功队列和失败队列,以及相应的执行记录,一方面利于全面掌握目标服务的部署情况,另一方面能够优化每一轮的部署任务,保证运行效率,提供运行稳定性。
向第二服务器发送部署服务命令,以使第二服务器执行与部署服务命令对应的部署任务,包括:通过超文本传输协议,和/或,远程过程调用协议向第二服务器发送部署服务命令,以使第二服务器执行与部署服务命令对应的部署任务。
在本实施中,通过超文本传输协议(HTTP),和/或,远程过程调用协议(RPC)向第二服务器发送指令,能够避免在众多目标第二服务器中编写脚本,以及配置和重启工作,有利于提升运行效率。
目标服务的部署信息包括健康检查脚本地址和健康检查执行时间周期;方法还包括:基于健康检查脚本地址和健康检查执行时间周期,向第二服务器发送健康检查命令;响应于接收到来自第二服务器的健康检查结果,存储健康检查结果。
在本实施例中,通过发送健康检查命令,以及响应于接收到来自第二服务器的健康检查结果,存储健康检查结果,能够掌握第二服务器的健康状态,从而优化整个服务部署系统,保证持续运行,如剔除不再存活的第二服务器中的执行代理程序,如基于健康检查结果确定不健康的第二服务器,并向不健康的第二服务器发送启动命令或重启命令,以使服务部署系统具有自检查、自重试的能力,实现健康状态的监控。
目标服务的部署信息包括:服务名称、部署服务器的主机名称、互联网协议地址、端口号、停止脚本地址、启动脚本地址、重启脚本地址、健康检查脚本地址、健康检查执行时间周期、自愈指令、部署方式、以及失败重试次数阈值中的至少之一。
通过服务名称、部署服务器的主机名称、互联网协议地址、端口号、停止脚本地址、启动脚本地址、重启脚本地址、健康检查脚本地址、健康检查执行时间周期、自愈指令、部署方式、以及失败重试次数阈值中的一种或多种,能够提供多方面的部署服务,以便满足多样的用户需求。
图4示意性示出了根据本公开另一实施例的服务部署方法的流程图。
如图4所示,该实施例包括操作S410~操作S420,该服务部署方法可以服务部署系统中的第二服务器执行。
在操作S410,发送与第二服务器对应的设备相关信息。
在本实施例中,第二服务器启动后,会将自身的设备相关信息发送至服务器,如预先在第二服务器配置代理程序,存储在第二服务器的代理程序获取自身的设备相关信息并向服务器发送。
在操作S420,接收来自第一服务器的部署服务命令,并执行与部署服务命令对应的部署任务;其中,部署服务命令包括:第一服务器在确定目标服务的部署信息发生变化的情况下,根据目标服务对应的队列,生成的部署服务命令。
在本实施例中,第二服务器在接收到部署服务命令后,即可执行部署任务,如远程获取目标服务的流程包信息并进行部署。
执行与部署服务命令对应的部署任务,包括:获取与部署服务命令对应的程序包信息;执行程序包信息完成部署服务任务。
在本实施例中,举例来说,第二服务器可以远程去预先配置的共享存储系统获取与部署服务命令对应的程序包信息,在获取到程序包信息后完成部署服务任务。
在本实施例中,举例来说,系统可以实时监控是否有新的程序包上传成功,从而获取新的程序包信息,进行新的部署任务执行。
服务部署方法还包括:接收健康检查命令;执行健康检查命令,并发送健康检查结果。
在本实施例中,第二服务器上报自身的健康检查结果,如目标服务系统a存活,或目标服务系统b不存活等等。
图5示意性示出了根据本公开实施例的服务部署系统的示意图。参见图5,为了更好的理解本公开,下面结合实施例进一步阐述本公开的内容,但本公开不仅仅局限于下面实施例。
服务部署系统500包括第一服务器501和第二服务器502、503、504。由第一服务器501发送命令,如部署服务命令、健康检查命令等、由第二服务器502、503、504中的至少一个发送执行结果,如执行成功、健康检查结果等。
举例来说,针对服务部署及健康状态监控的问题,本实施例结合预设的CMDB企业资产管理平台、预设的共享存储系统、HTTP协议以及shell命令实现全流程自动化服务部署,具体如下。
步骤1:系统服务管理员在CMDB中录入相关系统服务的部署信息(即目标服务的部署信息),包括:服务名称、部署服务器的hostname、IP地址、PORT端口号、停止脚本地址、停止命令、启动脚本地址、启动命令、重启脚本地址、重启命令、健康检查脚本地址、健康检查命令、健康检查执行时间周期、不健康服务是否进行自愈、自动化部署方式(如全自动部署及部署并发度、人工指定部署)以及最大失败重试次数。
步骤2:系统服务管理员在CMDB配置完服务的部署信息后,执行服务信息发布命令。
步骤3:服务总控系统定时监控CMDB系统服务的部署信息变动,读取最新的部署信息,对内存中的过期信息进行调整,始终保持具有最新的系统服务部署信息,还可以为在确定目标服务的部署信息发生变化的情况下,向第二服务器发送执行启动命令,如图5所示的示意图,第一服务器501向第二服务器502、503、504发送命令,当前命令为执行启动命令。
步骤4:参见图5,第二服务器502、503、504向第一服务器501发送执行结果,即设备相关信息,如在部署客户机服务器上启动客户机服务执行代理程序,客户机服务代理程序向服务总控系统上报自身的机器hostname信息、自身的IP地址、PORT端口等信息,服务总控系统对每个系统服务建立一个队列,统一管理客户机服务执行代理程序的信息,同时客户机服执行代理程序定时周期性上报自身存活状态,服务总控系统定时周期性检查记录的客户机服务执行代理程序存活状态,剔除并记录不再存活的客户机服务执行代理程序;
步骤5:服务总控系统通过步骤1,确定系统服务管理员录入的部署方式执行不同的动作,即:步骤6全自动方式,和/或,步骤7人工指定方式进行部署;
步骤6:全自动部署方式:总控系统会对共享存储该服务的程序包信息进行实时监控,当监控到该系统有最新的程序包上传成功时,获取步骤4中维护的该系统对应的客户机服务执行代理程序队列,并复制一份作为任务队列,另建立两个空队列分别为成功队列和失败队列,根据系统管理员在步骤1中设置部署并发度确定同时执行部署的客户机数量(如为n个,n为正整数),即每次从任务队列中弹出队列首部的n个客户机服务执行代理程序信息,通过HTTP协议发送相应的执行命令给客户机执行代理程序,根据步骤1中设置的健康检查时间周期发送健康检查执行命令给取出的n个客户机服务执行代理程序,客户机服务执行代理程序检查自身所在机器该系统服务是否已变更,状态是否健康,如健康发送健康信息给服务总控系统,服务总控系统将这n个客户机服务执行代理程序信息推入成功队列中,如该系统服务进程检查不到,则回发失败信息给服务总控程序,服务总控程序将该客户机服务执行代理程序信息推入失败队列中,服务总控程序从任务队列中再取出n个客户机服务执行代理程序执行同样的动作,直至任务队列为空;任务队列为空时,检查成功队列中的数量是否与客户机服务执行代理程序列队大小相同,如相同,则记录全部部署成功;如不同,将失败队列(如为空,则等待健康检查命令周期性执行完成,再重新检查成功队列和失败队列)中的客户机服务执行代理程序重新推入任务队列中,重新执行,直至全部部署成功或达到部署失败最大重试次数。
步骤7:人工指定方式,人工发送系统服务部署信息及动作、部署并发度、最大重试次数给服务总控系统,服务总控系统根据步骤4,维护的客户机服务执行代理程序队列,通过HTTP协议发送相应的命令给客户机服务执行代理程,内部状态维护及调度同全自动部署方式;
步骤8:服务总控系统根据步骤1,设置的健康检查执行时间周期,定时给该系统的所有客户机服务执行代理程序发送健检查命令,获取健康检查结果(正常、消失、不正常)并记录,供查询使用,同时根据不健康服务是否自愈配置,发送重启命令到相应的客户机服务执行代理程序;
步骤9:参见图5所示的示意图,第一服务器501向第二服务器502、503、504发送命令,当前命令为服务重启命令。之后,第二服务器502、503、504执行代理程序检查自身所在客户机部署的该服务的进程信息,执行命令中提供的重启命令执行重启动作,第二服务器502、503、504向第一服务器501发送执行结果,如已重启完毕。
步骤10:参见图5所示的示意图,第一服务器501向第二服务器502、503、504发送命令,当前命令为部署服务命令。之后,检查自身所在客户机是否已有所需部署程序的最新程序包,若没有,对现有的部署程序的程序包进行备份,并根据命令中的信息从共享存储中拉取最新的该程序软件包放入部署目录,执行命令(或相应的脚本)中提供的重启命令(启动命令)等;
步骤11:参见图5所示的示意图,第一服务器501向第二服务器502、503、504发送命令,当前命令为停止服务命令。之后,检查自身所在客户机所部署的该服务的进程信息,执行命令中提供的停止命令执行停止动作,第二服务器502、503、504向第一服务器501发送执行结果,如已停止。
基于上述服务部署方法,本公开还提供了一种服务部署装置。以下将结合图6对该装置进行详细描述。
图6示意性示出了根据本公开实施例的服务部署装置的结构框图。
如图6所示,该实施例的服务部署装置600包括第一创建模块610、第一确定模块620、第一生成模块630和第一发送模块640。第一创建模块610用于响应于接收到来自第二服务器的设备相关信息,根据设备相关信息和目标服务的部署信息,创建目标服务对应的队列。第一确定模块620用于根据目标服务的部署信息,确定目标服务的部署信息在预定时段内是否发生变化.第一生成模块630用于在确定目标服务的部署信息发生变化的情况下,根据目标服务对应的队列,生成部署服务命令。以及第一发送模块640用于向第二服务器发送部署服务命令,以使第二服务器执行与部署服务命令对应的部署任务。
根据本公开的实施例,第一创建模块610、第一确定模块620、第一生成模块630和第一发送模块640中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一创建模块610、第一确定模块620、第一生成模块630和第一发送模块640中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一创建模块610、第一确定模块620、第一生成模块630和第一发送模块640中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
基于上述服务部署方法,本公开还提供了一种服务部署装置,应用于服务器。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本公开实施例的服务部署装置的结构框图。
如图7所示,该实施例的服务部署装置700包括第一发送模块710和第一执行模块720。
第一发送模块710用于发送与第二服务器对应的设备相关信息。以及第一执行模块720用于接收来自第一服务器的部署服务命令,并执行与部署服务命令对应的部署任务;其中,部署服务命令包括:第一服务器在确定目标服务的部署信息发生变化的情况下,根据目标服务对应的队列,生成的部署服务命令。
根据本公开的实施例,第一发送模块710和第一执行模块720中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一发送模块710和第一执行模块720中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一发送模块710和第一执行模块720中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现服务部署方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至I/O接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分809被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。电应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (15)
1.一种服务部署方法,应用于第一服务器,包括:
响应于接收到来自第二服务器的设备相关信息,根据所述设备相关信息和目标服务的部署信息,创建目标服务对应的队列;
根据所述目标服务的部署信息,确定所述目标服务的部署信息在预定时段内是否发生变化;
在确定所述目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成部署服务命令;以及
向所述第二服务器发送所述部署服务命令,以使所述第二服务器执行与所述部署服务命令对应的部署任务。
2.根据权利要求1所述的方法,其中,所述在确定所述目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成部署服务命令,包括:
在确定所述目标服务的部署信息发生变化的情况下,复制所述目标服务对应的队列作为任务队列;
基于所述任务队列,确定预定数目的设备相关信息;
根据所述预定数目的设备相关信息,生成部署服务命令。
3.根据权利要求2所述的方法,还包括:
根据所述任务队列,建立与所述任务队列对应的第一队列和第二队列;
在接收到来自所述第二服务器的执行结果为执行成功的情况下,在所述第一队列中记录所述设备相关信息;
在接收到来自所述第二服务器的执行结果为执行失败的情况下,在所述第二队列中记录所述设备相关信息;
在确定所述任务队列中的设备相关信息均弹出且所述第二队列为空时,记录所述目标服务部署成功;
在确定所述第二队列中存在设备相关信息时,根据所述第二队列中存在的设备相关信息生成部署服务命令,发送所述部署服务命令。
4.根据权利要求1所述的方法,其中,所述向所述第二服务器发送所述部署服务命令,以使所述第二服务器执行与所述部署服务命令对应的部署任务,包括:
通过超文本传输协议,和/或,远程过程调用协议向所述第二服务器发送所述部署服务命令,以使所述第二服务器执行与所述部署服务命令对应的部署任务。
5.根据权利要求1所述的方法,其中,所述目标服务的部署信息包括健康检查脚本地址和健康检查执行时间周期;所述方法还包括:
基于健康检查脚本地址和健康检查执行时间周期,向第二服务器发送健康检查命令;
响应于接收到来自所述第二服务器的健康检查结果,存储所述健康检查结果。
6.根据权利要求5所述的方法,还包括:
基于所述健康检查结果确定不健康的所述第二服务器,并向所述不健康的第二服务器发送启动命令或重启命令。
7.根据权利要求1至6中任一项所述的方法,其中,所述目标服务的部署信息包括:服务名称、部署服务器的主机名称、互联网协议地址、端口号、停止脚本地址、启动脚本地址、重启脚本地址、健康检查脚本地址、健康检查执行时间周期、自愈指令、部署方式、以及失败重试次数阈值中的至少之一。
8.一种服务部署方法,应用于第二服务器,包括:
发送与所述第二服务器对应的设备相关信息;
接收来自第一服务器的部署服务命令,并执行与所述部署服务命令对应的部署任务;其中,所述部署服务命令包括:所述第一服务器在确定目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成的部署服务命令。
9.根据权利要求8所述的方法,其中,所述执行与所述部署服务命令对应的部署任务,包括:
获取与所述部署服务命令对应的程序包信息;
执行所述程序包信息完成所述部署服务任务。
10.根据权利要求8所述的方法,还包括:
接收健康检查命令;
执行所述健康检查命令,并发送健康检查结果。
11.一种服务部署装置,应用于第一服务器,包括:
第一创建模块,用于响应于接收到来自第二服务器的设备相关信息,根据所述设备相关信息和目标服务的部署信息,创建目标服务对应的队列;
第一确定模块,用于根据所述目标服务的部署信息,确定所述目标服务的部署信息在预定时段内是否发生变化;
第一生成模块,用于在确定所述目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成部署服务命令;以及
第一发送模块,用于向所述第二服务器发送所述部署服务命令,以使所述第二服务器执行与所述部署服务命令对应的部署任务。
12.一种服务部署装置,应用于第二服务器,包括:
第一发送模块,用于发送与所述第二服务器对应的设备相关信息;以及
第一执行模块,用于接收来自第一服务器的部署服务命令,并执行与所述部署服务命令对应的部署任务;其中,所述部署服务命令包括:所述第一服务器在确定目标服务的部署信息发生变化的情况下,根据所述目标服务对应的队列,生成的部署服务命令。
13.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~10中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~10中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111527548.8A CN114201181A (zh) | 2021-12-14 | 2021-12-14 | 服务部署方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111527548.8A CN114201181A (zh) | 2021-12-14 | 2021-12-14 | 服务部署方法、装置、电子设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114201181A true CN114201181A (zh) | 2022-03-18 |
Family
ID=80653602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111527548.8A Pending CN114201181A (zh) | 2021-12-14 | 2021-12-14 | 服务部署方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114201181A (zh) |
-
2021
- 2021-12-14 CN CN202111527548.8A patent/CN114201181A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10530840B2 (en) | Container-based system analytics appliance | |
US11244233B2 (en) | Intelligent adaptor service in unified automation platforms for robotic process automation | |
US11474834B2 (en) | Removing DevOps tools from DevOps toolchains | |
US10613853B2 (en) | Updating software components through online stores | |
US20180285165A1 (en) | Container-based system analytics appliance | |
US20120291132A1 (en) | System, method and program product for dynamically performing an audit and security compliance validation in an operating environment | |
US20210311859A1 (en) | Orchestration for automated performance testing | |
US8266301B2 (en) | Deployment of asynchronous agentless agent functionality in clustered environments | |
US20100250698A1 (en) | Automated tape drive sharing in a heterogeneous server and application environment | |
JP6279744B2 (ja) | eメールのウェブクライアント通知の待ち行列化方法 | |
US20200204461A1 (en) | Automation system for testing and publishing of web service | |
US9755922B2 (en) | Minimized installation of point of presence software agents by use of pre-installed browser | |
US20130204921A1 (en) | Diagnostics agents for managed computing solutions hosted in adaptive environments | |
US20170060704A1 (en) | Synchronization of a disaster-recovery system | |
CN114201181A (zh) | 服务部署方法、装置、电子设备和介质 | |
US20230032516A1 (en) | Common platform for implementing rpa services on customer premises | |
US9002996B2 (en) | Transaction based server configuration management system and method therefor | |
US10977210B2 (en) | Methods for implementing an administration and testing tool | |
US20230114232A1 (en) | Cloud connector system for establishing a secure connection between cloud server and a tenant | |
US11886283B2 (en) | Automatic node crash detection and remediation in distributed computing systems | |
US20240143385A1 (en) | Long Duration Asynchronous Transaction Monitoring of Distributed Systems | |
CN113760635A (zh) | 连接异常的确定方法、装置、电子设备和存储介质 | |
CN111782441A (zh) | 分布式数据库的管理方法、装置、电子设备和介质 | |
CN115033251A (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 |