自从容器技术出现以后,关于容器将取代虚拟机的言论就时有出现, 并且愈演愈烈。有人说容器技术就是下一场革命,未来会将虚拟机替换掉,但是从调研来看,事实并非如此。容器和虚拟机就像照镜子一样,各有所长,互利互补。
容器虚拟化以“补”代“搏”
容器的兴起是建立在云计算之上的。云计算之大火之后,企业要做的第一件事就是将自己的业务部署在云上,容器给企业带来希望。企业用户第一次发现,有一种标准化的方式能够将自己的业务通过应用的方式存到云上,以前用户是直接面对资源,现在是面对应用,应用会产生资源,所以说容器对于企业用户而言有非常大的吸引力。
除此之外,在运行的过程中,虚拟化相对来说肯定是有损耗,但是因其有一个完整的硬件隔离,所以隔离性跟安全性都非常好。容器和虚拟化相比是几乎没什么损耗,轻量,这一点对于很多企业服务来讲,会比虚拟化更有优势。但是容器也有缺点就是不能有太多依赖。
和虚拟机相比,容器拥有更高的资源使用效率,因为它并不需要为每个应用分配单独的操作系统——实例规模更小、创建和迁移速度也更快。这意味相比于虚拟机,单个操作系统能够承载更多的容器。
云提供商十分热衷于容器技术,因为在相同的硬件设备当中,可以部署数量更多的容器实例。然而,单个操作系统有可能引起影响所有相关实例的单点事故。比如,恶意软件或者主机操作系统崩溃可能禁用或者影响所有容器。此外,容器易于迁移,但是只能被迁移到具有兼容操作系统内核的其他服务器当中,这样会无形中减少迁移选择。
从实际应用的角度来说,容器和虚拟机可以在同一个数据中心当中共存,因此这两种技术被认为是互补的,为现代应用程序架构师和数据中心管理员添加了可用工具集,通过不同的方式为应用负载提供支持。
那么,企业究竟该如何在容器和虚拟机间做出抉择呢?Scott S. Lowe,一位虚拟机设计工程师,建议考察“工作范围”。换言之,如果需要运行单个应用程序的多个副本,比如MySQL, 那么需要的就是容器。如果需要灵活地运行多个复杂应用,那么需要的就是虚拟机。