容器技术的发展历史
近些年来,容器技术迅速席卷全球,颠覆了应用的开发、交付和运行模式,在云计算、互联网等领域得到了广泛应用。其实,容器技术在约二十年前就出现了,但直到2013年Docker推出之后才遍地开花,其中有偶然因素,也有大环境造就的必然因素。这里回顾一下容器的产生的背景和发展过程。 在电子计算机刚出现时,由于硬件成本高昂,人们试图寻找能够多用户共享计算资源的方式,以提高资源利用率和降低成本。在20世纪60年代,基于硬件技术的主机虚拟化技术出现了。一台物理主机可以被划分为若干个小的机器,每个机器的硬件互不共享,并可以安装各自的操作系统来使用。20世纪90年代后期,X86架构的硬件虚拟化技术逐渐兴起,可在同一台物理机上隔离多个操作系统实例,带来了很多的优点,目前绝大多数的数据中心都采用了硬件虚拟化技术。 虽然硬件虚拟化提供了分隔资源的能力,但是采用虚拟机方式隔离应用程序时,效率往往较低,毕竟还要在每个虚拟机中安装或复制一个操作系统实例,然后把应用部署到其中。因此人们探索出一种更轻量的方案——操作系统虚拟化,使面向应用的管理更便捷。所谓操作系统虚拟化,就是由操作系统创建虚拟的系统环境,使应用感知不到其他应用的存在,仿佛在独自占有全部的系统资源,从而实现应用隔离的目的。在这种方式中不需要虚拟机,也能够实现应用彼此隔离,由于应用是共享同一个操作系统实例的,因此比虚拟机更节省资源,性能更好。操作系统虚拟化在不少系统里面也被称为容器(Container),下面也会以容器来指代操作系统虚拟化。 操作系统虚拟化最早出现在2000年,FreeBSD 4.0推出了Jail。Jail加强和改进了用于文件系统隔离的chroot环境。到了2004年,Sun公司发布了Solaris 10的Containers,包括Zones和Resource management两部分。Zones实现了命名空间隔离和安全访问控制,Resource management实现了资源分配控制。2007年,Control Groups(简称cgroups)进入Linux内核,可以限定和隔离一组进程所使用的资源(包括CPU、内存、I/O和网络等)。 2013年,Docker公司发布Docker开源项目,提供了一系列简便的工具链来使用容器。毫不夸张地说,Docker公司率先点燃了容器技术的火焰,拉开了云原生应用变革的帷幕,促进容器生态圈一日千里地发展。截至2020年,Docker Hub中的镜像累计下载了1300亿次,用户创建了约600万个容器镜像库。从这些数据可以看到,用户正在以惊人的速度从传统模式切换到基于容器的应用发布和运维模式。 2015年,OCI(Open Container Initiative)作为Linux基金会项目成立,旨在推动开源技术社区制定容器镜像和运行时规范,使不同厂家的容器解决方案具备互操作能力。同年还成立了CNCF,目的是促进容器技术在云原生领域的应用,降低用户开发云原生应用的门槛。创始会员包括谷歌、红帽、Docker、VMware等多家公司和组织。 CNCF成立之初只有一个开源项目,就是后来大名鼎鼎的Kubernetes。Kubernetes是一个容器应用的编排工具,最早由谷歌的团队研发,后来开源并捐赠给了CNCF成为种子项目。由于Kubernetes是厂家中立的开源项目,开源后得到了社区用户和开发者的广泛参与和支持。到了2018年,Kubernetes已成为容器编排领域事实上的标准,并成为首个CNCF的毕业(graduated)项目。2020年8月,CNCF旗下的开源项目增加到了63个,包括原创于中国的Harbor等项目。
从容器的发展历程可以看到,容器在出现的早期并没有得到人们的广泛关注,主要原因是当时开放的云计算环境还没出现或者未成为主流。2010年之后,随着IaaS、PaaS和SaaS等云平台逐渐成熟,用户对云端应用开发、部署和运维的效率不断重视,重新发掘了容器的价值,最终促成了容器技术的盛行。 (编辑:我爱制作网_潮州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |