一种基于云计算平台的应用自动化部署方法

文档序号:9750555阅读:1086来源:国知局
一种基于云计算平台的应用自动化部署方法
【技术领域】
[0001] 本发明涉及云计算应用自动部署技术领域,特别是一种基于云计算平台的应用自 动化部署方法。
【背景技术】
[0002] 目前主流云计算平台只提供了弹性伸缩的计算资源,对于希望将自己的应用迀移 到云计算平台上的用户来说,这还远远不够。如何自动化地安装、部署和配置用户应用环境 所依赖的操作系统、数据库、中间件及其他应用程序是当前该领域的研究热点。目前只有亚 马逊公司和谷歌公司的云计算平台提供类似的服务。亚马逊公司的AWS使用BitNami来提供 自动化部署方面的支持,BitNami用协议栈的方式打包一个Web应用程序和所依赖的组件 (包括Web服务器、数据库、运行中间件等),简化了部署的复杂程度。目前仅支持亚马逊云计 算平台。而谷歌公司的Google App Engine,帮助用户在提供的基础架构上运行网络应用程 序,这种方式需要用户二次开发,对于现有的并不是用Google App Engine SDK开发的应用 来说,还是不能顺利迀移到云端。而对于国内的各大云计算平台来说,目前都不支持应用程 序级别的自动化部署。除此以外,目前的云计算平台的应用自动化部署还存在以下的问题:
[0003] 1、为了使应用能够运行起来,还需要安装一些中间件或辅助软件,这是一项与用 户的应用无关但需要用户操作的工作。例如用户在虚拟机上部署Web应用环境时,需要安装 运行时语言中间件和Web服务器,如安装Java需要配置系统环境变量,配置出错不仅导致应 用无法运行,且修改过程需要定位错误原因,加大了用户负担。当用户需要部署的虚拟机数 量规模较大时,如何快速有效地部署成为一个难题。

【发明内容】

[0004] 本发明解决的技术问题在于提供一种云平台上应用自动化部署的方法,解决传统 应用部署中需要人工干预进行应用依赖环境安装、应用环境配置的问题。
[0005] 本发明解决上述技术问题的技术方案是:
[0006] 所述的方法包括以下步骤:
[0007] 步骤1:用户选择虚拟机并通过认证鉴权模块发起部署应用的请求;
[0008] 步骤2:用户通过认证鉴权模块选择将要部署的应用软件及版本;
[0009]步骤3:云计算平台相应接收到部署的请求,通过部署信息模块查询可供连接的部 署服务端信息;如果有多台部署服务端,则随机选择一台;连接部署服务端,进入下一步;
[0010] 步骤4:部署服务端根据待部署客户端信息和部署软件信息,生成唯一标识名,并 写入部署信息模块的脚本中;
[0011] 步骤5:部署服务端检查该待部署客户端是否是第一次向部署服务端发起请求,如 果没有客户端信息,则生成唯一标识名,分别写入两台主机的hosts配置文件,且服务端生 成一个证书给客户端;否则,跳过认证部分,进入下一步;
[0012]步骤6:服务端查询部署信息模块,通过文件模块和脚本模块将部署离线软件包、 部署脚本及驱动脚本发送给客户端;
[0013] 步骤7:客户端执行驱动脚本,完成应用软件部署;如果在部署时出现问题,则在下 一次周期连接服务端时重新部署。
[0014] 所述服务端指的是应用部署的主控端,可以是云计算平台的一部分,也可以与云 计算平台相互独立;主要负责调用其他模块;
[0015] 所述客户端指的是要部署应用的虚拟机的操作系统。
[0016] 所述检查该待部署客户端是否是第一次发起请求的判定标准是读取客户端主机 的hosts文件中是否有服务端的IP和主机名映射。
[0017] 所述认证鉴权模块采用标准的协议作为客户端和服务端之间的验证协议;当客户 端在第一次连接服务端时,服务端需要判断是否接受客户端的请求,并授予客户端证书;使 客户端找到正确的服务端;
[0018] 所述部署信息模块包含了待部署客户端的基本信息,包括客户端的主机名,地址, 哪些软件需要被部署等等;服务端通过读取部署信息,确定所连接的客户端需要配置哪些 内容。
[0019] 所述文件模块用于支持离线安装,主要包括一些离线的安装包信息;当一个客户 端需要安装指定软件时,服务端查询部署信息模块中的记录,并将指定的和依赖的文件传 送给客户端;
[0020] 所述脚本模块包括两个部分的脚本,一个是软件在配置或自动运行时文件模块配 合使用的脚本;另一个部分是驱动脚本,一般使用puppet语言编写,负责组织一个部署子单 元中的文件和脚本,这些驱动脚本会描述文件和脚本的关系以及各个部署子单元之前的关 系,以类的组成来完成一个部署子单元的描述。
[0021] 本发明的方法能产生如下的有益效果:
[0022] 本发明的机制提供自动化应用软件安装部署,用户只需要选择自己指定的中间件 或软件,就可以完成基本环境的部署,用户就可以只关注于自己的应用。解决了传统应用部 署中需要人工干预进行应用依赖环境安装、应用环境配置的问题,实现了应用的自动化部 署。
【附图说明】
[0023] 下面结合附图对本发明进一步说明:
[0024]图1为本发明的流程图。
【具体实施方式】
[0025]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0026]见图1所示,下面以并根据四个模块逐一介绍,具体讲述本发明的一个具体实施方 式。
[0027] 1、认证鉴权模块
[0028] 该模块要求给服务端和客户端分配唯一的标识名,这里采用完全域名来作为主机 的唯一识别方法。完全域名通过用主机名加上全路径的表示方法,从逻辑上明确了主机在 网络上的位置。然而,依赖于服务器完成域名到地址的翻译过程,我们的环境里没有服务 器。
[0029] //标识号生成算法
[0030] A-netmask.split(( · ')
[0031] B-ipaddress · split(( · ')
[0032] for i-0 to length(B)
[0033] while( length(B[ i]) <3)
[0034] B[i]-"0"+B[i];
[0035] end while
[0036] end for
[0037] if(A[l]!=,,255")
[0038] name-B[l]+B[2]+B[3];
[0039] else if(A[2]!="255")
[0040] name-B[2]+B[3]
[0041 ] else if(A[3]!="255")
[0042] name-B[3]
[0043] end if
[0044] name-name+"· com"
[0045] 有了唯一标识的主机名后,客户端通过以下命令向服务端申请证书。这里采用 puppet工具进行通信
[0046] puppet agent-server = server.puppet.com-no-daemonize-verbose
[0047] 服务端可以看到目前所有请求证书的客户端情况。
[0048] rootiserver:~#puppet cert-list
[0049] a238.com,,(CC:A5:B5:01:7F:45:68:76:7F:37:51:26:24:61:C0
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1