欢迎光临
我们一直在努力

一种云环境下SaaS软件部署方法及装置与流程

本发明涉及云计算技术领域,特别是涉及一种云环境下SaaS软件部署方法及装置。

背景技术:

随着云计算技术的快速发展,SaaS(Software-as-a-Service,软件即服务)模式逐渐兴起。SaaS模式是云计算在应用层提供的服务。在SaaS模式下,客户不需要购买完整的软件系统,也不需要配备相应的硬件系统和维护人员,只需要通过互联网,按需租用应用软件即可,这对成本预算有限、技术条件不足的中小企业来说,具有很强的吸引力。

在云环境下,SaaS模式主要涉及三类角色:租户、SaaS服务提供商和基础设施提供商。租户租用SaaS服务提供商提供的SaaS软件来满足其业务需求,每个租户可以租用一个或多个SaaS软件,一个SaaS软件可以为多个租户提供服务。当前的SaaS软件大多基于多租户模式,多个租户通过SaaS服务提供商的统一平台租用服务,共享软、硬件资源。多个租户共享相同的应用代码和应用实例,可以降低SaaS服务提供商开发、部署、运行、维护、更新等运营成本。同时,多个租户共同承担了软件服务的相关成本,降低了各个租户企业的服务购买成本。SaaS服务提供商通过向租户提供SaaS软件获取利润。

在平台层,SaaS软件是在虚拟机上进行部署、组织和管理的,每个虚拟机包含了预安装、预配置的操作系统、中间件和应用构件。在SaaS服务提供商租用了基础设施提供商的基础设施的情况下,部署了SaaS软件的虚拟机及其之间的通信网络被部署在基础设施提供商的云数据中心,SaaS服务提供商需要向基础设施提供商交付相应的虚拟机使用费用,即SaaS服务提供商所使用的虚拟机具有一定的租用成本。

在租用基础设施情况下,如何有效解决SaaS软件部署问题,是当前本领域技术人员亟需解决的技术问题。

技术实现要素:

本发明的目的是提供一种云环境下SaaS软件部署方法及装置,以对云环境下SaaS软件进行优化部署,在满足租户租约的同时,使得资源利用率最高,对虚拟机的租用成本最低。

为解决上述技术问题,本发明提供如下技术方案:

一种云环境下SaaS软件部署方法,包括:

获得至少一个租户对SaaS软件的租约;

根据所述租约,确定需部署的SaaS软件信息,所述SaaS软件信息包含SaaS软件的类型信息及每种类型的SaaS软件的资源消耗要求;

根据租用基础设施情况,确定可租用的虚拟机信息,所述虚拟机信息包含虚拟机的类型信息、每种类型的虚拟机的资源提供能力及每种类型的虚拟机的租用成本;

根据所述SaaS软件信息和所述虚拟机信息,确定部署方案,所述部署方案中包含:每种类型的SaaS软件实例数量、每种类型的虚拟机实例数量、租户与SaaS软件实例的对应关系及SaaS软件实例与虚拟机实例的对应关系,所述部署方案对应的虚拟机的总租用成本最低;

依据所述部署方案进行SaaS软件的部署。

在本发明的一种具体实施方式中,所述获得至少一个租户对SaaS软件的租约,包括

接收至少一个租户对SaaS软件的租用请求;

根据每个租户的租用请求,获得每个租户的租约。

在本发明的一种具体实施方式中,根据所述SaaS软件信息和所述虚拟机信息,确定部署方案,包括:

利用贪心算法,根据所述SaaS软件信息和所述虚拟机信息,分别计算仅使用单一类型的虚拟机部署全部租约时,需要每种类型的虚拟机实例的最大数量;

至少以虚拟机的总租用成本最低为优化目标,利用遗传算法求解租户、SaaS软件实例与虚拟机实例的映射关系,获得部署方案。

在本发明的一种具体实施方式中,根据所述SaaS软件信息和所述虚拟机信息,确定部署方案,包括:

根据所述SaaS软件信息和所述虚拟机信息,确定多个待部署方案,不同待部署方案中包含每种类型的SaaS软件实例数量、每种类型的虚拟机实例数量、租户与SaaS软件实例的对应关系及SaaS软件实例与虚拟机实例的对应关系不同;

确定每个待部署方案对应的虚拟机的总租用成本;

将最低的总租用成本对应的待部署方案确定为部署方案。

在本发明的一种具体实施方式中,最低的总租用成本对应的待部署方案有至少两个,所述将最低的总租用成本对应的待部署方案确定为部署方案,包括:

在本发明的一种具体实施方式中,最低的总租用成本对应的待部署方案有至少两个,所述部署方案确定模块,具体用于:

将最低的总租用成本对应的待部署方案中SaaS软件实例数量最少的待部署方案确定为部署方案。

