本发明涉及云计算应用集群技术领域,特别是一种云平台应用集群自动部署方法。
背景技术:
随着云计算相关技术的普及和越来越被人们所接受,原本提供基础设施资源的iaas云平台已经远远不能满足现实客户的实际需求;尤其是涉及电商、学校教育、游戏等领域的客户,其使用云平台是看重云中资源的弹性;包括时间灵活性和空间灵活性。这些客户的应用都需要集群形式部署,并且量会出现阶段性大量弹性扩展需求来满足消费者的需求。如果云平台仅仅提供iaas层服务,客户在购买虚拟机之后需要逐个部署自己的应用,这是客户所无法接受的;所以云平台需要一种应用集群的自动部署和灵活配置的机制,来满足这些用户的实际需求。
技术实现要素:
本发明解决的技术问题在于提出了一种云平台应用集群自动部署方法,可以快速发布一个应用集群,自动完成配置,实现云平台提供集群应用的管理功能。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
(1)根据应用集群的节点类型制作虚拟机镜像;
(2)上传应用集群虚拟机镜像到云平台,生成id、建立映射;并保存数据库;
(3)用户登录云平台选择应用类型,配置集群参数发布应用;发布应用集群时直接定位到虚拟机镜像,快速创建虚拟机搭建应用集群;
(4)云平台根据不同的应用类型采取对应的方式自动部署应用集群。
所述方法的虚拟机镜像事先提供配置模板,发布应用时用户通过页面输入定制化的参数即可完成应用的个性化配置。
所述节点类型根据不同的应用可以为:
(1)主从应用集群类型1:master主节点,slave从节点;
(2)主从应用集群类型2:master主节点,slave从节点,辅助节点;
(3)普通应用集群:普通节点;
所述辅助节点是指创建应用集群所必须或者可选的其他类型节点,包括但不限于消息队列节点,缓存节点。
所述的数据库记录唯一对应应用集群具体应用节点模板,包括但不限于如下字段:
(1)应用集群类型、版本号;
(2)应用集群模板id,应用集群节点类型,虚拟机镜像id;
(3)脚本路径,脚本通用参数及参数值。
所述的配置集群参数包括但不限于:
(1)设置应用集群类型和版本号;
(2)设置应用集群的节点数量,包括主节点数量、从节点数量、辅助节点数量和普通节点数量;
(3)设置应用集群配置参数。
所述的自动部署应用集群进一步包括如下流程:
(1)根据设置的应用集群类型和版本号以找到数据库中记录的模板id;
(2)在数据库中应用部署表中新增一条应用自动部署进度的信息记录;
(3)根据应用集群的类型开始不同流程的自动部署;
(4)主从应用集群部署:
流程一:先同时部署或者逐个依次部署主节点,待所有主节点部署完成后,然后开始同时部署或者逐个依次部署各个从节点;
流程二:先开始同时部署或者逐个依次部署各个从节点,待从节点部署完成后,再同时部署或者逐个部署主节点;
流程三:在主从应用集群部署流程一和二的基础上,根据需要依次加入辅助节点的部署流程控制;
(5)普通应用集群部署流程:主要控制是同时部署多有的普通节点还是依次逐个的部署普通节点。
每次的部署流程中都包括:
(1)根据数据库中记录的模板id和应用节点类型获取节点在云平台上对应的虚拟机镜像id,并利用该镜像id创建相应的虚拟机;
(2)根据数据库中记录的模板id和应用节点类型获取节点的脚本路径;
(3)根据应用集群应用节点类型获取用户设置的配置参数并进行配置;
(4)部署流程过程中设置定时器即使获取部署进行信息并更新数据库应用自动部署进度的信息记录。
本发明方案的有益效果如下:
1、将云平台用户前端页面的应用集群类型和云平台上的镜像id事先建立映射并保存数据库,发布应用集群的时候直接定位到虚拟机镜像,快速创建虚拟机搭建应用集群;同时虚拟机镜像事先提供配置模板,发布应用的时候用户通过页面输入定制化的参数即可完成应用的个性化配置。
2、该方法可以快速发布一个应用集群,自动完成配置,实现了云平台提供集群应用的管理功能。
3、本发明的方法具有通用性,可以根据不同的应用类型不同节点类型、快速实现构建不同的自动部署流程。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法的流程图。
具体实施方式
本实施例以mariadb数据库主从集群为例进行说明;实现的方法步骤如下:
(1)制作应用集群虚拟机镜像:
针对mariadb数据库主从集群我们可以分别制作主节点镜像和从节点镜像,也可以将主节点镜像和从节点镜像进行合并成同一个镜像。制作镜像的过程中主要是需要定制应用集群的自动部署脚本,如果将mariadb主从节点合并成同一个虚拟机镜像,则需要根据参数来区分节点类型,并执行不同的脚本进行处理。这里以合并mariadb主从节点镜像为例进行脚本的编写,实例脚本如下:
云平台在进行应用集群自动部署的过程中,通过代理向节点虚拟机传递信息,并执行自动部署、配置等脚本,如:
shmariadb.sh1n10.0.86.127guoyungcloud123330610.0.86.%lvxp1231
其中参数分别代表操作类型、部署类型、masterip、普通用户名、普通用户名的密码、端口,默认3306、允许远程访问的ip或ip段(例如10.0.86.128)、新的root密码、是否部署在云盘(有无云盘1或0)。
(2)上传应用集群节点虚拟机镜像到云平台,生成id并记录数据库
借助云平台基础功能接口上次虚拟机镜像,获取镜像id,如master节点镜像id:2bdab33d-7b9e-4410-83aa-a82a624878c0,slave节点镜像id:2bdab33d-7b9e-4410-83aa-a82a624878c0。
记录数据库:
(3)用户登录云平台选择应用类型,配置集群参数发布应用
用户登录云平台选择应用类型,配置应用集群类型和版本号,设置应用集群的节点数量,包括主节点数量、从节点数量、辅助节点数量和普通节点数量;设置应用集群配置参数。
(4)云平台根据不同的应用类型采取对应的方式自动部署应用集群,进一步包括如下流程:
根据设置的应用集群类型和版本号以找到数据库中记录的模板id;
在数据库中应用部署表中新增一条应用自动部署进度的信息记录;
根据应用集群的类型开始不同流程的自动部署;
主从应用集群部署流程一:先同时部署或者逐个依次部署主节点,待所有主节点部署完成后,然后开始同时部署或者逐个依次部署各个从节点;
主从应用集群部署流程二:先开始同时部署或者逐个依次部署各个从节点,待从节点部署完成后,再同时部署或者逐个部署主节点;
主从应用集群部署流程三:在主从应用集群部署流程一和二的基础上,根据需要依次加入辅助节点的部署流程控制。
普通应用集群部署流程:主要控制是同时部署多有的普通节点还是依次逐个的部署普通节点。
针对上面每次的部署流程中都包括:
根据数据库中记录的模板id和应用节点类型获取节点在云平台上对应的虚拟机镜像id,并利用该镜像id创建相应的虚拟机;
根据数据库中记录的模板id和应用节点类型获取节点的脚本路径;
根据应用集群应用节点类型获取用户设置的配置参数并进行配置;
部署流程过程中设置定时器即使获取部署进行信息并更新数据库应用自动部署进度的信息记录。
以上描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出实质性创造所获得的方案,都属于本发明保护的范围。