服务部署方法、装置、电子设备以及存储介质

文档序号:7199 发布日期:2021-09-17 浏览:110次 英文

服务部署方法、装置、电子设备以及存储介质

技术领域

本公开涉及数据处理

技术领域

,尤其涉及一种服务部署方法、装置、电子设备以及存储介质。

背景技术

目前,针对大数据集群,例如10万级别的大数据集群,服务部署方法主要为,先手动生成一份针对小集群的集群配置信息,集群配置信息中包括待部署到小集群的服务;部署并验证正常运行后,存储到配置中心,通过扩容的方式,从配置中心获取所述集群配置信息,手动调整并部署到大数据集群上。

然而,上述方法中,大数据集群上的实际配置,与配置中心存储的部署配置是不一致的,难以统一,从而集群管理成本高,集群管理效率差。

发明内容

本公开提供一种服务部署方法、装置、电子设备以及存储介质,以至少解决相关技术中大数据集群上的实际配置,与配置中心存储的集群配置信息不一致,难以统一,集群管理成本高,集群管理效率差的问题。

本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种服务部署方法,包括:

获取待部署项目中各个服务的配置信息;

组合所述待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;

根据所述一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;

根据所述各个服务器的角色、以及所述服务器的角色对应的服务组合中各个服务的配置信息,生成所述各个服务器的部署配置;

根据所述各个服务器的部署配置,配置所述各个服务器。

作为本公开实施例的第一种可能的情况,所述组合所述待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色,包括:

按照服务组合原则对所述待部署项目中的各个服务进行组合,得到一个或多个服务组合以及每个服务组合对应的角色。

作为本公开实施例的第二种可能的情况,所述根据所述一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色,包括:

根据所述一个或多个服务组合以及每个服务组合对应的角色,为所述各个服务器分配候选角色;

针对每个服务器,在所述服务器的候选角色为多个时,获取多个候选角色对应的服务组合中的服务,并生成服务集合;

在所述服务集合中的服务满足服务组合原则时,将所述服务器的候选角色,确定为所述服务器的角色;

在所述服务集合中的服务不满足所述服务组合原则时,调整所述服务器的候选角色,直至所述服务集合中的服务满足所述服务组合原则。

作为本公开实施例的第三种可能的情况,所述服务组合原则包括以下原则中的至少一种:预设的服务组合列表、相同项目中的不同服务不能组合在一起、基础层服务中控制类服务和被控制类服务可以组合在一起、非基础层服务中不同项目的控制类服务和被控制类服务可以组合在一起、非基础层服务中被控制类服务不能组合在一起、服务组合中的服务数量小于或者等于预设数量阈值。

作为本公开实施例的第四种可能的情况,在根据所述各个服务器的角色、以及所述服务器的角色对应的服务组合中各个服务的配置信息,生成所述各个服务器的部署配置之后,还包括:

监听配置信息变更请求,所述配置信息变更请求包括目标服务以及所述目标服务的配置变更内容;

在监听到配置信息变更请求时,根据所述目标服务的配置变更内容,更新所述目标服务的配置信息。

作为本公开实施例的第五种可能的情况,所述根据所述各个服务器的部署配置,配置所述各个服务器,包括:

确定所述各个服务器的部署时间点,并将所述部署时间点发送给对应的服务器;

在接收到目标服务器根据对应的部署时间点所发送的配置请求时,获取所述目标服务器的部署配置;

将所述目标服务器的部署配置返回给所述目标服务器,其中,所述部署配置用于配置所述目标服务器。

作为本公开实施例的第六种可能的情况,每个服务器的部署时间点为多个,且相邻两个部署时间点之间的时间差值小于预设差值阈值;和/或,

所述各个服务器的部署时间点错峰设置。

作为本公开实施例的第七种可能的情况,在根据所述各个服务器的部署配置,配置所述各个服务器之后,还包括:

判断所述集群是否满足重新部署条件,其中,所述重新部署条件包括以下条件中的至少一种:所述集群中的服务器存在变更、所述集群上部署的项目存在变更、所述集群上部署的项目中的服务存在变更;