应用本发明实施例所提供的技术方案,获得至少一个租户对SaaS软件的租约后,根据租约,可以确定需部署的SaaS软件信息,该SaaS软件信息包含SaaS软件的类型信息及每种类型的SaaS软件的资源消耗要求,根据租用基础设施情况,可以确定可租用的虚拟机信息,虚拟机信息包含虚拟机的类型信息、每种类型的虚拟机的资源提供能力及每种类型的虚拟机的租用成本,根据SaaS软件信息和虚拟机信息,可以确定部署方案,部署方案对应的虚拟机的总租用成本最低,依据该部署方案进行SaaS软件的优化部署,节省了SaaS服务提供商的租用成本,提高了资源利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种云环境下SaaS软件部署方法的实施流程图;

图2为本发明实施例中云环境下SaaS软件部署模型结构示意图;

图3为本发明实施例中租户需求的一种示意图;

图4为本发明实施例中部署方案的一种示意图;

图5为本发明实施例中一种云环境下SaaS软件部署装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1所示,为本发明实施例所提供的一种云环境下SaaS软件部署方法的实施流程图,该方法可以包括以下步骤:

S110:获得至少一个租户对SaaS软件的租约。

本发明实施例是在云环境下针对采用多租户多实例的软件第四级成熟度模型的SaaS软件,在服务构建阶段,对租户的租约和SaaS软件实例进行优化部署。一个或多个租户可以发送对SaaS软件的租用请求,接收至少一个租户对SaaS软件的租用请求后,可以根据每个租户的租用请求,获得每个租户的租约。

根据每个租户的租用请求,可以获得每个租户的租约,每个租约涉及不同租户要租用的SaaS软件的类型及不同的服务水平协议(Service Level Agreement,SLA)。租户要租用服务时,租户和SaaS服务提供商之间需要签订服务水平协议,即SLA。SLA描述了租户要租用服务的租期、用户数、服务质量(Quality of Service,QoS)需求等内容。SaaS服务提供商就是根据SLA来提供服务的。

获得至少一个租户对SaaS软件的租约后,可以继续执行步骤S120或者步骤S130的操作。

S120:根据租约,确定需部署的SaaS软件信息。

SaaS软件信息包含SaaS软件的类型信息及每种类型的SaaS软件的资源消耗要求。

获得至少一个租户对SaaS软件的租约后,可以根据租约,确定需部署的SaaS软件信息,即确定租户要租用的SaaS软件的类型信息及每种类型的SaaS软件的资源消耗要求。

S130:根据租用基础设施情况,确定可租用的虚拟机信息。

虚拟机信息包含虚拟机的类型信息、每种类型的虚拟机的资源提供能力及每种类型的虚拟机的租用成本。

如图2所示,在SaaS软件部署模型中,SaaS服务提供商通过SaaS应用系统门户为租户提供服务,SaaS服务提供商可以包含以下几个层次:

服务器层:物理服务器为服务器实体设备,为充分利用资源,会采用一定的虚拟化技术进行虚拟机化,一个物理服务器可以虚拟出多个虚拟机,每个虚拟机具有独立的系统管理,虚拟机之间互不干扰。物理服务器的个数理论上可以随着需求的变化而进行动态的增加或者减少。

虚拟机层:提供基础设施服务,SaaS软件运行在虚拟机上,SaaS服务提供商可以租用基础设施服务商的虚拟机来提供服务,也可以搭建自己的基础设施来提供服务。随着租户租用需求的变化,可以动态的创建或者删除虚拟机,做到按需使用,节约资源。

应用层:应用层可以运行多个SaaS软件实例并为租户提供SaaS服务。

资源监测层:从服务器层、虚拟机层、应用层等层次对资源消耗情况进行监测。对服务器层监测可以获得各个物理服务器的资源状态,以便进行虚拟机调度、实现物理资源的负载均衡;对虚拟机层监测可以获得虚拟机的当前资源消耗情况,在进行租户负载均衡时,需要根据租户的需求和虚拟机的资源状态确定是否能分配到该虚拟机,对应用层监测可以为资源消耗模型的建立和调整提供数据依据,是资源度量的重要支撑。

在本发明实施例中,SaaS服务提供商通过租用基础设施为租户提供服务。在SaaS服务提供商租用基础设施的情况下,由于SaaS服务提供商租用第三方的虚拟机资源,因此,虚拟机资源在理论上是可无限扩展的。

SaaS服务提供商在获得租户的租约后,可以根据租用基础设施实际情况,确定可租用的虚拟机信息。虚拟机信息包含虚拟机的类型信息、每种类型的虚拟机的资源提供能力及每种各类型的虚拟机的租用成本。

需要说明的是,本发明实施例对步骤S120和步骤S130的执行顺序不做限制。

