论文部分内容阅读
基于服务的软件系统(Service-Based Software System,SBS)因其配置灵活、动态重构等优点,已经成为当前Internet环境中快速构建大规模、分布式应用的重要形式。随着近年来云计算技术的迅猛发展和广泛应用,越来越多的服务提供商开始将SBS部署到云平台上。然而,由于云资源的按需分配和付费特征,部署基于SBS的云应用面临一个资源优化分配问题,即如何确定SBS各个组件服务的最优资源配置(简称应用的资源分配策略),使得在满足用户端到端服务质量(Quality of Service,QoS)需求的基础上,最小化应用的整体资源使用成本。
目前大部分关于云应用资源优化分配问题的研究分为两类:一是将应用视作一个整体并确定其最优资源配置;二是将应用视为由多个性能相互独立的组件服务构成的实体,并确定各自的局部最优资源配置。然而,对于基于SBS的云应用,这两类方法存在如下不足:第一,组件服务与应用整体存在QoS聚合关系,组件服务的资源配置直接影响应用全局目标的优化效果,因此无法按照整体方式分配资源,同时局部优化无法保证资源分配策略的全局最优性;第二,近似连续的云资源产生巨大的搜索空间,使得直接寻找满足应用全局约束的最优资源分配策略是不现实的;第三,未考虑有状态组件服务的资源分配约束给云应用资源优化分配问题带来的复杂度;第四,云环境的动态化,使得初始部署阶段确定的资源分配策略往往无法保持运行时最优性,甚至导致组件服务的单一资源配置方式在新的资源状态下不能达到优化目标。
为了解决上述问题,本文提出了一种基于服务选取的SBS云应用资源优化分配方法。该方法首先利用资源划分手段,将连续云资源空间划分为相对有限的离散资源配置,使得在可接受的时间代价内找到最优资源分配策略成为可能;然后,将资源配置与组件服务的期望QoS,以及资源成本封装成逻辑服务,进而将基于SBS的云应用资源分配问题转化为逻辑服务选取问题;最后,针对不同类型的优化问题,采用服务选取算法寻找最优资源分配策略。本文的主要贡献如下:
(1)面向云应用的全局优化目标,提出了一种基于服务选取的SBS资源优化分配框架,将不同类型SBS、优化目标和分配阶段的优化分配基本过程概括为逻辑服务生成和逻辑服务选取两个步骤,其中逻辑服务的生成在提高服务选取效率的同时避免了组件服务的资源与性能关系对选取算法结构的影响,使得该方法框架具有良好的通用性。
(2)研究了连续云资源划分技术,并根据是否依赖组件服务的历史执行信息,提出了两种不同的资源划分策略:等宽资源划分和基于熵-最小描述长度的划分,二者在资源分配策略的质量和逻辑服务生成算法的时间开销上形成互补优势。
(3)针对无状态关联SBS云应用的资源初始优化分配问题,建立了基于服务选取方法的形式化模型。为求解该NP-hard问题模型,设计了一种混合遗传算法,采用精英保留和局部搜索策略提高了算法收敛速度。典型云资源场景下的实验结果验证了基于服务选取实现SBS资源优化分配的有效性,以及求解算法的高效性。
(4)针对有状态关联SBS云应用的资源初始优化分配问题,定义了有状态任务组的概念,并进行了基于服务选取方法的问题形式化描述,进而提出了一种离散差分进化算法来求解最优逻辑服务组合。算法利用状态标记向量和新的交叉策略处理状态关联关系带来的逻辑服务绑定约束,避免了个体编码复杂度的增加,同时改进的选择算子能够使算法快速收敛并保证解的可行性。
(5)针对多SLA(Service Level Agreement)云应用的资源初始优化分配问题,提出了一种求解服务选取优化分配模型的多目标遗传算法。为了解决不同服务等级下的资源成本、端到端响应时间和可靠性等多个优化目标之间的冲突,算法用于求取Pareto最优逻辑服务组合,通过分别设计可行个体和不可行个体的适应度函数,可以找到均匀分布在目标QoS空间中的解集,从而可使云应用提供商根据使用偏好从中选择最满意的解作为最优资源分配策略。
(6)针对运行时环境的动态变化,设计了一种遵循“监测-分析-规划-执行”模型的SBS资源动态分配自适应优化机制,其核心是基于服务选取的自适应策略模型:在资源分配策略中为每个组件服务选择一个逻辑服务集合,并在运行时根据优化的概率分布周期性地在集合中切换逻辑服务,从而能够在动态环境中达到更优的QoS目标,同时在环境劣化时提高应用实例的可用性。
目前大部分关于云应用资源优化分配问题的研究分为两类:一是将应用视作一个整体并确定其最优资源配置;二是将应用视为由多个性能相互独立的组件服务构成的实体,并确定各自的局部最优资源配置。然而,对于基于SBS的云应用,这两类方法存在如下不足:第一,组件服务与应用整体存在QoS聚合关系,组件服务的资源配置直接影响应用全局目标的优化效果,因此无法按照整体方式分配资源,同时局部优化无法保证资源分配策略的全局最优性;第二,近似连续的云资源产生巨大的搜索空间,使得直接寻找满足应用全局约束的最优资源分配策略是不现实的;第三,未考虑有状态组件服务的资源分配约束给云应用资源优化分配问题带来的复杂度;第四,云环境的动态化,使得初始部署阶段确定的资源分配策略往往无法保持运行时最优性,甚至导致组件服务的单一资源配置方式在新的资源状态下不能达到优化目标。
为了解决上述问题,本文提出了一种基于服务选取的SBS云应用资源优化分配方法。该方法首先利用资源划分手段,将连续云资源空间划分为相对有限的离散资源配置,使得在可接受的时间代价内找到最优资源分配策略成为可能;然后,将资源配置与组件服务的期望QoS,以及资源成本封装成逻辑服务,进而将基于SBS的云应用资源分配问题转化为逻辑服务选取问题;最后,针对不同类型的优化问题,采用服务选取算法寻找最优资源分配策略。本文的主要贡献如下:
(1)面向云应用的全局优化目标,提出了一种基于服务选取的SBS资源优化分配框架,将不同类型SBS、优化目标和分配阶段的优化分配基本过程概括为逻辑服务生成和逻辑服务选取两个步骤,其中逻辑服务的生成在提高服务选取效率的同时避免了组件服务的资源与性能关系对选取算法结构的影响,使得该方法框架具有良好的通用性。
(2)研究了连续云资源划分技术,并根据是否依赖组件服务的历史执行信息,提出了两种不同的资源划分策略:等宽资源划分和基于熵-最小描述长度的划分,二者在资源分配策略的质量和逻辑服务生成算法的时间开销上形成互补优势。
(3)针对无状态关联SBS云应用的资源初始优化分配问题,建立了基于服务选取方法的形式化模型。为求解该NP-hard问题模型,设计了一种混合遗传算法,采用精英保留和局部搜索策略提高了算法收敛速度。典型云资源场景下的实验结果验证了基于服务选取实现SBS资源优化分配的有效性,以及求解算法的高效性。
(4)针对有状态关联SBS云应用的资源初始优化分配问题,定义了有状态任务组的概念,并进行了基于服务选取方法的问题形式化描述,进而提出了一种离散差分进化算法来求解最优逻辑服务组合。算法利用状态标记向量和新的交叉策略处理状态关联关系带来的逻辑服务绑定约束,避免了个体编码复杂度的增加,同时改进的选择算子能够使算法快速收敛并保证解的可行性。
(5)针对多SLA(Service Level Agreement)云应用的资源初始优化分配问题,提出了一种求解服务选取优化分配模型的多目标遗传算法。为了解决不同服务等级下的资源成本、端到端响应时间和可靠性等多个优化目标之间的冲突,算法用于求取Pareto最优逻辑服务组合,通过分别设计可行个体和不可行个体的适应度函数,可以找到均匀分布在目标QoS空间中的解集,从而可使云应用提供商根据使用偏好从中选择最满意的解作为最优资源分配策略。
(6)针对运行时环境的动态变化,设计了一种遵循“监测-分析-规划-执行”模型的SBS资源动态分配自适应优化机制,其核心是基于服务选取的自适应策略模型:在资源分配策略中为每个组件服务选择一个逻辑服务集合,并在运行时根据优化的概率分布周期性地在集合中切换逻辑服务,从而能够在动态环境中达到更优的QoS目标,同时在环境劣化时提高应用实例的可用性。