pouch

2018-01-23  本文已影响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介绍

上一篇 下一篇

猜你喜欢

热点阅读