论文部分内容阅读
云计算已经成为信息技术研究和应用的主流方向之一。云计算平台按需使用、高可扩展和低维护成本的特性吸引了越来越多的企业将应用服务部署到云平台中。然而,由于云计算平台规模巨大、结构复杂、高度动态,单个节点的失效成为常态,使得在云计算环境中构建高可靠的应用服务成为一个具有挑战性的关键研究问题。 云计算环境下应用的可靠性优化问题面临的挑战主要体现在以下几个方面:(1)在云计算平台中部署的应用服务通常包含大量组件,系统的复杂性导致采用避错和排错等传统软件可靠性提高技术以达到零出错的目标变得不现实;(2)云计算的高度动态性使得云组件的失效率、响应时间等服务质量属性随用户和时间发生变化,而传统的容错方法没有将这一特征考虑在内;(3)云计算环境下资源的使用按需计费,即从用户角度来讲,使用的资源越多开销越大,使用冗余资源提高应用可靠性的方法需要在服务质量与资源开销之间做出权衡。 针对上述挑战,本文着重研究云计算环境下应用的可靠性优化方法,主要研究工作和贡献如下: (1)提出基于可靠性的云应用设计优化框架,该框架分为应用服务分析、组件重要性排名和副本配置三个步骤,通过应用服务分析提取程序架构信息和组件失效率等可靠性信息,在此基础上,根据组件失效对应用服务整体可靠性的影响进行组件排名,最后,通过对失效影响最大的组件配置副本容错降低失效影响,提高应用服务整体可靠性。该框架克服了云应用规模庞大、结构复杂等特点为可靠性分析带来的困难,提出应用层的可靠性提高方案,并在降低失效率的同时,降低了冗余资源开销。 (2)分别针对部署在公有云环境和混合云环境的应用服务,提出基于失效影响的组件重要性排名算法。该算法基于组件调用关系、调用频率、组件失效率等统计信息,采用PageRank随机游走模型,计算各组件失效对应用服务整体可靠性的影响。该算法的提出,解决了传统组件重要性分析方法对专家知识和人工的依赖问题,降低了源代码阅读分析工作量,避免了因人工介入可能带来的逻辑错误。 (3)针对云计算环境高度动态的特点以及云组件的重用需求,提出了云计算环境下的习得性容错方法。习得性容错方法包括信誉感知的云组件服务质量预测和自动化的最优容错策略选择两个步骤。信誉感知的云组件服务质量预测方法采用共同判定模型计算用户信誉,并基于可信用户数据通过协同过滤方法进行云组件服务质量预测,弥补了已有服务质量预测方法对数据可信性考虑不足的缺点,降低了不可信用户数据对预测结果的影响。自动化的最优容错策略选择算法根据用户的预设约束条件自动选择个性化的容错方法,能更好地适应不同的运行环境。与传统方法相比,习得性容错方法可以适应云计算环境高度动态的特点,降低噪声数据带来的影响,更精确地预测云组件相对不同用户的服务质量,选择最适合用户的备选组件及容错策略组合。 (4)提出云计算环境中面向用户的周期性任务容错调度算法,该算法提出基于处理能力的异构系统模型,解决了分布式异构环境下调度模型的可扩展性问题;基于主副版本容错模型降低任务失效率;采用副本重叠及主动副本延迟执行技术降低系统冗余度;通过处理器分组及任务划分技术减少可调度性测试,降低算法复杂度,提高了调度效率及算法执行效率。 (5)提出云计算环境中面向用户的非周期性任务容错调度算法,该算法利用基于可靠性的云应用设计优化框架及习得性容错方法,结合任务截止时间分析算法,对任务集进行预处理,将有依赖关系的实时任务调度转化为动态优先级的就绪任务调度问题,同时根据重要组件排名减少副本配置数量;通过副本重叠及主动副本延迟执行技术降低系统冗余度,在保证任务执行可靠性的同时,降低冗余资源消耗。 本文围绕云应用面临的可靠性问题以及当前方法的不足研究面向云应用服务的可靠性优化方法,在云应用的设计、部署和执行阶段,充分考虑到用户对服务质量的体验,以尽可能少的冗余资源,最大程度上提高云应用服务的可靠性。