S140:根据SaaS软件信息和虚拟机信息,确定部署方案。

部署方案中包含:每种类型的SaaS软件实例数量、每种类型的虚拟机实例数量、租户与SaaS软件实例的对应关系及SaaS软件实例与虚拟机实例的对应关系。

一般情况下,一个SaaS软件只实例化一次,所有对该软件有租用请求的租户都共享同一软件实例,但随着租户并发访问量的增加,可能导致单个软件实例的服务能力难以满足所有租户对该软件的服务质量要求,则需部署该软件的多个实例。本发明实施例根据租户SLA协议中对服务质量的要求,合理分配不同的租户访问相应的实例,满足租户需求的同时提高SaaS软件的利用率,确保服务的负载均衡。

在本发明的一种具体实施方式中,步骤S140可以包括以下步骤:

步骤一:利用贪心算法,根据SaaS软件信息和虚拟机信息,分别计算仅使用单一类型的虚拟机部署全部租约时,需要每种类型的虚拟机实例的最大数量;

步骤二:至少以虚拟机的总租用成本最低为优化目标,利用遗传算法求解租户、SaaS软件实例与虚拟机实例的映射关系,获得部署方案。

在本发明实施例中,设T={T1,T2,…,Tt}为获得的租户的租约集合,租约Ti(i=1,2,…,t)即表示图3中的一个服务租用关系,在租用基础设施环境下对SaaS软件进行优化部署时根据所有租户的租用请求即可确定租户的租约集合T;设S={S1,S2,…,Sm}为SaaS软件类型的集合;设VM={VM1,VM2,…,VMn}为虚拟机类型的集合。根据租户的租约集合T中每个租约与SaaS软件类型的对应关系,可以确定所需部署的SaaS软件类型集合S及S中每种类型SaaS软件的资源消耗要求。同时,根据租用基础设施的实际情况可以确定所需租用的虚拟机类型集合VM、VM中每种类型虚拟机的租用成本及资源提供能力。

如图3所示,共有四个租户,租约集合T={T1,T2,T3,T4,T5},确定的SaaS软件类型有S1和S2,确定的虚拟机类型有VM1、VM2和VM3,分别具有不同的资源提供能力和租用成本。

在已确定的租约集合T、SaaS软件类型集合S、虚拟机类型集合VM的条件下,根据每种类型SaaS软件的资源消耗要求和每种类型虚拟机的资源提供能力,可以确定集合S中每种类型SaaS软件所需部署的数量、集合VM中每种类型虚拟机所需租用的数量、以及租约集合T、所部署的SaaS软件实例集合S*(即所部署的各种类型SaaS软件构成的集合)、所租用虚拟机实例集合VM*(即所租用的各种类型虚拟机构成的集合)之间的对应关系建立租用基础设施环境下SaaS软件优化部署的数学模型,该数学模型为带约束条件的组合优化问题,属于NP问题。优化目标至少包含VM*中虚拟机的总租用成本最低,当然还可以包含其他优化目标,如S*中SaaS软件的个数最少等。

在本发明实施例中,使用贪心算法加遗传算法的混合策略,首先利用贪心算法,计算出只使用某一类型虚拟机部署全部租约时,需要该类型虚拟机的最大数量,得出每种类型虚拟机实例所需的最大总数量,然后使用遗传算法求解映射关系,获得部署方案。

如图4所示,为确定的部署方案,租用1个虚拟机VM1的实例VM11,两个VM2的实例VM21、VM22,需要创建两个S1的实例S11、S12,两个S2的实例S21、S22;S11部署到VM11上,S12、S21部署到VM21上,S22部署到VM22上;S11上部署了租户1,S12上部署了租户2,S21上部署了租户2、租户3,S22上部署了租户4。

这样可以在满足租户需求和质量的条件下,使得虚拟机的租用成本最低,节省SaaS服务提供商的租用成本,提高资源利用率。

在本发明的一种具体实施方式中,步骤S140可以包括以下步骤:

第一个步骤:根据SaaS软件信息和虚拟机信息,确定多个待部署方案,不同待部署方案中包含每种类型的SaaS软件实例数量、每种类型的虚拟机实例数量、租户与SaaS软件实例的对应关系及SaaS软件实例与虚拟机实例的对应关系不同;

第二个步骤:确定每个待部署方案对应的虚拟机的总租用成本;

第三个步骤:将最低的总租用成本对应的待部署方案确定为部署方案。

在本发明实施例中,根据SaaS软件信息和虚拟机信息,可以确定出多个待部署方案,不同待部署方案中包含的每种类型的SaaS软件实例数量、每种类型的虚拟机实例数量、租户与SaaS软件实例的对应关系及SaaS软件实例与虚拟机实例的对应关系不同。

