服务部署方法及装置与流程

文档序号:17474428发布日期:2019-04-20 06:01阅读:226来源:国知局
服务部署方法及装置与流程

本发明涉及计算机技术领域,特别是涉及一种服务部署方法及装置。



背景技术:

在基于容器集群管理系统(kubernetes)和应用容器引擎(docker)的容器化技术对服务进行部署时,需要根据服务程序和服务程序的运行环境创建一个完全封闭的容器镜像;在后续使用该服务时即可通过加载该容器镜像来启动对应的服务程序。

但是由于服务技术以及服务需求的更新,服务程序需要频繁的进行更新,因为完全封闭的容器镜像无法进行修改,所以相应的就需要频繁地根据更新后的服务程序创建新的容器镜像,频繁的创建操作极大程度上降低了服务部署的效率。而且,创建了新的容器镜像后,已失效的旧的容器镜像不会被自动删除,每一次由于更新服务而创建的容器镜像都会存储在服务器中,导致大量无效数据占用了服务器的存储空间。并且若需要删除这些无效数据还需要人工进行操作,会使服务维护的效率降低。



技术实现要素:

有鉴于此,本发明提供的服务部署方法及装置,主要目的在于克服现有技术中服务部署和服务维护的效率低下的问题,或者至少部分地解决上述问题。

为了解决上述问题,本发明主要提供如下技术方案:

一方面,本发明提供了一种服务部署方法,该方法包括:

启动所述容器镜像,所述容器镜像是基于服务承载函数生成的镜像,所述服务承载函数包括用于定位服务程序的地址变量和用于启动所述服务程序的标识变量;

获取服务程序的存储地址和启动标识,所述启动标识是用于触发启动所述服务程序中的启动文件的文件标识;

将所述存储地址设置为所述服务承载函数中地址变量的值,将所述启动标识设置为所述服务承载函数中标识变量的值;

调用所述服务承载函数,从所述存储地址中获取对应的服务程序,根据所述启动标识启动所述服务程序的启动文件,以便启动所述服务程序,完成服务的部署。

另一方面,本发明还提供一种服务部署装置,该装置包括:

启动单元,用于启动所述容器镜像,所述容器镜像是基于服务承载函数生成的镜像,所述服务承载函数包括用于定位服务程序的地址变量和用于启动所述服务程序的标识变量;

获取单元,用于获取服务程序的存储地址和启动标识,所述启动标识是用于触发启动所述服务程序中的启动文件的文件标识;

设置单元,用于将所述存储地址设置为所述服务承载函数中地址变量的值,将所述启动标识设置为所述服务承载函数中标识变量的值;

调用单元,用于调用所述服务承载函数,从所述存储地址中获取对应的服务程序,根据所述启动标识启动所述服务程序的启动文件,以便启动所述服务程序,完成服务的部署。

可选的,所述装置还包括:

导入单元,用于若服务程序发生改变,将更新后的服务程序替换原有的服务程序导入所述存储地址。

可选的,所述获取单元包括:

执行模块,用于执行容器镜像的定义文件,所述定义文件是用于定义在启动容器镜像后立即启动服务承载函数的文件;

控制模块,用于控制所述服务承载函数获取所述存储地址和所述启动标识。

可选的,所述获取单元还用于接收输入的所述存储地址和启动标识;或通过接收复制控制器发送的数据获取所述存储地址和启动标识,所述复制控制器是基于所述容器镜像生成的,用于发送待部署服务的相关数据的控制器。

可选的,所述调用单元还用于在从所述存储地址中获取对应的服务程序之后,将获取的服务程序存储在指定的本地地址中,根据所述启动标识启动本地的服务程序的启动文件。

为了实现上述目的,根据本发明的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的服务部署方法。

为了实现上述目的,根据本发明的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的数服务部署方法。

借由上述技术方案,本发明提供的技术方案至少具有下列优点:

本发明提供的服务部署方法及装置,在服务程序进行更新后,与现有技术需要基于更新后的服务程序重新生成容器镜像才能部署服务相比,本发明的容器镜像是基于服务承载函数生成的,而服务承载函数是基于地址变量和标识变量生成的。在服务程序因更新而改变了存储地址和/或启动标识时,仅根据服务程序当前的存储地址和启动标识设置服务承载函数中地址变量和/或标识变量的值,就能使服务承载函数重新定向服务程序,并启动该服务程序,快速地完成服务的部署。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种服务部署方法的流程图;

图2示出了本发明实施例提供的另一种服务部署方法的流程图;

图3示出了本发明实施例提供的另一种服务部署方法的流程图;

图4示出了本发明实施例提供的一种数服务部署装置的结构框图;

图5示出了本发明实施例提供的另一种服务部署装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

参照附图1所示,本发明实施例提供了一种服务部署方法,该方法主要包括:

101、启动所述容器镜像。

所述容器镜像是基于服务承载函数生成的镜像,所述服务承载函数包括用于定位服务程序的地址变量和用于启动所述服务程序的标识变量。

容器镜像基于服务承载函数生成,而服务承载函数是基于地址变量和标识变量生成。因此无论服务程序的内容、存储地址和启动标识是否发生了改变,都不会对容器镜像产生影响,不会改变容器镜像的内容。若服务程序因为进行了更新而改变了存储地址和/或启动标识,仅需要更改服务承载函数中地址变量和/或标识变量的值,就能使服务承载函数重新定向获取更新后的服务程序,并启动该服务程序,以根据更新后的服务程序完成服务部署。

102、获取服务程序的存储地址和启动标识。

所述启动标识是用于触发启动所述服务程序中的启动文件的文件标识。

可以设置输入窗口,在启动所述容器镜像后,由用户输入需要部署的服务程序的存储地址和启动标识,使服务承载函数获取服务程序的存储地址和启动标识。也可以预先将需要部署的服务程序的存储地址和启动标识存储在复制控制器(replicationcontroller,rc)的定义文件中,在启动所述容器镜像后,启动复制控制器将存储的存储地址和启动标识发送给服务承载函数,使服务承载函数获取服务程序的存储地址和启动标识。

103、将所述存储地址设置为所述服务承载函数中地址变量的值,将所述启动标识设置为所述服务承载函数中标识变量的值。

服务承载函数是根据地址变量的值来定位需要获取的服务程序的。在获取了服务程序后,再根据标识变量的值启动获取的服务程序的启动文件,使启动文件开始执行,启动整个服务程序。

104、调用所述服务承载函数,从所述存储地址中获取对应的服务程序,根据所述启动标识启动所述服务程序的启动文件,以便启动所述服务程序,完成服务的部署。

在部署服务时,通过容器镜像调用服务承载函数,利用服务承载函数查询到需要启动的服务程序,并启动该服务程序,以完成服务部署。

本发明实施例提供的服务部署方法,在服务程序进行更新后,与现有技术需要基于更新后的服务程序重新生成容器镜像才能部署服务相比,本发明的容器镜像是基于服务承载函数生成的,而服务承载函数是基于地址变量和标识变量生成的。在服务程序因更新而改变了存储地址和/或启动标识时,仅根据服务程序当前的存储地址和启动标识设置服务承载函数中地址变量和/或标识变量的值,就能使服务承载函数重新定向服务程序,并启动该服务程序,快速地完成服务的部署。

服务程序的存储地址和所述启动标识可以通过用户输入来确定也可以通过收复制控制器中存储的数据来确定。下述两个实施例分别针对服务程序的存储地址和所述启动标识需要用户输入和服务程序的存储地址和所述启动标识需要通过收复制控制器自动发送两种情况进行具体说明。

基于图1所示的服务部署方法,本发明另一实施例进一步提供了另一种服务部署方法,参照附图2所示,该方法主要包括:

201、启动所述容器镜像。

步骤201的实现方式与上述实施例的步骤101相同,在此不再赘述。

202、执行容器镜像的定义文件。

所述定义文件是用于定义在启动容器镜像后立即启动服务承载函数的文件。

在部署服务时,首先会启动容器镜像,然后再启动容器镜像中的服务承载函数。因为启动容器镜像时会自动执行容器镜像的定义文件,所以为了减少操作步骤,可以在容器镜像的定义文件中指明启动容器镜像后立即启动服务承载函数,使得启动容器镜像时就会启动服务承载函数。