在所述集群满足重新部署条件时,获取待部署项目中各个服务的配置信息;组合所述待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;根据所述一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;根据所述各个服务器的角色、以及所述服务器的角色对应的服务组合中各个服务的配置信息,生成所述各个服务器的部署配置。

本公开实施例的服务部署方法中,通过获取待部署项目中各个服务的配置信息;组合待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;根据一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;根据各个服务器的角色、以及服务器的角色对应的服务组合中各个服务的配置信息,生成各个服务器的部署配置;根据各个服务器的部署配置,配置各个服务器,其中,对服务的组合,使得组合之后得到的角色的数量远远小于服务的数量,能够减少服务部署时的工作量,且一次性部署,大数据集群上的实际部署配置与从配置中心上获取到的部署配置是一致的,容易管理,降低了集群管理成本,提高了集群管理效率。

根据本公开实施例的第二方面,提供一种服务部署装置,包括:

获取模块,被配置为执行获取待部署项目中各个服务的配置信息;

组合模块,被配置为执行组合所述待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;

分配模块,被配置为执行根据所述一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;

生成模块,被配置为执行根据所述各个服务器的角色、以及所述服务器的角色对应的服务组合中各个服务的配置信息,生成所述各个服务器的部署配置;

部署模块,被配置为执行根据所述各个服务器的部署配置,配置所述各个服务器。

作为本公开实施例的第一种可能的情况,所述组合模块具体被配置为执行,按照服务组合原则对所述待部署项目中的各个服务进行组合,得到一个或多个服务组合以及每个服务组合对应的角色。

作为本公开实施例的第二种可能的情况,所述分配模块具体被配置为执行,

根据所述一个或多个服务组合以及每个服务组合对应的角色,为所述各个服务器分配候选角色;

针对每个服务器,在所述服务器的候选角色为多个时,获取多个候选角色对应的服务组合中的服务,并生成服务集合;

在所述服务集合中的服务满足服务组合原则时,将所述服务器的候选角色,确定为所述服务器的角色;

在所述服务集合中的服务不满足所述服务组合原则时,调整所述服务器的候选角色,直至所述服务集合中的服务满足所述服务组合原则。

作为本公开实施例的第三种可能的情况,所述服务组合原则包括以下原则中的至少一种:预设的服务组合列表、相同项目中的不同服务不能组合在一起、基础层服务中控制类服务和被控制类服务可以组合在一起、非基础层服务中不同项目的控制类服务和被控制类服务可以组合在一起、非基础层服务中被控制类服务不能组合在一起、服务组合中的服务数量小于或者等于预设数量阈值。

作为本公开实施例的第四种可能的情况,所述的服务部署装置,还包括:监听模块和更新模块;所述监听模块,被配置为执行监听配置信息变更请求,所述配置信息变更请求包括目标服务以及所述目标服务的配置变更内容;

所述更新模块,被配置为执行在监听到配置信息变更请求时,根据所述目标服务的配置变更内容,更新所述目标服务的配置信息。

作为本公开实施例的第五种可能的情况,所述部署模块具体被配置为执行,

确定所述各个服务器的部署时间点,并将所述部署时间点发送给对应的服务器;

在接收到目标服务器根据对应的部署时间点所发送的配置请求时,获取所述目标服务器的部署配置;

将所述目标服务器的部署配置返回给所述目标服务器,其中,所述部署配置用于配置所述目标服务器。

作为本公开实施例的第六种可能的情况,每个服务器的部署时间点为多个,且相邻两个部署时间点之间的时间差值小于预设差值阈值;和/或,

所述各个服务器的部署时间点错峰设置。

作为本公开实施例的第七种可能的情况,所述的服务部署装置还包括:判断模块;

所述判断模块被配置为执行,判断所述集群是否满足重新部署条件,其中,所述重新部署条件包括以下条件中的至少一种:所述集群中的服务器存在变更、所述集群上部署的项目存在变更、所述集群上部署的项目中的服务存在变更;

所述获取模块还被配置为执行,在所述集群满足重新部署条件时,获取待部署项目中各个服务的配置信息;

所述组合模块还被配置为执行,组合所述待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;

所述分配模块还被配置为执行,根据所述一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;