根据每种类型的虚拟机的租用成本及每个待部署方案中包含的每种类型的虚拟机实例数量,可以确定每个待部署方案对应的虚拟机的总租用成本。可以将最低的总租用成本对应的待部署方案确定为部署方案。

如果最低的总租用成本对应的待部署方案有至少两个,则可以从中选择一个待部署方案,将其确定为部署方案,优选的是将最低的总租用成本对应的待部署方案中SaaS软件实例数量最少的待部署方案确定为部署方案。

这样可以在满足租户需求和质量的条件下,使得虚拟机的租用成本最低,节省SaaS服务提供商的租用成本,提高资源利用率。

S150:依据部署方案进行SaaS软件的部署。

在步骤S140确定了部署方案,依据该部署方案可以进行SaaS软件的部署。

应用本发明实施例所提供的方法,获得至少一个租户对SaaS软件的租约后,根据租约,可以确定需部署的SaaS软件信息,该SaaS软件信息包含SaaS软件的类型信息及每种类型的SaaS软件的资源消耗要求,根据租用基础设施情况,可以确定可租用的虚拟机信息,虚拟机信息包含虚拟机的类型信息、每种类型的虚拟机的资源提供能力及每种类型的虚拟机的租用成本,根据SaaS软件信息和虚拟机信息,可以确定部署方案,部署方案对应的虚拟机的总租用成本最低,依据该部署方案进行SaaS软件的优化部署,节省了SaaS服务提供商的租用成本,提高了资源利用率。

相应于上面的方法实施例,本发明实施例还提供了一种云环境下SaaS软件部署装置,下文描述的一种云环境下SaaS软件部署装置与上文描述的一种云环境下SaaS软件部署方法可相互对应参照。

参见图5所示,该装置包括以下模块:

租约获得模块510,用于获得至少一个租户对SaaS软件的租约;

SaaS软件信息确定模块520,用于根据租约,确定需部署的SaaS软件信息,SaaS软件信息包含SaaS软件的类型信息及每种类型的SaaS软件的资源消耗要求;

虚拟机信息确定模块530,用于根据租用基础设施情况,确定可租用的虚拟机信息,虚拟机信息包含虚拟机的类型信息、每种类型的虚拟机的资源提供能力及每种类型的虚拟机的租用成本;

部署方案确定模块540,用于根据SaaS软件信息和虚拟机信息,确定部署方案,部署方案中包含:每种类型的SaaS软件实例数量、每种类型的虚拟机实例数量、租户与SaaS软件实例的对应关系及SaaS软件实例与虚拟机实例的对应关系,部署方案对应的虚拟机的总租用成本最低;

SaaS软件部署模块550,用于依据部署方案进行SaaS软件的部署。

应用本发明实施例所提供的装置,获得至少一个租户对SaaS软件的租约后,根据租约,可以确定需部署的SaaS软件信息,该SaaS软件信息包含SaaS软件的类型信息及每种类型的SaaS软件的资源消耗要求,根据租用基础设施情况,可以确定可租用的虚拟机信息,虚拟机信息包含虚拟机的类型信息、每种类型的虚拟机的资源提供能力及每种类型的虚拟机的租用成本,根据SaaS软件信息和虚拟机信息,可以确定部署方案,部署方案对应的虚拟机的总租用成本最低,依据该部署方案进行SaaS软件的优化部署,节省了SaaS服务提供商的租用成本,提高了资源利用率。

在本发明的一种具体实施方式中,租约获得模块510,具体用于:

接收至少一个租户对SaaS软件的租用请求;

根据每个租户的租用请求,获得每个租户的租约。

在本发明的一种具体实施方式中,部署方案确定模块540,具体用于:

利用贪心算法,根据SaaS软件信息和虚拟机信息,分别计算仅使用单一类型的虚拟机部署全部租约时,需要每种类型的虚拟机实例的最大数量;

至少以虚拟机的总租用成本最低为优化目标,利用遗传算法求解租户、SaaS软件实例与虚拟机实例的映射关系,获得部署方案。

在本发明的一种具体实施方式中,部署方案确定模块540,具体用于:

根据SaaS软件信息和虚拟机信息,确定多个待部署方案,不同待部署方案中包含每种类型的SaaS软件实例数量、每种类型的虚拟机实例数量、租户与SaaS软件实例的对应关系及SaaS软件实例与虚拟机实例的对应关系不同;

确定每个待部署方案对应的虚拟机的总租用成本;

将最低的总租用成本对应的待部署方案确定为部署方案。

在本发明的一种具体实施方式中,最低的总租用成本对应的待部署方案有至少两个,部署方案确定模块540,具体用于:

将最低的总租用成本对应的待部署方案中SaaS软件实例数量最少的待部署方案确定为部署方案。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:一种云环境下SaaS软件部署方法及装置与流程
文章链接:https://www.jmwz.net/123.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址