论文部分内容阅读
随着移动互联网的飞速发展,激增的Web服务业务量,使得Web应用的架构从简单的单机环境演变为复杂的集群环境。如何高效地部署、管理、运维Web集群成为热点问题。通过云计算和虚拟化技术,将Web应用托管于云计算平台上,使得上述问题得以改善。然而基于虚拟机构建的云计算平台面临着虚拟化开销大、部署时间较长、可扩展性差等问题。以Docker为代表的容器技术实现了更轻量级的虚拟化,可以实现应用的快速构建、部署和扩展。因此,设计一个基于Docker的Web应用托管平台具有重要的现实意义。现有的基于Docker的云平台只提供了简单的部署功能,未能对云平台上运行的容器应用进行有效的监测和管理;在部署的时候未能考虑到多维资源的均衡使用,易出现资源碎片;并且现有平台未能实现应用的动态弹性伸缩的功能。本文的主要贡献主要包括以下几个方面: 1.设计并实现了容器应用的监测和管理功能。本文对Docker的资源隔离和限制原理进行了详细分析,实现了容器应用的信息采集、分析功能,为监测和管理奠定基础。通过交互式Web管理界面的形式提供了丰富的监测和管理功能,包括容器应用实时性能数据监测、容器应用生命周期管理、容器应用远程登录等。同时提供应用和服务扩展接口,使得用户可以灵活扩展。 2.设计并实现了应用均衡部署功能。提出了一种容器应用的均衡部署策略,该策略充分考虑了多维资源的均衡使用,避免了资源碎片的出现,从而提高了整个集群的平均资源利用率(整个集群的平均资源利用率提升了5%-10%)。 3.设计并实现了应用的动态弹性伸缩功能。提出了一种基于预测的弹性伸缩策略,使得云平台自适应地根据应用的负载信息,动态地调整集群中应用实例的数量,节约了资源。通过分布式仓库记录弹性伸缩过程中应用的变化信息,保证了应用快速且透明地接入到平台中。