所述生成模块还被配置为执行,根据所述各个服务器的角色、以及所述服务器的角色对应的服务组合中各个服务的配置信息,生成所述各个服务器的部署配置。

本公开实施例的服务部署装置中,通过获取待部署项目中各个服务的配置信息;组合待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;根据一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;根据各个服务器的角色、以及服务器的角色对应的服务组合中各个服务的配置信息,生成各个服务器的部署配置;根据各个服务器的部署配置,配置各个服务器,其中,对服务的组合,使得组合之后得到的角色的数量远远小于服务的数量,能够减少服务部署时的工作量,且一次性部署,大数据集群上的实际部署配置与从配置中心上获取到的部署配置是一致的,容易管理,降低了集群管理成本,提高了集群管理效率。

根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现本公开第一方面实施例提出的服务部署方法。

根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得电子设备能够执行本公开第一方面实施例提出的服务部署方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,该计算机程序由服务器的处理器执行时,使得服务器能够执行本公开第一方面实施例提出的服务部署方法。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例一所示出的服务部署方法的流程图;

图2为服务部署装置进行服务部署的示意图;

图3是根据一示例性实施例二所示出的服务部署方法的流程图;

图4是根据一示例性实施例三所示出的服务部署装置的框图;

图5是根据一示例性实施例四所示出的服务部署装置的框图;

图6是根据一示例性实施例示出的一种用于服务部署的电子设备的框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

目前针对大数据集群,例如10万级别的大数据集群,服务部署方法主要为,先手动生成一份针对小集群的集群配置信息,集群配置信息中包括待部署到小集群的服务;部署并验证正常运行后,存储到配置中心,通过扩容的方式,从配置中心获取所述集群配置信息,手动调整并部署到大数据集群上。

然而,上述方法中,大数据集群上的实际配置,与配置中心存储的部署配置是不一致的,难以统一,从而集群管理成本高,集群管理效率差。

本公开主要针对相关技术中大数据集群上的实际配置与配置中心存储的部署配置不一致、难以统一、集群管理成本高、集群管理效率差的问题,提出一种服务部署方法。本公开实施例的服务部署方法,通过对服务的组合,使得组合之后得到的角色的数量远远小于服务的数量,能够减少服务部署时的工作量,且一次性部署,大数据集群上的实际部署配置与从配置中心上获取到的部署配置是一致的,容易管理,降低了集群管理成本,提高了集群管理效率。

图1是根据一示例性实施例一所示出的服务部署方法的流程图。

本公开实施例的执行主体可以为服务部署装置,服务部署装置例如可以为集群的配置中心。其中,集群的配置中心,例如可以为集群中负责集群管理的一个或者多个服务器。

如图1所示,服务部署方法可以包括以下步骤:

在步骤S101中,获取待部署项目中各个服务的配置信息。

本公开实施例中,集群,可以为未部署过服务的集群,或者,可以为已部署过服务但满足重新部署条件的集群,其中,重新部署条件包括以下条件中的至少一种:集群中的服务器存在变更、集群上部署的项目存在变更、集群上部署的项目中的服务存在变更。一个实施例中,项目指定了需要实现的任务,该任务可以拆分为多个子任务,每个子任务可以通过多个服务来实现。也就是说,通过项目中的服务来实现项目指定的任务。例如,项目可以为存储任务,该任务可以拆分为多个子存储任务。另一个实施例中,项目包括需要提供的服务,例如存储服务、搜索服务等。

本公开实施例中,未部署过服务的集群,可以为一次都未部署过服务的集群;或者,部署过服务但部署过的服务被删除的集群。本公开实施例中,集群中的服务器存在变更指的是,集群中增加新的服务器、或者集群中减少部分服务器等。其中,对集群进行扩容时或者更换故障服务器时,一般会在集群中增加新的服务器。集群中服务器存在故障时,会删除故障的服务器,因此会导致集群中服务器的减少。

本公开实施例中,集群上部署的项目存在变更的确定方式为:将当前时间点集群上项目的标识与之前时间点集群上项目的标识进行比对,来确定集群上部署的项目是否存在变更。例如,在已部署项目A的各个服务的集群上,又部署了项目B的各个服务,则此时集群上部署的服务部分属于项目A,部署属于项目B,则项目存在变更;若集群上部署新服务后的服务全部属于项目A,则项目不存在变更。

