近年来,随着高端技术崭露头角并逐渐取代传统系统,虚拟化需求也迅速扩大。同时,云计算的崛起在这项横扫业界的技术发展过程中起到了催化剂的作用。
容器化已经不是一个新概念,通过将应用程序封装在容器自有的操作环境中,使其独立于平台,同时更加方便使用。目前,所有顶尖的云计算厂商,如AWS,Google,Microsoft等等,都在提供云容器服务。
在Docker推出开源容器技术,并有AWS向其提供容器服务支持之后,容器化技术的发展势头更劲。这项技术能带来的优势如下:
平台独立性
: 如将一个应用的所有依赖都封装到容器中,该应用便可以在各种机器上自由运行。这体现了该技术的高度可移植性。
不再需要重写代码
: 站在公司的角度,容器化带来的最大优势是开发者们不再需要一遍又一遍地为每个不同的平台重写代码。这样一来,不仅省时省钱,还省力。
最适合内部应用的开发
: 应用的容器化最适合公司内部应用的开发。它提供了一个和生产环境一致的开发环境,防止由于环境差异导致的功能失效,而且有助于移植应用。
划分任意应用
: 不仅有助于划分内部应用,针对任何种类的应用,容器化都能成功将其划分到微服务中,提高整个系统的速度。
轻量
: 在移植应用的过程中,不需要将操作环境也封装进容器中同步移植,因此,容器是相当轻量的。容器中只有应用,使其更加简洁轻量。
上面对容器化的描述听起来跟虚拟化是不是挺像的?确实,这个概念就是从虚拟化发展过来的,但两者之间还是存在着一些区别的。下面我们来对两者做个比较:
应用抽象
|
硬件抽象
|
虚拟操作系统
|
虚拟硬盘
|
所有容器共享同一个底层操作系统
|
每个虚拟机都有自己的硬件、应用和操作系统
|
在主机操作系统运行
|
在裸机系统的管理程序上运行
|
开销较小
|
开销较大
|
既然虚拟化是机器的抽象,你也可以将容器看做一种升级版虚拟机。