论文部分内容阅读
即付即得的云计算模型使得开发人员更愿意开发出一直运行在最佳资源配置的服务器下的应用程序。但是在通常的应用场景中,服务器可能会遇到各种不同情况下的负载需求,当服务器通过的流量增加时,负载增加,则需要添加更多的计算资源来处理负载;当服务器通过的流量减少时,负载减少,则需要减少未充分利用的计算资源。由于以上情况,云平台需要实现自动伸缩服务以保证应用程序的可靠运行,并且降低维护的成本。自动伸缩服务是云平台的一项关键服务,可以根据用户定义的、基于定时或告警的伸缩策略,自动实现实例的扩展或者收缩。自动伸缩服务在保证计算资源不过剩的情况下,又能保证性能,同时降低了维护的费用。通过对云计算的复杂应用场景的了解和分析,本文设计和实现了基于云平台的自动伸缩服务,并且提供其高可用性。在保证自动伸缩服务高可用的前提下,极大地提高资源利用率,减少不必要的资源浪费或资源过剩的情况,同时可以更加便捷地应对服务器万变的负载需求,提供高并发、高吞吐量、高性能、低延迟、高可用的优质服务。论文在阐述了云计算、虚拟化技术、云平台、自动伸缩服务等相关技术和理论的背景上,介绍了高可用自动伸缩服务相应的业务需求并进行了建模,完成了需求分析。在实现自动伸缩服务的过程中,首先进行了整体架构和数据库的的设计,然后按照模块划分分别对伸缩组管理、伸缩策略管理、启动配置管理和触发管理进行了设计和实现,其中触发管理详细介绍了采用定时任务框架Quartz和监控采集告警工具Ceilometer分别实现了定时触发策略执行和告警触发策略执行的过程;在实现自动伸缩服务的高可用性时,利用Nginx负载均衡进行了外部设计,并且在内部采用一致性哈希算法实现了集群活动列表的心跳检测、对宕机节点的任务进行转发和任务恢复,最终实现自动伸缩服务的高可用性。通过基于云平台的高可用自动伸缩服务的整体设计和实现,以及服务的功能测试和性能测试,表明系统可以显著提高服务器集群的性能和稳定性,验证了系统的可行性与有效性。