论文部分内容阅读
随着云计算技术的发展,越来越多的计算能力、存储能力等软件基础应用被迁移到云平台上。同时,越来越多的软件应用架设在云平台上,或者是依赖于云平台提供的服务支撑自身的计算。依赖于虚拟技术的成长,软件的运行环境可以不用再受限于特定的硬件环境,人们可以在各种终端上获得一致的软件体验。传统的软件架构设计需要考虑运行软件的硬件以及客户端环境,因受制于有限的硬件条件,往往没法对高扩展性进行尝试。当硬件条件得到提升时,传统软件往往需要进行整体重构才成合理的利用相应的硬件资源。通过云计算技术,我们可以抛开硬件的限制,在软件架构的设计上,更多的去考虑高可扩展性、提供可靠服务、提升软件体检。基于以上原因,我们希望提出一种云环境下的软件自动配置模型。云平台本身依赖于虚拟化技术和分布式计算技术,现有的研究大多数集中于这两个技术,而我们注意到云平台本身提供了很好的分布式计算研究环境,因此我们在云平台上尝试了分布式系统架构的研究。本文首先在云环境下,定义了软件的一般模型。在这个模型上,我们提出了一种通用自动配置软件模型。通过这个模型,软件的设计可以不用过多的运行环境和运行时所需要的资源,专注于特定业务领域的实现,提供软件的质量。GoogleApp Engine和Heroku当前主流的商用PaaS平台大多只是提供Web应用支持或是需要一定的运维支出,已有的PaaS平台不是我们所理想的模型。我们希望的模型是基于插件模式,通过扩展OVF将架构模型抽象,并且具有可扩展性。我们详细的描述了该模型下软件的整个生命周期,以及软件的自动配置策略。其次,我们希望我们的模型具备负载均衡的能力,各个组件具备自动扩张的功能。在云环境下,硬件资源的虚拟化,使得运行环境可以通过一个预先写好的配置文件自动的建立完成。当软件中一个组件的计算需求加大时,一个理论上的机器或者多个机器无法承受用户的请求时,我们让一个组件自主的繁衍,成为提供统一功能的多个组件,并且通过一个中间组织者,合理的处理计算请求。我们在这部分分析了已有的负载均衡算法,提出了一种适用于我们的模型的改进算法,依照该算饭,软件组件具备了自主扩展性。最后,通过Eucalyptus运行我们的仿真应用,验证了我们提出的云环境的通用的软件自动配置模型,并且验证了我们提出的负载均衡算法;通过CloudSim平台,对比了负载均衡算法,证明我们的算法在资源利用率方面更有优势。