应用部署方法和云计算系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种应用部署方法和云计算系统。
【背景技术】
[0002]云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(UtilityComputing)、网络存储(Network Storage Technologies)、虚拟化(Virtualizat1n)、负载均衡(Load Balance)等传统计算机技术和网络技术发展融合的产物;它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS(Software-as-a-service)、PaaS(Platform-as-a_Service)、IaaS(Infrastructure as aService)、MSP(Managed Service Provider)等先进的商业模式,把这强大的计算能力分布到终端用户手中。
[0003]在云计算兴起的环境下,应用(APP)托管的模式逐渐成为趋势,开源PaaS平台的Cloud Foundry得到了广泛的肯定,PaaS服务提供商把服务器平台作为一种服务,使中小型企业和普通用户能够快速部署、配置和使用应用。在这种服务模式中,用户不需要购买硬件和软件,只需要利用PaaS平台系统,就能够创建、测试和部署应用和服务,平台可以支持Java EE、php、ruby on rails、python Django等开发框架的web应用程序,同时可以在平台上完成web应用的全生命周期管理。
[0004]而在实际应用中,云计算平台一般采用虚拟机作为应用部署环境,但虚拟机创建速度慢,性能有一定损耗,服务器能创建虚拟机数量较少,应用部署效率和密度低,虚拟化的性能耗损较大。
【发明内容】
[0005]基于此,有必要针对上述技术问题,提供一种应用部署方法和云计算系统,提高应用部署效率和密度,同时减少虚拟化的性能耗损。
[0006]—种应用部署方法,包括如下步骤:
[0007]资源管理组件在资源节点上安装容器环境,并上传预设的应用运行环境镜像和应用的启动脚本;
[0008]控制组件接收管理平台的创建应用请求后,发送应用部署请求后至资源节点上的资源管理组件,资源管理组件在所述容器环境中查找相应的应用运行环境镜像,并启动一个容器;将应用部署请求中的应用信息拷贝到所述容器内,运行所述启动脚本部署所述应用。
[0009]—种云计算系统,包括:
[0010]管理平台,用于接收用户的创建应用请求;
[0011]安装在控制节点上的控制组件,用于管理资源节点、监控资源节点的资源使用状态以及处理用户的请求;
[0012]安装在资源节点上的资源管理组件,用于在资源节点上安装容器环境,并上传预设的应用运行环境镜像和应用的操作脚本,接收控制组件发送的应用部署请求,在所述容器环境中查找相应的应用运行环境镜像,并启动一个容器;将应用部署请求中的应用信息拷贝到所述容器内,运行所述启动脚本部署所述应用。
[0013]上述应用部署方法和云计算系统,由资源管理组件在资源节点上安装容器环境并预设应用运行环境镜像和应用的启动脚本;根据应用部署请求后在容器环境中查找相应的应用运行环境镜像,将应用信息拷贝到所述容器内,运行通过启动脚本直接运行该镜像即可部署应用,无需另外安装应用环境。该方案基于进程容器的轻量级虚拟化方案,在一台宿主机上可以启动的容器进程数量远大于可启动的虚拟机数量,可以提升应用部署的密度,提高资源使用效率。同时将应用部署到容器中,也可以提高应用部署的速度。而且可以直接在宿主平台上加载运行应用程序,也减少了性能的损耗。
【附图说明】
[0014]图1为本发明应用部署方法流程图;
[0015]图2为另一实施例的本发明应用部署方法流程图;
[0016]图3为本发明的云计算系统的结构示意图;
[0017]图4为一应用实例的云计算系统执行工作流程图;
[0018]图5为一应用实例的云计算系统的资源管理组件和控制组件的工作原理图。
【具体实施方式】
[0019]下面结合附图等对本发明的应用部署方法和云计算系统的实施例进行描述。
[0020]参考图1所示,图1为本发明应用部署方法流程图,包括如下步骤:
[0021]S101,资源管理组件在资源节点上安装容器环境;
[0022]S102,资源管理组件上传预设的应用运行环境镜像和应用的启动脚本;
[0023]S103,控制组件接收管理平台的创建应用请求;
[0024]S104,控制组件发送应用部署请求后至资源节点上的资源管理组件;
[0025]S105,资源管理组件在所述容器环境中查找相应的应用运行环境镜像,并启动一个容器;
[0026]S106,资源管理组件将应用部署请求中的应用信息拷贝到所述容器内,运行所述启动脚本部署所述应用。
[0027]本发明应用部署方法,由资源管理组件在资源节点上安装容器环境并预设应用运行环境镜像和应用的启动脚本;根据应用部署请求后在容器环境中查找相应的应用运行环境镜像,将应用信息拷贝到所述容器内,运行通过启动脚本直接运行该镜像即可部署应用,无需另外安装应用环境。该方案基于进程容器的轻量级虚拟化方案,在一台宿主机上可以启动的容器进程数量远大于可启动的虚拟机数量,可以提升应用部署的密度,提高资源使用效率。同时将应用部署到容器中,也可以提高应用部署的速度。而且可以直接在宿主平台上加载运行应用程序,也减少了性能的损耗。
[0028]在一个实施例中,参考图2所示,图2为另一实施例的本发明应用部署方法流程图,在应用部署成功后,还包括如下步骤:
[0029]S107,所述资源管理组件将所述资源节点最新的资源使用状态信息发送至控制组件;
[0030]S108,控制组件更新记录的资源使用状态信息并通过管理平台展示所述部署的应用。
[0031 ]在一个实施例中,如图2所示,本发明应用部署方法,还可以包括如下步骤:
[0032]S100,所述管理平台获取用户输入的应用名称、设置应用所需的存储空间、上传应用的代码文件以及设置应用运行环境的请求信息,并发送至控制组件。
[0033]作为一种实施方式,所述控制组件可以通过管理平台接收用户的创建应用请求,根据所述创建应用请求获取应用的代码文件;根据应用所需的存储空间查找控制组件记录的资源节点的资源使用状态,选择负载最低的资源节点为应用部署的资源节点;并根据代码文件将生成应用部署请求发送到该资源节点的资源管理组件。
[0034]作为一种实施方式,进一步的,所述控制组件可以将应用的代码文件和预设的启动脚本、关闭脚本打包成应用压缩包;根据应用所需的内存、磁盘大小查找控制组件记录的资源节点的资源使用状态符合条件的资源节点,根据所述应用压缩包生成应用部署请求发送到所述选择的资源管理组件。
[0035]作为一种实施方式,进一步的,资源管理组件收到应用部署请求后,可以根据用户选择的应用运行环境查找对应的应用运行环境镜像;通过所述应用运行环境镜像启动一个容器,将应用部署请求中的应用压缩包拷贝到所述容器内的指定目录,在容器内解压所述应用压缩包,查找并运行所述启动脚本部署所述应用。
[0036]参考图3所示,图3为本发明的云计算系统的结构示意图,包括:
[0037]管理平台,用于接收用户的创建应用请求;
[0038]安装在控制节点上的控制组件,用于管理资源节点、监控资源节点的资源使用状态以及处理用户的请求;
[0039]安装在资源节点上的资源管理组件,用于在资源节点上安装容器环境,并上传预设的应用运行环境镜像和应用的操作脚本,接收控制组件发送的应用部署请求,在所述容器环境中查找相应的应用运行环境镜像,并启动一个容器;将应用部署请求中的应用信息拷贝到所述容器内,运行所述启动脚本部署所述应用。
[0040]本发明的云计算系统,由资源管理组件在资源节点上安装容器环境并预设应用运行环境镜像和应用的启动脚本;根据应用部署请求后在容器环境中查找相应的应用运行环境镜像,将应用信息拷贝到所述容器内,运行通过启动脚本直接运行该镜像即可部署应用,无需另外安装应用环境。该方案基于进程容器的轻量级虚拟化方案,在一台宿主机上可以启动的容器进程数量远大于可启动的虚拟机数量,可以提升应用部署的密度,提高资源使用效率。同时将应用部署到容器中,也可以提高应用部署的速度。而且可以直接在宿主平台上加载运行应用程序,也减少了性能的损耗。
[0041]在一个实施例中,本发明的云计算系统,在应用部署成功后,所述资源管理组件将所述资源节点最新的资源使用状态信息发送至控制组件,控制组件更新记录的资源使用状态信息并通过管理平台展示所述部署的应用。
[0042]在一个实施例中,本发明的云计算系统,所述管理平台获取用户输入的应用名称、设置应用所需的存储空间、上传应用的代码文件以及设置应用运行环境的请求信息,并发送至控制组件。
[0043]作为一种实施方式,本发明的云计算系统,所述管理平台接收用户的创建应用请求;所述控制组件根据所述创建应用请求获取应用的代码文件;根据应用所需的存储空间查找控制组件记录的资源节点的资源使用状态,选择负载最低的资源节点为应用部署的资源节点;并根据代码文件将生成应用部署请求发送到该资源节点的资源管理组件