本公开实施例中,集群上部署的项目中的服务存在变更,可以通过项目中服务的标识来确定,将当前时间点项目中服务的标识与之前时间点项目中服务的标识进行比对,来确定项目中的服务是否存在变更。例如,在已部署项目A的各个服务的集群上,又部署了属于项目A的新服务,此时集群上标注有项目A的服务的数量、名称等发生变化,则确定项目A中的服务存在变更;若集群上标注有项目A的服务的数量、名称等都未发生变化,则确定项目A中的服务不存在变更。

在步骤S102中,组合待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色。

本公开实施例中,服务部署装置执行步骤102的过程例如可以为,按照服务组合原则对待部署项目中的各个服务进行组合,得到一个或多个服务组合以及每个服务组合对应的角色。其中,服务组合原则需要满足以下条件中的至少一种:(1)一个服务组合中的多个服务之间不存在冲突,确保一个服务组合中的多个服务均能够提供服务;(2)一个服务组合中的多个服务之间组合时能够提高服务效率,或者能够确保单个服务的服务效率,避免一个服务的使用影响另一个服务的使用;也就是说,服务组合中各个服务的总服务效率大于或者等于,服务组合中各个服务的服务效率的总和;(3)一个服务组合不能提供服务时,其他服务组合能够提供类似的功能,即具有类似功能的多个服务不能放置在同一个服务组合中,从而尽量降低整个项目的出故障概率。(4)为了确保各个服务组合的服务效率,进而确保部署有服务组合的服务器的服务效率,可以限制服务组合中服务的数量,避免一个服务组合中服务过多,而另一个服务组合中服务过少的情况。其中,需要说明的是,服务组合中各个服务的总服务效率,为预先对所述各个服务进行组合确定得到的总服务效率,或者,根据所述各个服务的功能、耗费的资源、服务之间是否有关联关系等预估得到的总服务效率。

需要进行说明的是,以耗费的资源和服务之间是否有关联关系为例,预估方式例如可以为,若服务A为被控制类服务,服务B为控制类服务,服务B对服务A进行调用,此时总服务时间可以为服务B的服务时间,进而根据总服务时间确定总服务效率。又例如,若服务A与服务B没有关联关系,若服务A与服务B所耗费的资源种类不同,可以同时进行服务,则总服务时间可以为服务A的服务时间和服务B的服务时间中的最大时间,进而根据总服务时间确定总服务效率;若服务A与服务B所耗费的资源种类相同,且不能同时服务,则总服务时间可以为服务A的服务时间加上服务B的服务时间,进而根据总服务时间确定总服务效率。

因此,在上述条件的基础上,服务组合原则可以包括以下原则中的至少一种:预设的服务组合列表、相同项目中的不同服务不能组合在一起、基础层服务中控制类服务和被控制类服务可以组合在一起、非基础层服务中不同项目的控制类服务和被控制类服务可以组合在一起、非基础层服务中被控制类服务不能组合在一起、服务组合中的服务数量小于或者等于预设数量阈值。

本公开实施例中,预设的服务组合列表中的服务组合,为多个服务之间经常采用的组合,例如项目1中的服务A与项目2中的服务B经常组合在一起,则将服务A与服务B的组合添加到服务组合列表中。

本公开实施例中,相同项目中的不同服务不能组合在一起,则可以将相同项目中的不同服务放置在不同的服务组合中,进而不同的服务组合部署在不同的服务器上,从而在某个服务器出现故障时,可以采用其他服务器上的服务实现该服务器上服务的功能。例如,一个项目中有服务A和服务B,服务A和服务B提供不同的服务,若将服务A和服务B组合在一起,从而部署在同一个服务器上,则在该服务器出现故障时,会出现服务A和服务B均不能提供服务的情况。而若服务A和服务B部署在不同的服务器上,会减少服务器出现故障时不能提供服务的服务的数量。

