服务器部署方法、系统、存储介质及计算机设备与流程

文档序号:14942901发布日期:2018-07-13 21:30阅读:179来源:国知局

本发明涉及互联网技术领域,特别是涉及一种服务器部署方法、系统、存储介质及计算机设备。



背景技术:

随着科技的进步和互联网技术的发展,互联网的软件产品,例如音乐软件、社交软件、照相软件等,为人们的生活、工作、学习带来了极大了便利,已经成为消费者生活中不可或缺的产品。

每一款互联网软件产品在进行开发时,都需要部署多台服务器,除了生产环境的服务器以外,还有测试服务器、客户端开发人员服务器、服务端每个开发人员验证功能bug的服务器等。

若不将这些服务器区分开来,将这些服务都放在一台主机上,很容易相互影响,经常会有人误操作,比如重启自己负责的进程时,因为名字与别人的进程名一样,有可能关闭了别人的进程。而如果将这些服务器部署在不同的机器上,又占用了太多的机器,非常浪费资源。



技术实现要素:

为此,本发明的一个实施例提出一种服务器部署方法,只需一台主机,满足不同功能服务器的部署需求。

根据本发明一实施例的服务器部署方法,所述服务器包含多个容器,每个所述容器分别包含一接收代理端,每个接收代理端分别具有对应的标识信息,所述方法包括:

接收发布代理端发送的编译文件,所述编译文件中携带目标标识信息;

根据所述目标标识信息查找对应的目标接收代理端,所述目标接收代理端的标识信息与所述目标标识信息一致;

将所述编译文件发送至所述目标接收代理端,以使所述编译文件在所述目标接收代理端对应的目标容器中覆盖安装。

根据本发明实施例的服务器部署方法,采用基于容器的部署原理,只在一台服务器中,即在一台主机中执行多种功能服务器的开发、测试、维护等功能,避免了资源浪费,该服务器包含多个容器,每个容器可以对应其中一种功能服务器,而每个容器分别包含一接收代理端,该服务器首先接收发布代理端发送的编译文件,编译文件可以是开发、测试、维护的相关程序,然后根据编译文件中的目标标识信息查找对应的目标接收代理端,并将编译文件发送至目标接收代理端,最后将编译文件在目标接收代理端对应的目标容器中覆盖安装,完成部署过程,因此本发明提供的方法只需一台主机就能满足部署不同开发、测试、维护等功能服务器的需求。

另外,根据本发明上述实施例的服务器部署方法,还可以具有如下附加的技术特征:

进一步地,在本发明的一个实施例中,所述服务器还包含一管理后台,所述方法还包括:

调用所述管理后台对所述编译文件进行接收;

根据所述编译文件制作下载链接;

根据所述目标标识信息查找对应的所述目标接收代理端;

通过所述管理后台将所述下载链接发送至所述目标接收代理端,以使所述所述目标接收代理端对应的所述目标容器根据所述下载连接对所述编译文件进行下载,并将下载得到的所述编译文件在所述目标容器中对相应的程序进行覆盖安装。

进一步地,在本发明的一个实施例中,所述方法还包括:

调用所述管理后台对所述编译文件进行接收,所述编译文件为一打包文件;

根据所述编译文件制作下载链接;

根据所述目标标识信息查找对应的所述目标接收代理端;

通过所述管理后台将所述下载链接发送至所述目标接收代理端,以使所述目标容器根据所述下载连接对所述编译文件进行下载,并将下载得到的所述编译文件进行解压后再在所述目标容器中对相应的程序进行覆盖安装。

进一步地,在本发明的一个实施例中,每个所述容器分别包含一docker镜像,每个所述docker镜像包含对应的所述接收代理端,所述接收发布代理端发送的编译文件的步骤之前,所述方法还包括:

通过docker管理平台在每个所述docker镜像的基础上创建对应的所述容器;

为每个所述容器分别配置一端口映射,所述端口映射与所述标识信息一一对应。

进一步地,在本发明的一个实施例中,所述docker管理平台为shipyard平台。

进一步地,在本发明的一个实施例中,所述发布代理端配置在具有jenkins节点的主机中,所述编译文件为jenkins项目。

本发明的另一个实施例提出一种服务器部署系统,只需一台主机,满足不同功能服务器的部署需求。

根据本发明实施例的服务器部署系统,所述服务器包含多个容器,每个所述容器分别包含一接收代理端,每个接收代理端分别具有对应的标识信息,所述系统包括:

接收模块,用于接收发布代理端发送的编译文件,所述编译文件中携带目标标识信息;

查找模块,用于根据所述目标标识信息查找对应的目标接收代理端,所述目标接收代理端的标识信息与所述目标标识信息一致;

