设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 手机 公司
当前位置: 首页 > 云计算 > 正文

大厂都在玩的容器技术究竟是什么

发布时间:2022-09-01 11:09 所属栏目:124 来源:互联网
导读:为什么需要容器技术 在正式介绍容器技术之前,我们先来看下软件领域为什么需要容器技术。一项新技术的出现必定是为了解决当下遇到的的某项具体问题或者说更加提高现有软件运行效率。那我们就来分析下在容器技术出现之前,软件领域到底面临什么样的问题。 在
  为什么需要容器技术
  在正式介绍容器技术之前,我们先来看下软件领域为什么需要容器技术。一项新技术的出现必定是为了解决当下遇到的的某项具体问题或者说更加提高现有软件运行效率。那我们就来分析下在容器技术出现之前,软件领域到底面临什么样的问题。
 
  在很早很早之前,我们部署服务的时候都是直接部署在硬件服务器上。如果想对服务进行扩容就必须要购买服务器,然后再进行应用部署以及各种繁琐的环境配置以及服务配置,由于都是人工操作所以还特别容易出错,不仅浪费时间还很费程序猿,因此服务部署以及迁移效率都极其低下。在互联网早期的时候,用户数以及业务体量还不是很大,人工操作还能够应付得过来。但是随着业务规模不断发展以及用户数的爆炸式增长,这样的软件服务生产方式已经无法满足业务高速发展的需求。将应用服务直接部署在服务器上主要有以下三方面的问题。

  通过部署多个实例,我们实现了服务之间的进程隔离,而进程拥有独立的地址空间以及执行上下文。但是这种形式的独立管理并不是真正意义上的独立管理,为什么这么说呢?因为实际上他们还是共用服务器的CPU、内存以及IO等服务器资源。假如Tomcat1占用的服务器内存高了,那么剩余给Tomcat2以及Tomcat2的内存分配就相对来说会变少。因此实际上这三个Tomcat虽然是独立的进程但还是会相互影响。有没有办法实现真正的独立,不互相影响呢?
 
  实际上实现资源隔离的方式大概有硬件虚拟化、OS虚拟化以及硬件分区等几种常见的实现方式。但是综合各方面的表现,OS虚拟化成为后期容器技术发展的主流技术路线。
 
  容器技术的解决的核心问题就是实现软件运行时的环境隔离,通过容器构建一个标准的、无差别的服务运行环境,这样就不会因为环境、配置以及依赖等原因造成的在这台服务器上好好的,在另外的一台服务器上又不行的尴尬问题。2008年的时候,通过将Cgroups的资源管理能力以及Namespace的视图隔离能力糅合在一起,Linux Container被合入linux主线,Linux Container是Linux系统提供的容器技术,能提供轻量级的虚拟化能力,能够进行隔离进程和资源。通过这种OS层面的虚拟化技术,实际上也就是解决了容器的核心问题即为如何实现服务运行时的隔离。因此可以说Linux Container是后期实现Docker技术的基础。
 
  在2013年,Docker正式发布。Docker是基于Linux Container技术发展而来的,它的口号是:“Build,Ship and Run Any App,Anywhere”。Docker创新构建了一种全新的软件打包、软件分发以及软件运行的机制,它通过容器镜像,将应用服务本身以及运行服务所需要的环境、配置、资源文件以及依赖库等都打包成一个唯一版本的软件镜像包。往后在任何地方运行的服务都是基于这个软件镜像包来进行构建和运行的,真正解决了如何高效发布软件以及如何高效运行软件的两大核心问题。关于Docker,后面会有专门的文章进行介绍。 

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读