本公开实施例中,需要说明的是,项目中的各个服务是分等级的,包括基础层服务和非基础层服务。其中,基础层服务,为基础层,例如数据层中提供数据计算和存储管理的服务。非基础层服务,为业务逻辑层或者应用层中执行逻辑处理等的服务,这些服务基于基础层服务提供的数据进行逻辑处理。另外,服务可以分为两种,一种是控制类服务,一种是被控制类服务,其中,被控制类服务,为根据控制类服务的调用来提供服务,例如数据存储服务、数据删除服务等。控制类服务,例如数据管理服务、调用数据存储服务、数据删除服务等来实现数据管理。

本公开实施例中,基础层服务中控制类服务和被控制类服务可以组合在一起。例如,若控制类服务A和被控制类服务B没有组合在一起,被部署在不同的两个服务器上,由于控制类服务A和被控制类服务B之间有控制关系,则只要有其中一个服务器出现故障,则控制类服务A和被控制类服务B均不能提供服务。若控制类服务A和被控制类服务B组合在一起,部署在相同的服务器上,由于一个服务器出现故障的概率a是小于两个服务器中只要有一个服务器出现故障的概率a+b的,因此,基础层服务中控制类服务和被控制类服务可以组合在一起,从而能够尽量减少整个项目的故障时间。

本公开实施例中,非基础层服务中不同项目的控制类服务和被控制类服务可以组合在一起。由于不同项目的控制类服务和被控制类服务之间互不影响,没有调用关系,同时提供服务占用资源的情况也很少,从而不同项目的控制类服务和被控制类服务组合在一起,部署在同一个服务器上,能够在一定程度上提高服务效率。

本公开实施例中,非基础层服务中被控制类服务不能组合在一起。由于被控制类服务需要占用大量的资源,若将非基础层服务中被控制类服务组合在一起,可能会出现多个被控制类服务抢占资源的情况,一定程度上降低了服务效率。因此,非基础层服务中被控制类服务不能组合在一起,能够有效的提高服务效率。

本公开实施例中,为了避免同一个服务器上部署的服务数量过多,服务组合中的服务数量需要小于或者等于预设数量阈值。其中,确保服务组合中的服务数量需要小于或者等于预设数量阈值,是为了避免有的服务器上部署的服务过多,有的服务器上部署的服务过少,服务效率不均衡,从而导致整体服务效率差的问题。

在步骤S103中,根据一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色。

本公开实施例中,服务部署装置执行步骤S103的过程例如可以为,根据一个或多个服务组合以及每个服务组合对应的角色,为各个服务器分配候选角色;针对每个服务器,在服务器的候选角色为多个时,获取多个候选角色对应的服务组合中的服务,并生成服务集合;在服务集合中的服务满足服务组合原则时,将服务器的候选角色确定为服务器的角色;在服务集合中的服务不满足服务组合原则时,调整服务器的候选角色,直至服务集合中的服务满足所述服务组合原则。

本公开实施例中,调整服务器的候选角色的方式例如可以为,针对每个服务器,获取该服务器的服务集合中不满足服务组合原则的服务;将该服务所属的服务组合对应的角色,确定为冲突的角色;分配该冲突的角色给其他服务器。其中,单个角色对应的服务组合是满足服务组合原则的,但多个角色对应的服务组合生成的服务集合不一定满足服务组合原则。因此,针对一个服务器,在该服务器被分配了多个候选角色的情况下,服务部署装置需要根据多个候选角色对应的服务组合生成服务集合,判断该服务集合是否满足服务组合原则;若不满足服务组合原则,确定冲突的候选角色,把该冲突的候选角色分配给其他服务器,则该服务器不会被分配此冲突的候选角色。另外,若冲突的候选角色的数量过多,或者冲突的候选角色的占比过多,则表示角色分配不合理或者服务组合不合理,可以重新分配角色或者重新组合服务组合。

本公开实施例中,针对每个服务器,在服务器的候选角色为单个时,可以直接将服务器的候选角色,确定为服务器的角色。

在步骤104中,根据各个服务器的角色、以及服务器的角色对应的服务组合中各个服务的配置信息,生成各个服务器的部署配置。

本公开实施例中,若某个服务器的角色为单个,可以根据该单个角色对应的服务组合中各个服务的配置信息,生成该服务器的部署配置。例如,若该单个角色对应的服务组合中包括服务A和服务B,则根据服务A的配置信息和服务B的配置信息,生成该服务器的部署配置。例如,该服务器的部署配置中包括:服务A的配置信息和服务B的配置信息。

