码头工人的基本概念和框架

  
  

文章首发于微信公众号《程序员果果》
地址:https://mp.weixin.qq.com/s/8VM-c_UkxYcVw2Itiapw4w

     

一、码头工人简介

  

什么是容器?

  
      <李>一种虚拟化的方案李   <李>操作系统级别的虚拟化李   <李>只能运行相同或相似的内核操作系统李   <李>依赖于Linux内核特性:名称空间和Cgroups(对照组)   
  

容器技术有哪些优点吗?

  

码头工人的基本概念和框架

  

从图中我们很容器看的出,容器技术资源占用比较少,由于虚拟机需要模拟硬件的行为,对杯和内存的损耗比较大。所以同样配置的服务器,容器技术就有以下优点:

  
      <李>资源占用比较少李   <李> CPU/内存消耗低   
  

那既然容器有这些优点,为什么直到码头工人的出现,才真正的被关注呢?一个重要原因就是容器技术的复杂性。容器本身就很复杂,他依赖于Linux内核的很多特性,而且他不易安装,也不易于管理和实现自动化。而码头工人就是为了改变这一切而产生的。

  

什么是码头工人?

  
      <李>将应用自动部署到容器的开源引擎李   <李>去语言实现的开源项目,诞生于2013年初,最初发起者是dotCloud公司   
  

码头工人的特点

  
      <李> <>强提供简单轻量的建模方式:简单,码头工人非常容器上的手,用户只需要几分钟,就能把自己的项目码头工人化。   <李> <>强职责的逻辑分离:使用码头工人,开发人员只需要关心容器中运行的程序,运维人员只需要关心如何管理容器;码头工人设计的目的就是加强开发人员写代码的环境与应用程序要部署的生成环境的一致性。   <李> <>强快速高效的开发生命周期:码头工人的目标之一是缩短代码开发到测试到部署上线的运行周期,让应用程序具备可移植性,在容器中开发,以容器的形式交付和分发,这样开发,测试,生产,都使用相同的环境,这样也就避免了额外的调试和部署上的开销,这样就能有效的缩短产品的上线周期。   <李> <>强鼓励使用面向服务的架构:码头工人推荐单个容器只运行一个应用程序或者进程,这样就形成了一个分布式的应用程序模型,在这种模式下应用程序或服务都可以表述为一系列内部互联的容器,从而使分布式部署应用程序扩展或调试都变得非常简单。这就像我们开发中常用的思想,高内聚,低耦合,单一任务。这样就能避免在同一服务器上部署不同服务时,可能带来的服务之间相互影响。这样服务运行中出现问题时,也比较容易定位问题的所在。   
  

码头工人的使用场景

  
      <李>   
        <李> <强>使用码头工人容器开发,测试,部署服务:因为码头工人本身非常轻量化,所以本地开发人员可以构建、运行并分享码头工人容器。容器可以在开发环境中创建,然后再提交到测试,最终进入生产环境。   
      李   <李>      <李> <>强创建隔离的运行环境:在很多企业应用中,同一服务的不同版本可能服务于不同的用户,那么使用码头工人非常容易创建不同的生成环境来运行不同的服务。      李   <李>      <李> <>强搭建测试环境:由于码头工人的轻量化,所以开发者很容易利用码头工人在本地搭建测试环境,用来测试程序在不用系统下的兼容性,甚至搭建集群的部署测试。      李   <李>      <李> <>强构建多用户的平台即服务(PaaS)基础设施      李   <李>      <李> <>强提供软件即服务(SaaS)应用程序      李   <李>      <李> <>强高性能,超大规模的宿主机部署      李   
  

二,码头工人的基本组成

  

码头工人包含了一下几个重要主要部分:

  
      <李>码头工人客户客户端李   <李>码头工人守护进程守护进程李   <李>码头工人形象镜像李   <李>码头工人集装箱容器李   <李>码头工人注册仓库李   
  

码头工人客户端/守护进程

  

码头工人的基本概念和框架