用于部署应用的方法及装置、服务器、系统与流程

文档序号:20615931发布日期:2020-05-06 20:09阅读:115来源:国知局
用于部署应用的方法及装置、服务器、系统与流程

本申请涉及计算机技术领域,例如涉及一种用于部署应用的方法及装置、服务器、系统。



背景技术:

目前,部署应用的方法主要通过纯手工或者使用脚本,又或者通过版本工具将应用的运行程序进行打包上传到服务器上,通过人工配置指定服务器端口以启动应用。

在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:

脚本和配置端口复杂且不直观,在指定服务器端口的过程中容易产生端口冲突。



技术实现要素:

为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。

本公开实施例提供了一种用于部署应用的方法及装置、服务器、系统,以解决在配置指定服务器端口的过程中容易产生端口冲突的技术问题。

在一些实施例中,用于部署应用的方法包括:

确定需要部署的应用副本的数量;

确定在数量上与应用副本的数量对应的服务器可用端口;

创建在数量上与服务器可用端口的数量对应的容器;

根据应用副本和服务器可用端口,实例化容器。

在一些实施例中,用于部署应用的装置包括:

应用管理模块,被配置为确定需要部署的应用副本的数量;

端口管理模块,被配置为确定在数量上与应用副本的数量对应的服务器可用端口;

容器创建模块,被配置为创建在数量上与服务器可用端口的数量对应的容器;

容器实例化模块,被配置为根据应用副本和服务器可用端口,实例化容器。

在一些实施例中,服务器包括前述用于部署应用的装置。

在一些实施例中,用于部署应用的系统包括如前所述的服务器,还包括:

应用版本库,被配置为存储和管理应用的程序;

打包工具,被配置为提取应用版本库中的应用的程序,对应用的程序进行编译打包,并将打包结果上传至用于部署应用的装置中。

本公开实施例提供的用于部署应用的方法及装置、服务器、系统可以实现以下技术效果:

当确定数量上与应用副本的数量对应的服务器可用端口时,创建对应数量的容器,再对容器进行实例化,从而实现每个应用副本均部署于服务器可用端口中,有利于避免服务器端口冲突现象。

以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。

附图说明

一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:

图1为本公开实施例提供的用于部署应用的方法流程图;

图2为本公开实施例提供的应用部署装置的结构示意图;

图3为本公开实施例提供的用于部署应用的系统结构图;

图4为本公开实施例提供的电子设备的结构示意图。

附图标记:

21:应用副本数量确定模块;22:服务器可用端口确定模块;23:容器创建模块;24:容器实例化模块;31:用于部署应用的装置;32:打包工具;33:应用版本库;34:应用服务器;70:处理器;71:存储器;72:通信接口;73:总线。

具体实施方式

为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。

本公开实施例提供了一种用于部署应用的方法,如图1所示,该方法包括:

步骤s1:确定需要部署的应用副本的数量;

步骤s2:确定在数量上与应用副本的数量对应的服务器可用端口;

步骤s3:创建在数量上与服务器可用端口的数量对应的容器;

步骤s4:根据应用副本和服务器可用端口,实例化容器。

当确定数量上与应用副本的数量对应的服务器可用端口时,创建对应数量的容器,再对容器进行实例化,从而实现每个应用副本均部署于服务器可用端口中,有利于避免服务器端口冲突现象。

在一些实施例中,服务器为应用服务器。

在一些实施例中,确定在数量上与应用副本的数量对应的服务器可用端口,包括:

获得服务器端口的使用情况;

根据服务器端口的使用情况,获得服务器可用端口;

按照预设规则,分配在数量上与应用副本的数量对应的服务器可用端口。

通过自动监控服务器各个端口的使用情况,按照预设规则,自动分配服务器可用端口,无需人工配置,避免人工配置过程中容易产生的端口冲突、部署失败现象,提高应用部署效率及部署成功率。

在一些实施例中,根据应用副本和服务器可用端口,实例化容器,包括:

触发对应用副本的程序进行编译打包,并将得到的打包结果同步至对应的容器中。

当确定在数量上与应用副本的数量对应的服务器可用端口、并创建对应数量的容器时,触发自动化打包工具自动打包、上传应用副本的程序,实现容器实例化的自动化,提高应用部署效率。

在一些实施例中,根据应用副本和服务器可用端口,实例化容器,还包括:同步服务器可用端口信息至对应的容器中,从而为容器配置服务器可用端口,将容器与服务器可用端口一一对应起来。

在一些实施例中,还可以将应用副本对应的配置信息同步至对应的容器中。

在一些实施例中,用于部署应用的方法还包括:使用容器模板实例化容器。

在一些实施例中,用于部署应用的方法还包括:

获取实例化的容器中应用副本的运行状态;

在应用副本的运行状态为异常的情况下,删除异常的应用副本对应的容器,并重新部署异常的应用副本。

通过获取实例化的容器中应用副本的运行状态,实时监控运行正常的应用副本数,当发现存在异常状态的应用副本时,删除该异常的应用副本对应的容器,并重新部署该异常的应用副本,从而实现应用副本数量的自动恢复,改善了人工配置过程中,应用副本的运行状态需要人工查询才能得以确定,容易造成应用副本数量发生变化的情况,提高了应用副本数的稳定性。

在一些实施例中,获取实例化的容器中应用副本的运行状态,包括:

通过应用状态更新调度任务获取实例化的容器中应用副本的运行状态。

