容器的发展之路
物理机的时代⌗
曾经大部分应用都是运行在物理服务器上的。为了避免冲突,在一台服务器上尽可能的运行少量的应用,甚至只有一个应用。在那个时代,经常会出现这样的一幕:当业务扩展需要增加一个新的应用时,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,让我们拭目以待。
I hope this is helpful, Happy hacking…