pouch

作者: 高山之水 | 来源:发表于2018-01-23 23:18 被阅读0次

    2017.11.19正式开源pouch

    pouch 基于Apache2.0协议的容器技术

    介绍:
    Pouch 是一个轻量级容器技术
    特点:快速高效、可移植性高、资源占用少

    github:pouch

    11年基于Linux内核上的namespace、cgroup等技术开始成熟、阿里Pouch基于LXC研发的第一代容器t4
    13年Docker横空出世、解决了行业多年的"软件封装"问题、阿里吸收其经验、打磨Pouch

    Pouch规模
    2017 年双 11,巨额交易 1682 亿背后,Pouch 在"超级工程"中做到了:
    1、100% 的在线业务 Pouch 化
    2、容器规模达到百万级

    阿里集团内部,Pouch 的日常服务已经覆盖绝大部分的事业部,
    覆盖的业务场景包括:电商、广告、搜索等;
    覆盖技术栈包括:电商应用、数据库、大数据、流计算等;
    覆盖编程语言:Java、C++、NodeJS 等。
    

    Pouch 技术优势
    1、隔离性强

    众所周知,行业中的容器方案大多基于 Linux 内核提供的 cgroup 和 namespace 来实现隔离,然后这样的轻量级方案存在弊端:
    
    .容器间,容器与宿主间,共享同一个内核;
    .内核实现的隔离资源,维度不足。
    
    面对如此的内核现状,阿里巴巴采取了三个方面的工作,来解决容器的安全问题:
    
    用户态增强容器的隔离维度,比如网络带宽、磁盘使用量等;
    给内核提交 patch,修复容器的资源可见性问题,cgroup 方面的 bug;
    实现基于 Hypervisor 的容器,通过创建新内核来实现容器隔离。
    

    2、P2P镜像分发

    点对点分发镜像【相对于中央仓库分发镜像、极大见笑了中央仓库的网络压力】
    
    工具:阿里巴巴镜像分发工具"蜻蜓"
    

    蜻蜓地址

    Pouch 与蜻蜓的使用架构图

    3、富容器技术

     Pouch 技术可以说对业务没有任何的侵入性,也正是因为这一点在集团内部做到 100% 容器化。
    这样的容器技术,被无数阿里人称为“富容器”。
    
    “富容器”技术的实现,主要是为了在 Linux 内核上创建一个与虚拟机体验完全一致的容器。
    如此一来,比一般容器要功能强大,内部有完整的 init 进程,以及业务应用需要的任何服务,当然这也印证了 Pouch 为什么可以做到对应用没有“侵入性”。
    技术的实现过程中,Pouch 需要将容器的执行入口定义为 systemd,而在内核态,Pouch 引入了 cgroup namespace 这一最新的内核 patch,满足 systemd 在富容器模式的隔离性。
    从企业运维流程来看,富容器同样优势明显。
    它可以在应用的 Entrypoint 启动之前做一些事情,比如统一要做一些安全相关的事情,运维相关的 agent 拉起。
    这些需要统一做的事情,倘若放到用户的启动脚本,或镜像中就对用户的应用诞生了侵入性,而富容器可以透明的处理掉这些事情。
    

    4、内核兼容性
    可以理解为兼容老版本linux内核系统

    Pouch生态架构

    Pouch 的生态架构可以从两个方面来看:第一,如何对接容器编排系统;第二,如何加强容器运行时。

    Pouch内部系统架构

    传统的容器引擎方案相似,Pouch 也呈现出 C/S 的软件架构。命令行 CLI 层面,可以同时支持 Pouch CLI 以及 Docker CLI。对接容器 runtime,Pouch 内部通过 container client 通过 gRPC 调用 containerd。Pouch Daemon 的内部采取组件化的设计理念,抽离出相应的 System Manager、Container Manager、Image Manager、Network Manager、Volume Manager 提供统一化的对象管理方案。

    以上内容来自 infoq阿里关于pouch介绍

    相关文章

      网友评论

          本文标题:pouch

          本文链接:https://www.haomeiwen.com/subject/frneaxtx.html