本公开实施例中,若某个服务器的角色为多个,可以根据该多个角色对应的服务组合中各个服务的配置信息,生成该服务器的部署配置。例如,若多个角色对应的服务组合分别为第一服务组合和第二服务组合;其中,第一服务组合中包括服务A和服务B,第二服务组合中包括服务C和服务D,则根据服务A的配置信息、服务B的配置信息、服务C的配置信息和服务D的配置信息,生成该服务器的部署配置。

本公开实施例中,为了确保各个服务器的部署配置的实时更新,在步骤S104之后,所述的方法还可以包括以下步骤:监听配置信息变更请求,配置信息变更请求包括目标服务以及目标服务的配置变更内容;在监听到配置信息变更请求时,根据目标服务的配置变更内容,更新目标服务的配置信息。

本公开实施例中,配置信息变更请求,可以为用户对服务的配置信息进行手动修改后由服务器主动上报给服务部署装置的。

在步骤S105中,根据各个服务器的部署配置,配置各个服务器。

如图2所示,为服务部署装置进行服务部署的示意图,在图2中,示出了服务部署装置、服务器、角色、服务以及配置信息的关系。其中,每个服务具有对应的配置信息;多个服务可以组合在一起,作为一个服务组合对应一个角色;每个角色可以部署在一个或者多个服务器上,每个服务器上可以部署一个或者多个角色。

本公开实施例中,在步骤105之后,所述的方法还可以包括以下步骤:判断集群是否满足重新部署条件,其中,重新部署条件包括以下条件中的至少一种:集群中的服务器存在变更、集群上部署的项目存在变更、集群上部署的项目中的服务存在变更;在集群满足重新部署条件时,获取待部署项目中各个服务的配置信息;组合待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;根据一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;根据各个服务器的角色、以及所述服务器的角色对应的服务组合中各个服务的配置信息,生成各个服务器的部署配置。

本公开实施例中,能够在集群中的服务器存在变更、集群上部署的项目存在变更、或者集群上部署的项目中的服务存在变更时,重新生成各个服务器的部署配置并进行部署,从而能够确保各个服务器的部署配置能够实时根据变更动作进行调整,提高服务器的管理效率。

本公开实施例的服务部署方法中,通过获取待部署项目中各个服务的配置信息;组合待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;根据一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;根据各个服务器的角色、以及服务器的角色对应的服务组合中各个服务的配置信息,生成各个服务器的部署配置;根据各个服务器的部署配置,配置各个服务器,其中,对服务的组合,使得组合之后得到的角色的数量远远小于服务的数量,能够减少服务部署时的工作量,且一次性部署,大数据集群上的实际部署配置与从配置中心上获取到的部署配置是一致的,容易管理,降低了集群管理成本,提高了集群管理效率。

图3是根据一示例性实施例二所示出的服务部署方法的流程图。如图3所示,在图1所示实施例的基础上,为了进一步提高服务部署效率,步骤S105具体可以包括以下步骤:

在步骤S1051中,确定各个服务器的部署时间点,并将部署时间点发送给对应的服务器。

本公开实施例中,在第一种实施场景下,为了实时确保集群中各个服务器的实际部署配置与从配置中心上获取到的部署配置之间的一致性,每个服务器的部署时间点可以为多个,且相邻两个部署时间点之间的时间差值小于预设差值阈值。

本公开实施例中,在第二种实施场景下,为了进一步提高服务部署效率,各个服务器的部署时间点可以错峰设置。例如,第一个服务器的部署时间点可以为0点0分、0点10分、0点20等;第二个服务器的部署时间点可以为0点0分10秒、0点10分10秒、0点20秒等,依次类推。

本公开实施例中,在第三种实施场景下,为了实时确保集群中各个服务器的实际部署配置与从配置中心上获取到的部署配置之间的一致性,以及提高服务部署效率,每个服务器的部署时间点可以为多个,且相邻两个部署时间点之间的时间差值小于预设差值阈值,且各个服务器的部署时间点可以错峰设置。