发送模块,用于将所述编译文件发送至所述目标接收代理端,以使所述编译文件在所述目标接收代理端对应的目标容器中覆盖安装。

另外,根据本发明上述实施例的服务器部署系统,还可以具有如下附加的技术特征:

进一步地,在本发明的一个实施例中,所述服务器还包含一管理后台;

所述接收模块具体用于调用所述管理后台对所述编译文件进行接收;

所述系统还包括制作模块,用于根据所述编译文件制作下载链接;

所述发送模块具体用于通过所述管理后台将所述下载链接发送至所述目标接收代理端,以使所述所述目标接收代理端对应的所述目标容器根据所述下载连接对所述编译文件进行下载,并将下载得到的所述编译文件在所述目标容器中对相应的程序进行覆盖安装。

本发明的另一个实施例还提出一种存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现上述方法的步骤。

本发明的另一个实施例还提出一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的方法。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实施例了解到。

附图说明

本发明实施例的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是根据本发明第一实施例的服务器部署方法的流程图;

图2是根据本发明第二实施例的服务器部署方法的流程图;

图3是根据本发明另一实施例的服务器部署系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,本发明第一实施例提出的服务器部署方法,所述服务器包含多个容器,每个所述容器分别包含一接收代理端,每个接收代理端分别具有对应的标识信息,所述方法包括:

s101,接收发布代理端发送的编译文件,所述编译文件中携带目标标识信息;

其中,本实施例提供的方法应用在一台作为服务器的主机中,该主机中具有多个容器。容器可以采用以下方式获得,首先开发出发布代理端(发布agent)和接收代理端(接收agent),发布agent主要用于将程序发布给服务端,而接收agent主要用于从服务端接收程序/编译文件。然后根据接收agent制作docker镜像,其中,docker是一个开源的应用容器引擎,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。制作的docker镜像包含基本的运行环境和接收agent,并配置接收agent开机启动。然后将该docker镜像导入上述主机中。最后使用docker管理平台shipyard在上一步创建的镜像基础上创建容器,其中,shipyard是建立在docker集群管理工具citadel之上的可以管理容器、主机等资源的web图形化工具。采用上述过程就能获得多个容器,而每个容器均包含一docker镜像,每个docker镜像包含对应的接收agent,这里的容器就与背景介绍部分提到的部署测试服务器、客户端联调用的开发服务器、服务端开发维护用的开发服务器等不同的功能服务器相对应,由于一个主机中多个对应不同功能服务器的容器,因此需要对容器配置好端口映射,以避免不同容器的端口映射发生冲突。为了给不同的容器配置对应的端口映射,需要进入每个容器中,给接收agent配置标识信息,该标识信息与不同的功能服务器相对应,例如,对于送测服务器,接收agent的标识信息是testing,具体实施时可以通过设置启动参数中调加testing,然后重启该接收agent。然后根据接收agent的标识信息为不同的容器配置对应的端口映射,即所述端口映射与所述标识信息一一对应,从而避免了不同容器的端口映射发生冲突。

需要指出的是,发布agent发送的编译文件具体可以采用以下方式实现,首先获得上述已经开发好的发布agent,然后在jenkins节点所在的主机上部署发布agent,并配置环境变量,方便jenkins项目调用,其中,jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。然后给每个jenkins项目配置编译后执行命令。在背景介绍部分提到了要部署测试服务器、客户端联调用的开发服务器、服务端开发维护用的开发服务器等不同的功能服务器。在jenkins上就要为这些功能服务器各配置一个项目,因此,所述编译文件即为jenkins项目,且该编译文件中携带目标标识信息。具体实施时,可以在jenkins项目的编译完成命令中添加一行命令,主要是执行发布agent,并传入参数,例如传入的参数testing,即目标标识信息为testing,表明与送测服务器对应。

s102,根据所述目标标识信息查找对应的目标接收代理端,所述目标接收代理端的标识信息与所述目标标识信息一致;

其中,需要根据编译文件中携带目标标识信息testing查找与其对应的目标接收代理端,本实施例中,目标接收代理端即标识信息也为testing的接收agent。

s103,将所述编译文件发送至所述目标接收代理端,以使所述编译文件在所述目标接收代理端对应的目标容器中覆盖安装。

目标接收代理端接受到该编译文件后,目标接收代理端对应的目标容器会关闭正在运行中的程序,该程序与编译文件相对应,例如是用于送测的程序,然后使用编译文件去对原程序进行替换,然后再运行刚替换的程序。最后,当目标容器中的程序启动后,就完成了快速达成部署过程,针对不同的容器,实现过程相同,因此能够达成一台主机部署不同开发、测试服务器,并且互不干扰的技术效果。

