论文部分内容阅读
在近几年中,“云计算”一次越来越火热,越来越多的计算开始加入云,因其配置的动态可扩展性和资源的虚拟化,能够带来诸多的好处,众多互联网公司纷纷将企业应用上云,云计算也将成为互联网公司角逐的战场。以发展的眼光来看计算机领域,未来用户所需要的计算与网络等环境一定是极其复杂的,因此我们必须要能更高效的对此进行有效的管理。这样开发者就不必为复杂运行环境而发愁,可以将100%的精力放到最核心的业务逻辑上。除此之外,我们希望在这个基础上为用户提供一个持续集成开发环境,在为用户提供服务器与计算环境地基础上,还希望能够让用户方便快捷地进行资源与环境的申请以及对容器等对象地管理。在几年前,还有许多的云计算平台还是基于虚拟机运行的,虽然相对于物理机的部署方式已经有了很大的提升,但是还是在资源利用率以及性能等方面存在一些问题。大数据计算框架是云平台上非常典型的一种应用场景,基于这种云,大数据框架在处理海量数据的时候,因为其资源率用率和性能掣肘,不能很好的应对这种处理环境。所以它并不是交付应用程序最有效的方式。Docker是容器引擎,具有轻量级及其更好的计算性能,更适用于微服务,同时对资源隔离和控制也更高效等优点,因此Docker在HPC和云计算领域具有很好的应用前景。既然Docker具有以上的优点,完全可以使用Docker作为底层来完全替代掉虚拟机,这样就可以实现高效的虚拟化,并且在应用的启停上取得进步,在此基础上如果能够资源的再分配,并且能够进行有效的容器编排,就可以实现一个基于Docker的分布式的可以进行资源调度的容器集群管理系统。本文主要实现了一个基于Docker的分布式容器编排和部署系统,只有两个核心组成部分,部署简单,且可任意扩展。提供了不同资源维度的调度,同时也负责编排容器,实现了三种高效的容器分配算法,使其能够高效透明的进行容器的部署和编排行为,并且开发了web API,为用户提供接口进行访问,这样即使用户不了解内部具体实现细节,也可以方便快捷地实现相关操作。在此基础上,通过上层支撑组件统一开发工作流,降低运维复杂度,提供了集开发、部署、运维于一身的持续集成开发环境,对于寻求高效运维方案的组织和个人开发者而言更加友善。本质上来说提供了和k8s/swarm一样的容器编排和调度能力,但是组件就2个,尽可能降低了学习、使用、部署的门槛,并且和mesos 比更加纯粹和简单,没那么繁复的结构,只需要一台机器和一个docker就可以了。