论文部分内容阅读
云计算作为一种新兴的基于网络的计算方式,受到学术界和产业界的关注。云计算平台将大量计算资源和存储资源连接起来,形成虚拟资源池,根据部署在平台上应用程序的需要提供这些资源,使应用程序能够应对负载的波动,这种按需使用资源的能力称为弹性。与可扩展性不同的是,弹性除了要求应用程序能够利用更多的资源以应对额外的负载之外,还要求随着负载的减轻应用程序主动释放或由云平台回收已分配的资源。支持具有弹性的应用程序是云计算区别于网格计算等其他分布式计算的重要特征。学术界和产业界从平台的角度出发对弹性做了大量研究。云计算的本质是分布式计算,增加分布式系统的资源有两种途径:升级(Scale Up)和扩展(Scale Out)。升级是指提升系统内节点的运算能力,扩展是指增加系统内节点的数量。不同类型的云平台根据平台特点提供不同的弹性支撑机制。PaaS(Platform as a Service)平台通过虚拟化技术对应用屏蔽基础设施的分布式拓扑结构,以升级的方式支撑应用弹性;IaaS(Infrastructure as a Service)平台提供创建和回收虚拟机实例的接口,以扩建的方式支撑应用弹性。对于部署在云平台的应用而言,如果自身没有支持动态扩展的机制,是无法利用平台提供的资源实现弹性的。本文面向应用本身的弹性需求展开研究,提出以扩展方式实现弹性支撑机制的基本研究方法:首先,根据共性的业务逻辑对应用分类,分析这一类应用的技术特点;其次,总结技术特点,从分布式应用架构的角度提出适合实现此类应用弹性的应用模式(Pattern);再次,根据应用模式设计平台的架构,以及平台为帮助应用实践这种模式提供的弹性支撑库(Elasticity Supporting Library);最后,实现平台和弹性支撑库,通过实验验证平台的支撑能力和模式的有效性。本文采取上述基本研究方法,分别对Web1.0和Web2.0这两类应用程序进行了案例分析。Web1.0应用的内容(Content)由服务器端生成,适合采用页面静态化思想生成静态页面。本文提出Publisher-Distributor-Author(PDA)模式,把页面的生成与发布放在不同节点上进行,采用调整Publisher节点数量的方式应对负载的波动。根据PDA模式实现了Web1.0平台以及弹性支撑库,进行了相关实验验证PDA模式的有效性。Web2.0应用的特征是用户生成内容(User Generated Content),本文提出Processor-State-Persistent(PSP)模式,把执行运算、管理会话(Session)数据和管理持久数据分散在不同节点上进行,根据负载的具体情况调整相应类型节点的数量。根据PSP模式实现Web2.0平台以及弹性支撑库,在此过程中改进了一致性哈希算法,对不同类型节点分别进行了实验,验证了PSP模式的有效性。通过上述案例分析,在给出具体解决方案的同时证实了基本研究方法对实践的指导意义。