一种软件部署方法、服务器和系统与流程

文档序号:15819306发布日期:2018-11-02 22:57阅读:408来源:国知局
一种软件部署方法、服务器和系统与流程

本发明涉及计算机技术领域,具体涉及一种软件部署方法、服务器和系统。

背景技术

在传统软件的开发过程中,软件部署只是软件交付的最后一环,往往得不到重视。而且,传统软件部署过程中,一方面,由于人工的过度参与使得部署流程标准化很难实施,另一方面,手工部署部署效率低,还容易出错。

随着互联网的飞速发展,软件更新迭代速度急剧提升,产品的升级发布成为越发频繁。因此,亟需一种加快部署速度、降低部署成本的部署方案来满足用户需求。



技术实现要素:

本发明提供了一种软件部署方法、服务器和系统,以解决现有技术中软件部署效率低,准确度和灵活性差的问题。

根据本发明的一个方面,提供了一种软件部署方法,应用于云平台上运行的服务器,该方法包括:

接收客户端发送的包含部署配置信息的部署方案;

根据接收的所述部署方案,确定出云平台上的部署节点并获取部署所需的软件文件;

执行所述部署方案,将所述软件文件安装到所述部署节点上。

根据本发明的另一个方面,提供了一种软件部署服务器,运行在云平台上,该服务器包括:

通信模块,适于接收客户端发送的包含部署配置信息的部署方案;

部署准备模块,适于根据接收的所述部署方案,确定出云平台上的部署节点并获取部署所需的软件文件;

部署执行模块,适于执行所述部署方案,将所述软件文件安装到所述部署节点上。

根据本发明的又一个方面,提供了一种软件部署系统,包括客户端以及如本发明另一个方面的软件部署服务器。

本发明实施例的有益效果是:本发明的软件部署方案接收客户端发送的包含部署配置信息的部署方案,根据接收的部署方案,确定出云平台上的部署节点并获取部署所需的软件文件,执行部署方案,将软件文件安装到部署节点上。如此,通过运行在云平台上的部署服务器自动执行部署,大大提高了软件部署的效率,也避免了人工部署导致的不够灵活,速度慢的问题,满足了用户的应用需求。

附图说明

图1是本发明一个实施例的一种软件部署方法的流程示意图;

图2是本发明一个实施例的一种软件部署服务器的结构框图;

图3是本发明一个实施例的一种软件部署系统的结构框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

本发明的设计构思在于:针对现有软件部署存在的部署效率低下、容易出错等问题,本发明实施例提出一种基于云平台的软件部署自动化实现。通过利用运行在云平台上部署服务器接收客户端发送的部署配置方案,根据该部署配置方案确定待部署的云平台上的节点以及部署文件,然后将部署文件安装到确定出的部署节点上,从而减少了人工参与部署,提高了软件部署效率,也有利于软件部署的标准化实施。

实施例一

图1是本发明一个实施例的一种软件部署方法的流程示意图,参见图1,本实施例的软件部署方法包括如下步骤:

步骤s101,接收客户端发送的包含部署配置信息的部署方案;

一般的,这里的部署配置信息可以包括用户编写的脚本文件。

步骤s102,根据接收的所述部署方案,确定出云平台上的部署节点并获取部署所需的软件文件;

这里获取部署所需的软件文件是由服务器去获取。具体的获取方式可以是服务器从云平台上的虚拟机所在的节点或其他节点上获取,或者,服务器从客户端获取,对此不作限制。

步骤s103,执行所述部署方案,将所述软件文件安装到所述部署节点上。

由图1所示可知,本实施例的方法,接收客户端发送的部署方案,然后根据该部署方案确定云平台上的部署节点,并获取部署所需文件,执行部署方案完成部署,对于用户而言,只需要将填写部署配置信息,并通过客户端发送给云平台上的服务器即可,由服务器自动完成软件部署,实现了软件部署的自动化,大大节省了人工成本,提高了部署效率。

实施例二

以下对本实施例的软件部署的方法的实现步骤进行更详细的说明。

优选地,本实施例软件部署方法基于云平台实现,即,本实施例先在云平台上运行本发明实施例的服务器。

举例而言,用户想要将一个tomcat服务器部署到云平台上。

首先,服务端启动后,通过固定的端口监听客户端请求;

然后,客户端接收用户输入的配置部署信息;

优选地,本实施例中客户端发送配置模板获取请求到服务器,服务器返回配置模板至请求的客户端,而后,客户端将配置模板显示输出给用户,接收用户在配置模板中填写的部署配置信息。

这里需要说明的是,服务器在完成一次软件部署后,可以保存配置方案作为模板以便后续发送给客户端供用户填写,从而用户不必填写重复的内容,节省用户时间,提高部署效率。

也就是说,本实施例的软件部署方案可以提供模板,方便用户在配置模板上选择或填写完成配置信息,优化了用户体验。