203、控制所述服务承载函数接收输入的所述存储地址和启动标识。

例如在启动容器镜像后,会弹出一关于需要部署的服务的输入框,以供用户输入需要启动的服务程序的存储地址和启动标识。服务承载函数接收输入的数据,并根据该数据设置对应的变量的值。

204、将所述存储地址设置为所述服务承载函数中地址变量的值,将所述启动标识设置为所述服务承载函数中标识变量的值。

步骤204的实现方式与上述实施例的步骤103相同,在此不再赘述。

205、调用所述服务承载函数,从所述存储地址中获取对应的服务程序,将所述服务程序存储在指定的本地地址中。

为了提高服务的部署效率,可以在获取服务程序后将该服务程序存储在本地的一个固定的文件夹中,在后续启动该服务程序时直接启动本地的服务程序,在本地完成服务程序的执行过程,提高服务程序的执行速度,以便提高服务的部署效率。

206、根据所述启动标识启动本地的服务程序的启动文件,以便启动所述服务程序,完成服务的部署。

基于图1所示的服务部署方法,本发明另一实施例进一步提供了另一种服务部署方法,参照附图3所示,该方法主要包括:

301、启动所述容器镜像。

302、执行容器镜像的定义文件。

步骤301-302的实现方式与上述实施例的步骤201-202相同,在此不再赘述。

303、控制所述服务承载函数通过接收复制控制器发送的数据获取所述存储地址和启动标识。

所述复制控制器是基于所述容器镜像生成的,用于发送待部署服务的相关数据的控制器。

为了能够实现自动获取服务程序的存储地址和启动标识,可以基于容器镜像生成一能够为容器镜像传递数据的复制控制器,并预先将待部署服务的相关数据存储在该复制控制器的定义文件中。在容器镜像启动后,服务承载函数能够从对应的复制控制器发送的定义文件中读取出待部署服务的相关数据,使得服务承载函数获取服务程序的存储地址和启动标识。复制控制器的定义文件中存储的数据不会自动改变,在每次启动容器镜像后不必等待人工输入,可以直接从对应的复制控制器自动获取服务程序的存储地址和启动标识。

304、将所述存储地址设置为所述服务承载函数中地址变量的值,将所述启动标识设置为所述服务承载函数中标识变量的值。

305、调用所述服务承载函数,从所述存储地址中获取对应的服务程序,将所述服务程序存储在指定的本地地址中。

306、根据所述启动标识启动本地的服务程序的启动文件,以便启动所述服务程序,完成服务的部署。

步骤304-306的实现方式与上述实施例的步骤204-206相同,在此不再赘述。

307、将更新后的服务程序替换原有的服务程序导入所述存储地址。

若服务程序发生改变,在调用所述服务承载函数之前为了使容器镜像能够通过更新后的服务程序部署服务,则需要在存储地址中删除原有的服务程序并导入更新后的服务程序。更新后的服务程序不会占用服务器的其他存储地址,使得后续进行服务维护时,无需针对无效数据进行删除操作,提高了服务维护的效率。

进一步的,作为对上述实施例方法的实现,本发明再一实施例还提供了一种服务部署装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。

参照附图4所示,所述服务部署装置包括:

启动单元41,用于启动所述容器镜像,所述容器镜像是基于服务承载函数生成的镜像,所述服务承载函数包括用于定位服务程序的地址变量和用于启动所述服务程序的标识变量;

获取单元42,用于获取服务程序的存储地址和启动标识,所述启动标识是用于触发启动所述服务程序中的启动文件的文件标识;

设置单元43,用于将所述存储地址设置为所述服务承载函数中地址变量的值,将所述启动标识设置为所述服务承载函数中标识变量的值;

调用单元44,用于调用所述服务承载函数,从所述存储地址中获取对应的服务程序,根据所述启动标识启动所述服务程序的启动文件,以便启动所述服务程序,完成服务的部署。

可选的,参照图5所示,所述装置还包括:

导入单元45,用于若服务程序发生改变,将更新后的服务程序替换原有的服务程序导入所述存储地址;

可选的,参照图5所示,所述获取单元42包括:

执行模块421,用于执行容器镜像的定义文件,所述定义文件是用于定义在启动容器镜像后立即启动服务承载函数的文件;

控制模块422,用于控制所述服务承载函数获取所述存储地址和所述启动标识。

可选的,所述获取单元42还用于接收输入的所述存储地址和启动标识;或通过接收复制控制器发送的数据获取所述存储地址和启动标识,所述复制控制器是基于所述容器镜像生成的,用于发送待部署服务的相关数据的控制器。

可选的,所述调用单元44还用于在从所述存储地址中获取对应的服务程序之后,根据所述启动标识启动所述服务程序的启动文件之前,将获取的服务程序存储在指定的本地地址中,根据所述启动标识启动本地的服务程序的启动文件。

本发明实施例提供的服务部署装置,在服务程序进行更新后,与现有技术需要基于更新后的服务程序重新生成容器镜像才能部署服务相比,本发明的容器镜像是基于服务承载函数生成的,而服务承载函数是基于地址变量和标识变量生成的。在服务程序因更新而改变了存储地址和/或启动标识时,仅根据服务程序当前的存储地址和启动标识设置服务承载函数中地址变量和/或标识变量的值,就能使服务承载函数重新定向服务程序,并启动该服务程序,快速地完成服务的部署。

除此之外,若服务程序发生改变,本发明实施例还可以将更新后的服务程序替换原有的服务程序导入所述存储地址,不占用服务器的其他存储地址,使得后续进行服务维护时,无需针对无效数据进行删除操作,提高了服务维护的效率。

所述数据存储的装置包括处理器和存储器,上述启动单元、获取单元、设置单元和调用单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中服务部署和服务维护的效率低下的问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述服务部署方法。

本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述服务部署方法。

本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:

启动所述容器镜像,所述容器镜像是基于服务承载函数生成的镜像,所述服务承载函数包括用于定位服务程序的地址变量和用于启动所述服务程序的标识变量;

获取服务程序的存储地址和启动标识,所述启动标识是用于触发启动所述服务程序中的启动文件的文件标识;

将所述存储地址设置为所述服务承载函数中地址变量的值,将所述启动标识设置为所述服务承载函数中标识变量的值;

调用所述服务承载函数,从所述存储地址中获取对应的服务程序,根据所述启动标识启动所述服务程序的启动文件,以便启动所述服务程序,完成服务的部署。

可选的,若服务程序发生改变,所述方法还包括:

将更新后的服务程序替换原有的服务程序导入所述存储地址。

可选的,获取服务程序的存储地址和启动标识包括:

执行容器镜像的定义文件,所述定义文件是用于定义在启动容器镜像后立即启动服务承载函数的文件;

控制所述服务承载函数获取所述存储地址和所述启动标识。

可选的,获取服务程序的存储地址和启动标识包括:

接收输入的所述存储地址和启动标识;或

通过接收复制控制器发送的数据获取所述存储地址和启动标识,所述复制控制器是基于所述容器镜像生成的,用于发送待部署服务的相关数据的控制器。

可选的,在从所述存储地址中获取对应的服务程序之后,所述方法还包括:

将所述服务程序存储在指定的本地地址中;

根据所述启动标识启动本地的服务程序的启动文件。

本文中的设备可以是服务器、pc、pad、手机等。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:

1、启动所述容器镜像,所述容器镜像是基于服务承载函数生成的镜像,所述服务承载函数包括用于定位服务程序的地址变量和用于启动所述服务程序的标识变量。

2、获取服务程序的存储地址和启动标识,所述启动标识是用于触发启动所述服务程序中的启动文件的文件标识。

3、将所述存储地址设置为所述服务承载函数中地址变量的值,将所述启动标识设置为所述服务承载函数中标识变量的值。

4、调用所述服务承载函数,从所述存储地址中获取对应的服务程序,根据所述启动标识启动所述服务程序的启动文件,以便启动所述服务程序,完成服务的部署。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。存储器是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1