根据本发明实施例的服务器部署方法,采用基于容器的部署原理,只在一台服务器中,即在一台主机中执行多种功能服务器的开发、测试、维护等功能,避免了资源浪费,该服务器包含多个容器,每个容器可以对应其中一种功能服务器,而每个容器分别包含一接收代理端,该服务器首先接收发布代理端发送的编译文件,编译文件可以是开发、测试、维护的相关程序,然后根据编译文件中的目标标识信息查找对应的目标接收代理端,并将编译文件发送至目标接收代理端,最后将编译文件在目标接收代理端对应的目标容器中覆盖安装,完成部署过程,因此本发明提供的方法只需一台主机就能满足部署不同开发、测试、维护等功能服务器的需求。

请参阅图2,本发明第二实施例提出的服务器部署方法,所述服务器包含一管理后台和多个容器,每个所述容器分别包含一接收代理端,每个接收代理端分别具有对应的标识信息,所述方法包括:

s201,调用所述管理后台对所述编译文件进行接收,所述编译文件中携带目标标识信息;

本实施例中,服务器还包含一管理后台,该管理后台例如是一种web管理后台,主要用于接收发布agent的文件,并提供下载链接给接收agent。具体在本实施例中,编译文件为一打包文件,即在jenkins节点所在的主机中,当每次jenkins项目编译完成时,发布agent就会讲编译生成的编译文件打包,并发送给web管理后台。

s202,根据所述编译文件制作下载链接;

其中,下载链接指向该编译文件。

s203,根据所述目标标识信息查找对应的所述目标接收代理端,所述目标接收代理端的标识信息与所述目标标识信息一致;

s204,通过所述管理后台将所述下载链接发送至所述目标接收代理端,以使所述所述目标接收代理端对应的所述目标容器根据所述下载连接对所述编译文件进行下载,并将下载得到的所述编译文件在所述目标容器中对相应的程序进行覆盖安装。

其中,在找到与目标标识信息对应的目标接收代理端后,web管理后台会将文件下载链接发送给目标接收代理端。目标接收代理端接收到下载链接后,关闭运行中的程序,并解压刚下载的压缩包,用于替换原先的程序,然后再运行刚替换的程序,完成部署过程。

本实施例提供的服务器部署方法借助于管理后台,能够减轻服务器的处理压力,提升部署效率,需要说明是,本实施例重点说明的是与上一实施例的不同之处,各个实施例之间相同相似的部分未重复描述,可以相互参见。

请参阅图3,基于同一发明构思,本发明另一实施例提出的一种服务器部署系统,所述服务器包含多个容器,每个所述容器分别包含一接收代理端,每个接收代理端分别具有对应的标识信息,所述系统包括:

接收模块10,用于接收发布代理端发送的编译文件,所述编译文件中携带目标标识信息;

查找模块20,用于根据所述目标标识信息查找对应的目标接收代理端,所述目标接收代理端的标识信息与所述目标标识信息一致;

发送模块30,用于将所述编译文件发送至所述目标接收代理端,以使所述编译文件在所述目标接收代理端对应的目标容器中覆盖安装。

本实施例中,所述服务器还包含一管理后台;

所述接收模块10具体用于调用所述管理后台对所述编译文件进行接收;

所述系统还包括制作模块40,用于根据所述编译文件制作下载链接;

所述发送模块30具体用于通过所述管理后台将所述下载链接发送至所述目标接收代理端,以使所述所述目标接收代理端对应的所述目标容器根据所述下载连接对所述编译文件进行下载,并将下载得到的所述编译文件在所述目标容器中对相应的程序进行覆盖安装。

本实施例中,所述接收模块10还用于调用所述管理后台对所述编译文件进行接收,所述编译文件为一打包文件;

所述发送模块30还用于通过所述管理后台将所述下载链接发送至所述目标接收代理端,以使所述目标容器根据所述下载连接对所述编译文件进行下载,并将下载得到的所述编译文件进行解压后再在所述目标容器中对相应的程序进行覆盖安装。

本实施例中,每个所述容器分别包含一docker镜像,每个所述docker镜像包含对应的所述接收代理端,所述系统还包括:

创建模块50,用于通过docker管理平台在每个所述docker镜像的基础上创建对应的所述容器;

配置模块60,用于为每个所述容器分别配置一端口映射,所述端口映射与所述标识信息一一对应。

本实施例中,所述docker管理平台为shipyard平台。

本实施例中,所述发布代理端配置在具有jenkins节点的主机中,所述编译文件为jenkins项目。

本发明实施例提出的服务器部署系统的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。

此外,本发明的实施例还提出一种存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现上述方法的步骤。

此外,本发明的实施例还提出一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的方法。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

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