根据实际配置需求,用户在配置模板中输入的信息可以包括集群域名、虚拟机(即,云平台上的部署节点)用户名及口令、一个或多个部署组件对应的虚拟机节点ip组等信息。这里需要说明的是,虚拟用户名及口令信息是指登录虚拟机的用户名和口令。由于云平台上的虚拟机资源有限,并且不是随意访问和使用的,所以在部署之前服务器需要知道待部署的虚拟机的用户名和口令这样才能在部署时,将软件部署安装到该虚拟机上。

客户端在确定用户填写完配置模板后,生成包括配置信息的配置方案并发送到云平台上的服务器。

接着,服务器执行部署方案;

这里需要说明的是,出于安全考虑,服务器在接收到客户端发送的部署开始指令后,才开始执行部署方案。

具体的部署执行过程如下:

步骤(1)首先安装或替换虚拟机的操作系统。

可以理解,部署需要先安装软件运行环境,所以这一步骤中部署服务器先把linux操作系统(也可以是其它操作系统,这里仅以linux操作系统举例)从网络中下载到虚拟机本地,并安装到虚拟机上。而后,从内网部署的源服务器下载所需的软件安装包进行安装。

通过从内网部署的源服务器中下载部署所需的软件安装包使得本实施例的软件部署系统支持离线部署,实现了在一些不能访问公共网络的内网环境中,也可轻松地部署和升级云平台的有益效果。

需要强调的是,本实施例中,在服务器执行部署的同时,客户端可与服务端通过建立websocket连接,实时获取部署进度,查看部署日志。具体的,服务器接收客户端发送的websocket连接建立请求,返回websocket响应至客户端;接收客户端在websocket连接建立后实时发送的部署进度获取请求,返回相应的部署日志至客户端。

步骤(2)检查存储器大小

根据获取的部署文件的大小,检查根据配置方案确定出的每个部署节点的存储器大小,判断存储器的大小是否大于或等于部署文件的大小,满足条件继续安装。这里的存储器,例如,虚拟机所在的物理机器的硬盘。

步骤(3)添加标准用户

根据配置方案中用户项的值,判定是否新建一个标准用户。当用户项的值指示新建标准用户时,为部署的软件(如前述tomcat服务器)新建标准用户。需要说明的是,实际应用中每个软件可能需要划分不同权限的用户以对用户进行管理,所以本实施例的软件部署方案根据用户的需求,当用户需要为部署的软件新建标准用户时,在客户端的配置模板中选择或填写即可。

优选地,出于系统的安全性、稳定性考虑,服务器通常新建一个标准用户安装部署集群,而非使用root用户。

步骤(4)文件传输

根据部署的文件进行拓扑排序,保证不同时对同一个安装介质(例如虚拟机或容器)安装。具体的,服务器判断部署节点上是否正在执行与当前部署操作相冲突的操作,是则,暂停与当前部署操作相冲突的操作后将软件文件安装到部署节点上。例如,部署节点正在执行其他安装操作,则服务器暂停当前部署节点的其他操作,待部署完成后再恢复,如此能够保证部署的顺利执行,降低部署失败的概率。

需要说明的是,本实施例的服务器在部署过程中,对于一些复杂的,容易出错的组件可以使用docker进行安装。

docker是一个开源的应用容器引擎,docker使用客户端-服务器(c/s)架构模式,使用远程api来管理和创建docker容器,docker容器通过docker镜像来创建。如前述,待部署的tomcat服务器包括多个组件,对于这些组件,部署服务器将这些组件添加到docker容器中,然后把docker容器部署到实际环境中。

另外,在执行部署过程中,如果由于故障等异常原因导致客户端和服务器之间文件传输失败,则在客户端和服务器的通信恢复后,服务器可以判断故障前文件已传输的部分,然后通知客户端从已接受的文件的下一部分开始发送即可,从而避免了传输冗余文件,节省了网络带宽。

步骤(5)错误处理

在部署安装过程中不可避免的会出现一些错误,对此,本实施例的服务器会收集部署过程中的日志,收集部署过程中的部署日志,根据部署日志的分析结果将检测出的配置信息错误发送至客户端,使得客户端输出给用户供用户进行修改;根据部署日志将由于安装错误或者由于文件传输遗漏错误导致的部署失败的组件进行重新安装。即,对服务器检测出的配置错误等反馈给用户进行修改;对出错的组件安装,文件传输遗漏等错误进行重新安装等。

至此,本实施例的服务器完成了将软件安装在云平台的部署节点上的工作。

在部署完成后,本实施例的软件部署服务器还可以提供一些辅助的功能,例如:

集群更新功能。如果用户需要扩大或缩小集群规模,可首先在客户端中修改配置模板中的部署信息,修改完成后,客户端生成新的部署方案,然后发送给服务器,由服务器执行新的部署方案。这样方便了用户随时修改集群规模。

节点重启或关闭功能。如果用户需要重启或者关闭集群中的某个节点或全部节点,可通过客户端发送重启或关闭请求进行重启或关闭。