本公开实施例中,服务器在接收到服务部署装置发送的部署时间点后,在到达所述部署时间点时,向服务部署装置发送配置请求,以获取该服务器的部署配置。

在步骤S1052中,在接收到目标服务器根据对应的部署时间点所发送的配置请求时,获取目标服务器的部署配置。

本公开实施例中,配置请求中可以包括目标服务器的标识,服务部署装置可以根据目标服务器的标识查询本地的配置信息,从中获取目标服务器的部署配置。

在步骤S1053中,将目标服务器的部署配置返回给目标服务器,其中,部署配置用于配置目标服务器。

本公开实施例中,目标服务器获取到部署配置后,可以进行部署配置;或者,在到达预设的配置时间点时进行部署配置。

本公开实施例的服务部署方法中,通过获取待部署项目中各个服务的配置信息;组合待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;根据一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;根据各个服务器的角色、以及服务器的角色对应的服务组合中各个服务的配置信息,生成各个服务器的部署配置;确定各个服务器的部署时间点,并将部署时间点发送给对应的服务器;在接收到目标服务器根据对应的部署时间点所发送的配置请求时,获取目标服务器的部署配置;将目标服务器的部署配置返回给目标服务器,其中,部署配置用于配置目标服务器;其中,对服务的组合,使得组合之后得到的角色的数量远远小于服务的数量,能够减少服务部署时的工作量,且一次性部署,大数据集群上的实际部署配置与从配置中心上获取到的部署配置是一致的,容易管理,降低了集群管理成本,提高了集群管理效率。

为了实现上述实施例,本公开实施例提出了一种服务部署装置。

图4是根据一示例性实施例三所示出的服务部署装置的框图,参照图4,该服务部署装置400,可以包括:获取模块401、组合模块402、分配模块403、生成模块404和部署模块405。

其中,获取模块401,被配置为执行获取待部署项目中各个服务的配置信息;

组合模块402,被配置为执行组合所述待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;

分配模块403,被配置为执行根据所述一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;

生成模块404,被配置为执行根据所述各个服务器的角色、以及所述服务器的角色对应的服务组合中各个服务的配置信息,生成所述各个服务器的部署配置;

部署模块405,被配置为执行根据所述各个服务器的部署配置,配置所述各个服务器。

在本公开实施例的一种可能的实现形式中,所述组合模块402具体被配置为执行,按照服务组合原则对所述待部署项目中的各个服务进行组合,得到一个或多个服务组合以及每个服务组合对应的角色。

在本公开实施例的一种可能的实现形式中,所述分配模块403具体被配置为执行,根据所述一个或多个服务组合以及每个服务组合对应的角色,为所述各个服务器分配候选角色;针对每个服务器,在所述服务器的候选角色为多个时,获取多个候选角色对应的服务组合中的服务,并生成服务集合;在所述服务集合中的服务满足服务组合原则时,将所述服务器的候选角色,确定为所述服务器的角色;在所述服务集合中的服务不满足所述服务组合原则时,调整所述服务器的候选角色,直至所述服务集合中的服务满足所述服务组合原则。

在本公开实施例的一种可能的实现形式中,所述服务组合原则包括以下原则中的至少一种:预设的服务组合列表、相同项目中的不同服务不能组合在一起、基础层服务中控制类服务和被控制类服务可以组合在一起、非基础层服务中不同项目的控制类服务和被控制类服务可以组合在一起、非基础层服务中被控制类服务不能组合在一起、服务组合中的服务数量小于或者等于预设数量阈值。

在本公开实施例的一种可能的实现形式中,结合参考图5,在图4所示实施例的基础上,所述的服务部署装置还包括:监听模块406和更新模块407。

其中,所述监听模块406,被配置为执行监听配置信息变更请求,所述配置信息变更请求包括目标服务以及所述目标服务的配置变更内容;

所述更新模块407,被配置为执行在监听到配置信息变更请求时,根据所述目标服务的配置变更内容,更新所述目标服务的配置信息。

在本公开实施例的一种可能的实现形式中,所述部署模块405具体被配置为执行,确定所述各个服务器的部署时间点,并将所述部署时间点发送给对应的服务器;

