容器的发展之路

容器的发展之路

现在容器化无疑是一种潮流,也许你知道 Docker,也用过 Docker ,但你真的了解容器吗?

物理机的时代

曾经大部分应用都是运行在物理服务器上的。为了避免冲突,在一台服务器上尽可能的运行少量的应用,甚至只有一个应用。在那个时代,经常会出现这样的一幕:当业务扩展需要增加一个新的应用时,IT 部门就需要去采购一个新的服务器。因为即使老得服务器有闲置的资源也每人想去碰,谁也不知道再部署应用的时候有哪些坑。

随着业务的扩张,服务器的数量逐渐攀升,面临的问题就是资源的利用率低下。应用的环境部署非常耗时,曾经我在电信数据中心,看到运维工程师部署一台全新的服务器,整整用了两天时间才得以上线。

虚拟化的时代

为了解决上面的问题,VMware 公司给全世界带来了一个礼物——虚拟机(Virtual machine)。然后几乎一夜之间,世界变得更美好了!企业终于拥有了一种允许多个应用能够稳定、安全的同时运行在一个服务器中的技术。

这使得服务器的利用率得到了很大的提升,对于企业的 IT 人员来说,管理的方式更加简单。并且实现了故障虚拟机集群、故障迁移等功能。那时候甚至还流行所谓的桌面虚拟化,也就是将客户端连接到服务端的虚拟桌面系统,然后计算任务都由服务端完成。不得不说这种方式使得 IT 运维人员在管理企业系统时,效率提升了很多!

随着互联网的快速发展,用户爆发式的增长,我们所面临的问题就是性能、高可用等问题。虽然虚拟机的方式让系统和应用的部署效率提升了很多,但要想让一个应用在秒级的时间内完成部署并上线,对于虚拟机来说是不可能实现的。

容器化的时代

在虚拟机时代,实现了资源的高效利用,但是同时虚拟机也造成了对 CPU、内存、磁盘等资源的一种浪费。

Linux Container

近几年来,对容器发展影响比较大的技术包括内核命名空间(Kernel Namespace)控制组(Control Group)联合文件系统(Union File System),当然更少不了 Docker

容器编排领域之战

随着 Docker 的发展,以及越来愈多的企业将自己的业务运行到了容器上,就产生了新的问题,容器的编排。于是 Docker 的创始团队 开发了 Docker Swarm。随后 Google 开源了 Kubernetes,开源之后迅速成为容器编排领域的领头羊。

总结

从物理机到虚拟机,在到容器,对于运维管理人员来说,发生了翻天覆地的变化。行业内开始流行 DevOps,并且有人说这一趋势将弱化运维这一职业。未来将会怎样我们不得而知,下一个风口是 Cloud Native 还是 Serverless,让我们拭目以待。

评论