如图2所示,本公开实施例还提供了一种用于部署应用的装置,包括:

应用副本数量确定模块,被配置为确定需要部署的应用副本的数量;

服务器可用端口确定模块,被配置为确定在数量上与应用副本的数量对应的服务器可用端口;

容器创建模块,被配置为创建在数量上与服务器可用端口的数量对应的容器;

容器实例化模块,被配置为根据应用副本和服务器可用端口,实例化容器。

当确定数量上与应用副本的数量对应的服务器可用端口时,创建对应数量的容器,再对容器进行实例化,从而实现每个应用副本均部署于服务器可用端口中,有利于避免服务器端口冲突现象。

在一些实施例中,应用副本数量确定模块包括:

端口使用情况获得单元,被配置为获得服务器端口的使用情况;

服务器可用端口获得单元,被配置为根据服务器端口的使用情况,获得服务器可用端口;

分配单元,被配置为按照预设规则,分配在数量上与应用副本的数量对应的服务器可用端口。

通过自动监控服务器各个端口的使用情况,按照预设规则,自动分配服务器可用端口,无需人工配置,避免人工配置过程中容易产生的端口冲突、部署失败现象,提高应用部署效率及部署成功率。

在一些实施例中,容器实例化模块包括:

触发模块,被配置为触发对应用副本的程序进行编译打包,并将得到的打包结果同步至对应的容器中。

当确定在数量上与应用副本的数量对应的服务器可用端口、并创建对应数量的容器时,触发自动化打包工具自动打包、上传应用副本的程序,实现容器实例化的自动化,提高应用部署效率。

在一些实施例中,容器实例化模块还包括:

端口信息同步模块,被配置为同步所述服务器可用端口信息至对应的所述容器中,从而为容器配置服务器可用端口,将容器与服务器可用端口一一对应起来。

在一些实施例中,用于部署应用的装置还包括:配置信息同步模块,被配置为将应用副本对应的配置信息同步至对应的容器中。

在一些实施例中,用于部署应用的装置还包括:容器模板模块,被配置为使用容器模板实例化容器。

在一些实施例中,用于部署应用的装置还包括:

应用副本状态获取模块,被配置为获取实例化的容器中应用副本的运行状态;

重新部署模块,被配置为在应用副本的运行状态为异常的情况下,删除异常的应用副本对应的容器,并重新部署异常的应用副本。

通过获取实例化的容器中应用副本的运行状态,实时监控运行正常的应用副本数,当发现存在异常状态的应用副本时,删除该异常的应用副本对应的容器,并重新部署该异常的应用副本,从而实现应用副本数量的自动恢复,改善了人工配置过程中,应用副本的运行状态需要人工查询才能得以确定,容易造成应用副本数量发生变化的情况,提高了应用副本数的稳定性。

在一些实施例中,在获取实例化的容器中应用副本的运行状态时,应用副本获取模块被配置为通过应用状态更新调度任务获取实例化的容器中应用副本的运行状态。

本公开实施例还提供了一种服务器,包括如前所述的用于部署应用的装置。当确定数量上与应用副本的数量对应的服务器可用端口时,创建对应数量的容器,再对容器进行实例化,从而实现每个应用副本均部署于服务器可用端口中,有利于避免服务器端口冲突现象。

本公开实施例还提供了一种用于部署应用的系统,如图3所示,包括:内置有本公开实施例提供的用于部署应用的装置31的服务器34,还包括:

应用版本库33,被配置为存储和管理应用的程序;

打包工具32,被配置为提取应用版本库33中的应用的程序,对应用的程序进行编译打包,并将打包结果上传至用于部署应用的装置31中。

在部署应用时,用户开发应用,并将开发的应用提交至应用版本库33中。用于部署应用的装置31在确定需要部署的应用副本数量后,从应用服务器34中确定对应数量的服务器可用端口,并创建对应数量的容器,然后触发打包工具32提取应用版本库33中的应用对应的程序进行编译打包,完成编译打包后的应用对应的程序包同步到用于部署应用的装置31中,用于部署应用的装置31根据确定的服务器可用端口和应用对应的程序包进行容器的实例化,并将实例化后的容器部署于应用服务器34中。这样,有利于避免服务器端口冲突现象,且实现了容器实例化的自动化,提高应用部署效率。

本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于部署应用的方法。

本公开实施例提供的一种计算机可读存储介质,具有以下有益效果:能够简化应用程序部署的复杂且繁琐的过程,缩短应用程序部署的时间,且能够有效地避免因配置端口冲突而导致的应用程序部署失败出现的现象。

本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于部署应用的方法。

上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。

本公开实施例提供的一种计算机程序产品,具有以下有益效果:能够简化应用程序部署的复杂且繁琐的过程,缩短应用程序部署的时间,且能够有效地避免因配置端口冲突而导致的应用程序部署失败出现的现象。

本公开实施例提供了一种电子设备,其结构如图4所示,该电子设备包括:

至少一个处理器(processor)70,图4中以一个处理器70为例;和存储器(memory)71,还可以包括通信接口(communicationinterface)72和总线73。其中,处理器70、通信接口72、存储器71可以通过总线73完成相互间的通信。通信接口72可以用于信息传输。处理器70可以调用存储器71中的逻辑指令,以执行上述实施例的用于部署应用的方法。

此外,上述的存储器71中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的用于部署应用的方法。

存储器71可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器。

本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。

以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。本公开实施例的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。

本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

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