在接收到目标服务器根据对应的部署时间点所发送的配置请求时,获取所述目标服务器的部署配置;

将所述目标服务器的部署配置返回给所述目标服务器,其中,所述部署配置用于配置所述目标服务器。

在本公开实施例的一种可能的实现形式中,每个服务器的部署时间点为多个,且相邻两个部署时间点之间的时间差值小于预设差值阈值;和/或,所述各个服务器的部署时间点错峰设置。

在本公开实施例的一种可能的实现形式中,所述的装置还包括:判断模块;所述判断模块被配置为执行,判断所述集群是否满足重新部署条件,其中,所述重新部署条件包括以下条件中的至少一种:所述集群中的服务器存在变更、所述集群上部署的项目存在变更、所述集群上部署的项目中的服务存在变更;

所述获取模块401还被配置为执行,在所述集群满足重新部署条件时,获取待部署项目中各个服务的配置信息;

所述组合模块402还被配置为执行,组合所述待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;

所述分配模块403还被配置为执行,根据所述一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;

所述生成模块404还被配置为执行,根据所述各个服务器的角色、以及所述服务器的角色对应的服务组合中各个服务的配置信息,生成所述各个服务器的部署配置。

本公开实施例的服务部署装置中,通过获取待部署项目中各个服务的配置信息;组合待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;根据一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;根据各个服务器的角色、以及服务器的角色对应的服务组合中各个服务的配置信息,生成各个服务器的部署配置;根据各个服务器的部署配置,配置各个服务器,其中,对服务的组合,使得组合之后得到的角色的数量远远小于服务的数量,能够减少服务部署时的工作量,且一次性部署,大数据集群上的实际部署配置与从配置中心上获取到的部署配置是一致的,容易管理,降低了集群管理成本,提高了集群管理效率。

为了实现上述实施例,本公开实施例还提出了一种电子设备。

其中,电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,处理器被配置为执行指令,以实现如前所述的服务部署方法。

作为一种示例,图6是根据一示例性实施例示出的一种用于服务部署的电子设备200的框图,如图6所示,上述电子设备200,还可以包括:

存储器210及处理器220,连接不同组件(包括存储器210和处理器220)的总线230,存储器210存储有计算机程序,当处理器220执行所述程序时实现本公开实施例所述的服务部署方法。

总线230表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

电子设备200典型地包括多种电子设备可读介质。这些介质可以是任何能够被电子设备200访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器210还可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)240和/或高速缓存存储器250。服务器200可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统260可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线230相连。存储器210可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。

具有一组(至少一个)程序模块270的程序/实用工具280,可以存储在例如存储器210中,这样的程序模块270包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块270通常执行本公开所描述的实施例中的功能和/或方法。

电子设备200也可以与一个或多个外部设备290(例如键盘、指向设备、显示器291等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口292进行。并且,电子设备200还可以通过网络适配器293与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器293通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理器220通过运行存储在存储器210中的程序,从而执行各种功能应用以及数据处理。

需要说明的是,本实施例的电子设备的实施过程和技术原理参见前述对本公开实施例的服务部署方法的解释说明,此处不再赘述。

本公开实施例提供的电子设备,通过获取待部署项目中各个服务的配置信息;组合待部署项目中的各个服务,得到一个或多个服务组合以及每个服务组合对应的角色;根据一个或多个服务组合以及每个服务组合对应的角色,为集群中的各个服务器分配角色;根据各个服务器的角色、以及服务器的角色对应的服务组合中各个服务的配置信息,生成各个服务器的部署配置;根据各个服务器的部署配置,配置各个服务器,其中,对服务的组合,使得组合之后得到的角色的数量远远小于服务的数量,能够减少服务部署时的工作量,且一次性部署,大数据集群上的实际部署配置与从配置中心上获取到的部署配置是一致的,容易管理,降低了集群管理成本,提高了集群管理效率。

为了实现上述实施例,本公开实施例还提出了一种存储介质。

其中,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如前所述的服务部署方法。

为了实现上述实施例,本公开还提供一种计算机程序产品,该计算机程序由服务器的处理器执行时,使得服务器能够执行如前所述的服务部署方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:智能合约部署方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!