论文部分内容阅读
云计算已经成为信息技术研究和应用的主流方向之一。云计算平台按需使用、高可扩展和低维护成本的特性吸引了越来越多的企业将应用服务部署到云平台中。然而,由于云计算系统规模巨大、结构复杂、高度动态,失效不再是偶然事件,使得在云应用可靠性优化关键技术成为一个具有挑战性的研究问题。云应用开发、部署和运行涉及到云计算架构中的不同层次,实现技术和可靠性优化的侧重点不同,面临的技术难点也不尽相同。云应用可靠性优化问题面临的挑战主要体现在以下几个方面:(1)云基础设施管理中过分关注和追求资源利用率和节能降耗,但如无可靠性保障,很难维护低成本、高可靠的云应用运行环境。(2)在云计算环境中部署的应用服务通常包含大量组件,云应用系统的复杂性和云资源的动态性导致采用避错和排错等传统软件可靠性提高技术难以达到高可靠的目标。(3)以科学工作流为典型代表的云应用任务不但计算复杂而且对时效性要求高,这使得可靠性保障策略面临时间成本和空间成本双重约束。(4)云环境中失效事件的频发,使得监测技术的重要行得以凸显。同时,云服务架构快速发展,新兴的微服务架构突破了单体应用架构的束缚,更适合于云环境。但其小而自治,服务依赖多的特点为云应用可靠性测试和优化既提供了机遇也发出了挑战。针对上述挑战,本文从不同层次切入,研究云应用可靠性优化关键技术,主要研究工作如下:1.针对云应用基础设施管理中过度强调资源利用率和节约能耗,而对可靠性考虑不足的问题,本文提出一种基于可用容量控制的云应用基础设施可靠性优化方法。该方法的核心思想是在虚拟机放置的过程中,对关键虚拟机和非关键虚拟机采用不同的放置约束条件,并根据关键度对物理机实施可用容量控制。对比实验结果说明本文提出的虚拟机放置方法可在有效控制了资源成本投入和不损失虚拟机请求满足率的基础上保证虚拟机集合的可靠性,为上层云应用提供一个可靠的运行环境。2.针对云应用系统组件属性和结构特征,本文提出了这一种考虑组件失效的云应用组件重要度排序方法(FSCRank)。该方法将组件可靠性属性和云应用结构属性融合到排序算法中。为了解决基于结构的排序算法中的死链(Dead End)问题,本文在云应用结构图中引入了一种新型节点——缓冲节点。改进的结构图首先避免了Dead End问题,同时缓冲节点在传递系统重要度值的过程中,能够按照每个节点的综合失效影响分配重要度值,这使得FSCRank的排序效果显著提高。我们通过多组实验对FSCRank和两个对比算法在云应用可靠性优化上的性能进行了测试和比较分析,并对影响算法性能的多个因素进行了测试和分析。实验结果说明FSCRank适合用于对云应用系统的组件排序,并能有效提高云应用的可靠性。3.针对云应用任务复杂度和数据规模的不断增长的需求,提出了一种基于混合时空容错策略的工作流动态调度方法(DFTWS)。该方法包括三个阶段,分别为静态信息计算,资源预分配和在线调度。在静态信息计算节点,DFTWS计算每个任务的时间属性,并识别工作流的关键路径。在资源预分配阶段,DFTWS根据每个任务的弹性执行时间和预算额度为其选择合适的虚拟机类型。在线调度阶段,DFTWS会根据实际失效发生情况和任务属性作出实时容错调度决策,保证工作流的顺利执行。我们利用真实工作流模型对DFTWS进行测试和分析,并对DFTWS的性能影响因素进行了测试和分析。实验结果证明了DFTWS在高可靠和低成本间取得了平衡。4.针对云环境中失效发生事件频发的问题,本文设计了一个考虑监测信息的云应用可靠性动态自适应优化框架。该框架基于现有云平台监控技术,重点研究和开发云应用测试方法,提出了一个面向微服务云应用的非侵入式测试框架。该优化框架既可以收集云应用运行信息,也可以测试和采集云应用在特定场景下的运行信息。两部分运行信息互为补充,为云应用应用场景分析和可靠性优化策略选择提供更全面的依据,从而实现对云应用可靠性的优化。