一种基于云计算的软件管理方法、装置及系统
技术领域
本发明涉及一种基于云计算的软件管理方法、装置及系统,属于云计算技术领域。
背景技术
随着Web技术、互联网技术等技术的发展,给企业的IT管理带来了众多新的技术和新的挑战,云计算就是企业IT管理近年来发展较快的一个技术方向,越来越多的成熟企业正在向云战略转型,以满足客户不断增长的需求及扩大销售渠道。云计算分为如下三个层次:IaaS(Infrastructure asa Service,基础架构即服务)、PaaS(Platform as aService,平台即服务)、SaaS(Software as a Service,软件即服务)。PaaS平台基于如下原则进行构建:
1.去中心化:PaaS平台与传统应用系统不同,虚拟机的IP地址是动态分配的,此时虚拟机中应用不能再用传统的基于IP的访问方式。而且对于PaaS平台来说,一个应用或服务必须能够适应所有的虚拟机都是对等的、没有本质差别的情况,而且考虑到可靠性要求,任何节点的失效均不能影响整体服务的提供,因此具体应用或服务集群中的节点也应该都是对等的。对于PaaS平台中的应用或服务来说,为了考虑性能问题,应用处理的任何环节上也不能出现集中的一个单点,以免成为性能瓶颈。
2.以应用为主体:PaaS平台与IaaS平台之间的显著区别在于,IaaS平台的关注对象是各种IT资源,而在PaaS平台下,系统的关注点是应用程序,不再是IT资源。当应用需要IT资源时,PaaS平台会自动分配,并且根据应用的SLA、IT资源的负载等情况对IT资源的使用进行动态伸缩。在此模式下,最终用户不再需要管理IT资源,只需要关注目标应用即可。当然对于IT管理人员来说,可能需要对于IT资源进行详细的配置。
3.应用隔离:不同用户、不同特征的应用在一起混合部署、同时运行时候,相互之间需要保证“资源隔离”,这种隔离意味着避免相互资源争用。一般而言,CPU资源中可以分区使用的资源如内存、磁盘容量等,都可按配额预先划分给应用,可以理想的做到资源隔离。在某些情况下,同一个虚拟机中可能部署两个应用,分属不同的用户,在这种情况下,也需要隔离。
4.故障迁移和集群管理:理想的PaaS调度意味着应用服务程序可以在集群中任意资源够用的机器上启动运行,甚至更理想的是能不停服务的情况下,将应用程序进行机器间动态迁移。很显然如若让应用程序可在任意机器上执行,就要求应用服务的“上下文状态”不能持久化在本地磁盘,也不能从本地反持久化。这就要求云平台能提供统一的存储服务,以便各应用的上下文能存储分布式的、安全、高效的存储在云中。这样带来的最主要的问题在于,集中式的存储会成为整个云平台的集中单点,而出现严重的I/O瓶颈。
传统的应用软件安装多基于IaaS平台,安装过程为申请安装应用软件-手动选择云平台-配置应用-选择配置方式-手动配置集群或者自动配置集群-配置负载均衡-运行监控-故障处理,安装过程步骤繁复,需要人为参与。
发明内容
本发明的目的在于提供一种基于云计算的软件管理方法、装置及系统,能够实现应用软件的一键自动化安装,智能方便,适应性强,具有可扩展性,提高了云计算环境下的软件部署效率。
本发明提供技术方案如下:
一方面,本发明提供了一种基于云计算的软件管理方法,包括:
步骤a:创建应用软件堆栈实例;
步骤b:根据客户需求申请安装应用软件;
步骤c:运行应用软件堆栈实例自动安装应用软件。
根据本发明的一实施方式,所述步骤c运行应用软件堆栈实例自动安装应用软件包括:
启动应用软件堆栈实例;
在多种云环境上创建应用软件运行所需的资源和环境;
管理应用软件安装所需的配置;
自动安装应用软件;
运行监控程序;
配置应用软件的运行参数。
根据本发明的另一实施方式,所述多种云环境可为公有云、私有云或者容器,包括OpenStack、VMware、阿里云和AWS一种或多种。
根据本发明的另一实施方式,所述管理应用软件安装所需的配置包括:从云环境的软件源下载软件包和启动并安装监控程序。
根据本发明的另一实施方式,所述监控程序用于监控管理应用软件堆栈实例的运行状态,包括监控管理应用软件堆栈实例运行失效、复杂事件处理、应用更新和根据触发条件启动应用软件堆栈实例的自动伸缩。
根据本发明的另一实施方式,所述配置应用软件的运行参数包括配置端口参数、安全设置和外存储器参数。
根据本发明的另一实施方式,所述创建应用软件堆栈实例的方式可为通用方式,所述通用方式通过基础镜像建立应用软件堆栈实例,所述基础镜像包括包括操作系统和安装、启动软件所需的脚本文件。
根据本发明的另一实施方式,所述创建应用软件堆栈实例的方式可为自定义方式,所述自定义方式在应用软件堆栈实例创建前预定义镜像、安装脚本和所需软件。
另一方面,本发明还提供了一种基于云计算的软件管理装置,包括:
创建模块,用于创建应用软件堆栈实例;
申请模块,用于根据客户需求申请安装应用软件;
运行模块,用于运行应用软件堆栈实例自动安装应用软件,所述运行模块包括启动单元,用于启动应用软件堆栈实例;混合云控制器单元,用于在多种云环境上创建应用软件运行所需的资源和环境;管理单元,用于管理应用软件安装所需的配置;安装单元,用于自动安装应用软件;监控单元,用运行监控程序,监控应用软件堆栈实例的运行状态;配置单元,用于配置应用软件的运行参数。
再一方面,本发明还提供了一种基于云计算的软件管理系统,包括:基于云计算的软件管理装置、PaaS平台和消息总线,所述基于云计算的软件管理装置和PaaS平台通过消息总线进行通信,
所述基于云计算的软件管理装置包括创建模块,用于创建应用软件堆栈实例;申请模块,用于根据客户需求申请安装应用软件;运行模块,用于运行应用软件堆栈实例自动安装应用软件,所述运行模块包括启动单元,用于启动应用软件堆栈实例;混合云控制器单元,用于在多种云环境上创建应用软件运行所需的资源和环境;管理单元,用于管理应用软件安装所需的配置;安装单元,用于自动安装应用软件;监控单元,用运行监控程序,监控应用软件堆栈实例的运行状态;配置单元,用于配置应用软件的运行参数;
所述PaaS平台包括云控制器模块、资源管理模块、自动伸缩模块、元数据模块和复杂事件处理模块。
本发明的有益效果如下:
本发明实施例的基于云计算的软件管理方法首先需要预先创建应用软件堆栈实例,之后根据客户需求申请安装应用软件,运行应用软件堆栈实例安装应用软件,通过混合多种云控制器,可自动在各种云环境中创建应用软件运行所需的资源和环境,适应性强,支持基于规则引擎智能的调度到各云环境中,通过管理配置实现应用软件安装所需的各项配置,自动化安装应用软件和监控程序,批量配置应用软件运行参数,能够实现应用软件的一键自动化安装,适应性强,具有可扩展性,提高了云计算环境下的软件部署效率。
附图说明
图1为本发明的基于云计算的软件管理方法的一个实施例的流程图;
图2为本发明的基于云计算的软件管理方法的另一个实施例的流程图;
图3为本发明的基于云计算的软件管理装置的一个实施例的结构框图;
图4为本发明的基于云计算的软件管理系统的一个实施例的结构框图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
一方面,如图1所示,本发明实施例提供了一种基于云计算的软件管理方法,包括:
步骤100:创建应用软件堆栈实例;
步骤101:根据客户需求申请安装应用软件;
步骤102:运行应用软件堆栈实例自动安装应用软件。
应用软件堆栈实例创建过程:添加堆栈实例可以通过Web管理界面或者REST API的方式进行定义,并发送至PasS云平台,由PasS云平台完成与IaaS平台的交互。PasS云平台对堆栈实例进行验证,如果堆栈实例已经存在,则PasS云平台首先会删除实例,根据配置重新添加实例。如果堆栈实例不存在,PasS云平台则会添加实例,并发送运行的相关配置信息。
以下为创建的应用软件堆栈实例的一段程序代码:
本发明实施例的基于云计算的软件管理方法首先需要预先创建应用软件堆栈实例,之后根据客户需求申请安装应用软件,运行应用软件堆栈实例安装应用软件,本发明实施例的基于云计算的软件管理方法相较于传统的应用软件安装方法更加智能方便,一键自动化安装,具有可扩展性,提高了云计算环境下的软件部署效率。
作为一个举例说明,如图2所示,本发明实施例基于云计算的软件管理方法的步骤102包括:
步骤1021:启动应用软件堆栈实例;
步骤1022:在多种云环境上创建应用软件运行所需的资源和环境;
步骤1023:管理应用软件安装所需的配置;
步骤1024:自动安装应用软件;
步骤1025:运行监控程序;
步骤1026:配置应用软件的运行参数。
本发明实施例的基于云计算的软件管理方法通过混合多种云环境,可自动在各种云环境中创建应用软件运行所需的资源和环境,适应性强,支持基于规则引擎智能的调度到各云环境中,通过管理配置实现应用软件安装所需的各项配置,自动化安装应用软件和监控程序,批量配置应用软件运行参数,能够实现应用软件的自动化安装,适应性强,具有可扩展性,提高了云计算环境下的软件部署效率。
作为一个举例说明,本发明实施例基于云计算的软件管理方法的多种云环境可为公有云、私有云或者容器,包括OpenStack、VMware、阿里云和AWS一种或多种。
作为一个举例说明,本发明实施例基于云计算的软件管理方法的管理应用软件安装所需的配置包括:从云环境的软件源下载软件包和启动并安装监控程序。本发明实施例的监控程序为Agent监控程序,其是通用型的,可在任何的堆栈实例中使用。Agent监控程序包含如下核心组件:实例活动事件接收组件、实例状态监控组件、应用更新管理组件和实例状态发布组件。
作为一个举例说明,本发明实施例基于云计算的软件管理方法的监控程序用于监控管理应用软件堆栈实例的运行状态,包括监控管理应用软件堆栈实例运行失效、复杂事件处理、应用更新和根据触发条件启动应用软件堆栈实例的自动伸缩。
堆栈实例运行期间包含如下状态:初始化状态、启动状态、激活状态、激活状态下监控程序终止状态和终止状态等。堆栈实例通过监控程序与整个PaaS平台之间的进行通讯,监控程序通过Python程序实现,用于监控堆栈实例运行状态并进行处理,包括运行失效后自动重启堆栈实例、突发复杂事件、版本控制更新及根据各种触发条件(比如:应用软件的运行指标超过阈值或者业务指标超过阈值)进行自动伸缩等。
本发明实施例基于云计算的软件管理方法通过监控程序实时监控应用软件堆栈实例的运行状态,可及时处理运行时效、复杂事件、版本更新以及根据触发条件自动伸缩使得堆栈实例运行更加合理、智能。
作为一个举例说明,本发明实施例基于云计算的软件管理方法的配置应用软件的运行参数包括配置端口参数、安全设置和外存储器参数。
作为一个举例说明,本发明实施例基于云计算的软件管理方法的创建应用软件堆栈实例的方式可为通用方式,通过基础镜像建立应用软件堆栈实例,其中基础镜像包括操作系统和安装、启动软件所需的脚本文件。
作为一个举例说明,本发明实施例基于云计算的软件管理方法的创建应用软件堆栈实例的方式可为自定义方式,自定义方式在应用软件堆栈实例创建前预定义镜像、安装脚本和所需软件。
在云计算环境中,每个虚拟机或者Docker容器被称为堆栈实例,堆栈实例可分为单租户类型和多租户类型。单一租户堆栈:在云计算环境中,部署一个单租户应用,应用中包含了一个或多个单租户堆栈,租户中的用户会被自动注册到部署的应用中,基于单租户堆栈部署的应用提供了用户进程级别的隔离。多租户堆栈:多租户的应用包含一个或多个租户堆栈,允许多个租户共享一个堆栈实例,但不同租户的访问流量是安全隔离的。
应用软件堆栈实例创建方式为通用方式和自定义配置的方式。
通用方式的应用软件堆栈实例基于基础镜像而建,并包含了包括操作系统和安装、启动软件所需的脚本文件。当实例启动时,启动脚本会自动执行并安装软件,并管理配置监控程序。
自定义方式创建的应用软件堆栈实例预先设置所需的软件和配置。自定义方式的堆栈在创建前就包含了镜像、安装脚本和所需软件。当实例启动时,管理配置监控程序,并会检测已安装软件是否与定义软件的版本一致,若存在差异,则会实时反馈。
另一方面,如图3所示,本发明还提供了一种基于云计算的软件管理装置1,包括:
创建模块11,用于创建应用软件堆栈实例;
申请模块12,用于根据客户需求申请安装应用软件;
运行模块13,用于运行应用软件堆栈实例自动安装应用软件,其中运行模块包括启动单元131,用于启动应用软件堆栈实例;混合云控制器单元132,用于在多种云环境上创建应用软件运行所需的资源和环境;管理单元133,用于管理应用软件安装所需的配置;安装单元134,用于自动安装应用软件;监控单元135,用运行监控程序,监控应用软件堆栈实例的运行状态;配置单元136,用于配置应用软件的运行参数。
本发明实施例的基于云计算的软件管理装置结构简单,包括创建单元、申请单元和运行单元,首先通过创建单元预先创建应用软件堆栈实例,之后根据客户需求通过申请单元申请安装应用软件,之后运行单元运行应用软件堆栈实例自动安装应用软件,本发明实施例的基于云计算的软件管理装置能够一键自动化安装应用软件,智能方便。
再一方面,如图4所示,本发明还提供了一种基于云计算的软件管理系统,包括:基于云计算的软件管理装置1、PaaS平台2和消息总线3,所述基于云计算的软件管理装置1和PaaS平台2通过消息总线3进行通信,
其中,基于云计算的软件管理装置包括创建模块11,用于创建应用软件堆栈实例;申请模块12,用于根据客户需求申请安装应用软件;运行模块13,用于运行应用软件堆栈实例自动安装应用软件,运行模块13包括启动单元131,用于启动应用软件堆栈实例;混合云控制器单元132,用于在多种云环境上创建应用软件运行所需的资源和环境;管理单元133,用于管理应用软件安装所需的配置;安装单元134,用于自动安装应用软件;监控单元135,用运行监控程序,监控应用软件堆栈实例的运行状态;配置单元136,用于配置应用软件的运行参数;
PaaS平台2包括云控制器模块21、资源管理模块22、自动伸缩模块23、元数据模块24和复杂事件处理模块25。
本发明实施例的基于云计算的软件管理系统包括基于云计算的软件管理装置、PaaS平台和消息总线,其中基于云计算的软件管理装置可为一个或多个,通过消息总线与PaaS平台进行通信,通过基于云计算的软件管理装置进行应用软件安装时首先创建单元创建软件堆栈实例,通过混合PaaS平台下的多个云环境可自动在各种云环境中创建应用软件运行所需的资源和环境,适应性强,支持基于规则引擎智能的调度到各云环境中,通过管理配置实现应用软件安装所需的各项配置,自动化安装应用软件和监控程序,批量配置应用软件运行参数,能够实现应用软件的自动化安装,适应性强,具有可扩展性,提高了云计算环境下的软件部署效率。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。