CloudFoundry-Warden VS Docker
前言
Warden是现在被广泛使用在CloudFoundry中的容器技术,在CloudFoundry V3版本中,Warden被重新命名为Garden,我们暂且还是以V2版本做分析。众所周知,Docker是另一个易于使用并且很有效率的容器,所以现在CloudFoundry也支持Docker容器技术。接下来,我们就谈一谈Warden与Docker的相似和不同。
相似
都是依赖宿主操作系统内核的轻量级Container
目前,PaaS越来越多的与Container联系在一起,Container的高资源利用率恰恰是PaaS需要的。Warden和Docker都是Container的一种,相对于虚拟机来说,Container占用的资源比较少,都是依赖于宿主操作系统内核的轻量级容器。依赖于宿主机的操作系统,这样做会带来哪些好处呢?
一个虚拟机占用的资源比一个Container占用的资源多十几倍。设想一下,在一台物理机上启动100台虚拟机会是非常困难的,因为有硬件资源的限制,会出现CPU、硬盘或者内存资源用尽的情况。当相比之下,在一台物理机上启动100个Container是很简单的,因为作为Container,他会依赖于宿主机操作系统内核,仅仅在资源和服务等方面进行了隔离,启动快速,占用资源很少。现在很多大型的互联网公司都在大量地使用Container技术,Facebook一台虚机都没有,因为这些互联网公司要求充分利用计算资源。虚机起码还要再跑一个Guest系统,太耗资源。同时,在这些大公司内部并没有很多操作系统,集群只有一种操作系统,甚至连版本号都是固定的。因此,不需要虚机的异构操作系统特性。另外,在操作系统上还有Runtime Library,Container不需要重复加载,极大的节省内存占用。