可以理解,这里的集群是根据用户的部署需求在云平台的多个节点上部署软件时,多个节点构成的集群。实际应用中,用户也可以只在云平台的一个节点上部署软件,对此不作限制。

操作日志下载功能。用户可通过客户端的接口获取服务器收集的日志文件列表,然后再通过调用包含获取参数的方法从服务器下载指定日志文件进行查看和分析。

节点状态监控功能。部署完后,客户端可以通过发送查看所有节点的组件运行状态的请求给服务器以查看节点的运行状态,例如,系统cpu使用率、内存占用率、存储器使用率、组件运行状态等。

以上可知,本实施例的软件部署方法,通过云平台上运行的服务器提供部署的集中管理,可以进行软件安装、升级、进程启停、日志查看、日志下载、日志清理、进程监控和进程守护等操作。对于底层iaas(infrastructureasaservice,基础设施即服务)平台不提供任何api(applicationprogramminginterface,应用程序编程接口)的情况,应用本实施例的部署方法也可正常完成部署。通过统一的构建部署过程,自动采集配置信息并完成部署,大幅减少了人工手动部署的参与,解决了可能存在的配置出错问题。同时,部署的过程有序并行执行,每个组件在云平台的虚拟机上运行部署,大大节约了部署时间。

实施例三

图2是本发明一个实施例的一种软件部署服务器的结构框图,参见图2,本实施例的软件部署服务器20运行在云平台上,包括:

通信模块201,适于接收客户端发送的包含部署配置信息的部署方案;

部署准备模块202,适于根据接收的所述部署方案,确定出云平台上的部署节点并获取部署所需的软件文件;

部署执行模块203,适于执行所述部署方案,将所述软件文件安装到所述部署节点上。

在本发明的一个实施例中,软件部署服务器20还包括:部署反馈模块,

适于接收客户端发送的websocket连接建立请求,返回websocket响应至所述客户端;接收所述客户端在websocket连接建立后实时发送的部署进度获取请求,返回相应的部署日志至所述客户端。

websocket连接是根据websocket协议建立的连接,是websocket基于tcp的一种新的协议。通过websocketapi,客户端的浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者之间就直接可以数据互传。基于websocket协议服务器提供即时服务,即,服务器不再被动的接收到浏览器的request之后才返回数据,而是在有新数据时就主动推送给浏览器。

在本发明的一个实施例中,部署执行模块203包括:

环境安装子模块,适于在将所述软件文件安装到所述部署节点上之前,安装或替换部署节点的操作系统;

存储器检查子模块,适于根据获取的部署所需的软件文件判断所述部署节点的存储器大小,当确定出所述存储器大小大于或等于所述软件文件的大小时,将所述软件文件安装到所述部署节点上;

冲突控制子模块,适于判断所述部署节点上是否正在执行与当前部署操作相冲突的操作,是则,暂停与当前部署操作相冲突的操作后将所述软件文件安装到所述部署节点上;

用户创建子模块,适于根据所述部署方案中用户项的值,确定是否新建标准用户,当用户项的值指示新建标准用户时,为所述软件新建标准用户。

在本发明的一个实施例中,该软件部署服务器20还包括:

节点状态反馈模块,适于接收客户端在部署完成后发送的部署节点状态查看请求;将采集的部署节点的运行状态信息返回至所述客户端;

以及,节点管理模块,适于接收客户端在部署完成后发送的一个或多个部署节点的重启或关闭请求,根据所述请求重启或关闭相应的一个或多个部署节点。

在本发明的一个实施例中,该软件部署服务器20还包括:

模板提供模块,适于在接收客户端发送的包含部署配置信息的部署方案之前,接收客户端发送的配置模板获取请求,返回配置模板至所述客户端,使得所述客户端将配置模板显示输出给用户,接收用户在所述配置模板中填写的部署配置信息。

在本发明的一个实施例中,部署执行模块203还用于收集部署过程中的部署日志,根据所述部署日志将检测出的配置信息错误发送至客户端,使得所述客户端输出给用户供用户进行修改;

根据所述部署日志将由于安装错误或者由于文件传输遗漏错误导致的部署失败的组件进行重新安装。

实施例四

图3是本发明一个实施例的一种软件部署系统的结构框图,本实施例的软件部署系统30,包括客户端301以及如软件部署服务器20。该软件部署服务器即为前述实施例三中的软件部署服务器。

客户端301接收用户在配置模板中输入的配置信息,生成配置方案,将配置方案发送至软件部署服务器20;

软件部署服务器20,根据接收的部署方案,确定出云平台上的部署节点并获取部署所需的软件文件,执行部署方案,将软件文件安装到部署节点上。

由此可知,本实施例的软件部署系统针对现有软件部署存在的部署效率低下、容易出错等问题,基于云平台自动执行并完成部署。减少了人工参与部署,提高了软件部署效率,也有利于部署的标准化实施。该部署系统简单易用高效,企业的普通运维人员也能使用,对用户的技术要求低,适合大规模推广。

以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围以权利要求的保护范围为准。

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