日前,在2017中国开源年会上,阿里巴巴自研容器技术 Pouch 宣布开源。在双十一买买买的狂潮之后,阿里选择第一时间将 Pouch 技术开源,无疑,这又一次吸引无数开发者的目光。
借助阿里将自研容器技术 Pouch 开源的契机,记者第一时间采访到阿里 Pouch 技术的开源负责人孙宏亮。他目前负责的内容包含制定 Pouch 技术发展方向,管理与维护 Pouch 开源社区。记者与他详细探讨了 Pouch 技术的一些关键细节,此次开源的缘由以及下一步的展望。
图:阿里 Pouch 技术开源负责人孙宏亮
阿里“云化战略”与容器技术
谈及 Pouch 技术之前,先来说说阿里在今年双十一的“云化战略”。云化技术战略是阿里集团基础设施近年来一直在努力的方向,这其中包括混合云、资源 Pouch 容器化、统一调度、存储计算分离和混部等多项技术的不断突破和创新。这一战略是支撑今年庞大支付量(3 分钟 GMV 超百亿,一小时 GMV 近 600 亿,零点后交易峰值 32.5 万笔/秒,支付峰值 25.6 万笔/秒)的基础,而 Pouch 容器技术在这一战略中占据了尤为重要的地位,它对业务没有任何侵入性,是实现便捷调度,统一基础运维资源接口的基础。
据悉,截止到今年双 11,阿里已在集团范围内实现在线服务全部 Pouch 容器化,内部已达到百万级容器部署规模。
作为一种轻量级、可移植、自包含的软件打包技术,容器技术可以使应用程序在几乎任何地方以相同的方式运行。开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。但目前来说,以 Docker 为主的容器技术占据了全球大部分市场,中国企业所占的市场份额少之又少。
自研 Pouch
配置快速简单、隔离性和安全性强等,这一系列技术特点让 Docker 成为容器界的网红。事实上,占据庞大市场份额的 Docker 不失为一个好选择,为何阿里会选择自研容器技术,AI科技评论向孙宏亮提出了这个疑问。
他表示,“阿里巴巴不能算是一家软件公司,而是一家技术驱动型公司。在业务的变化之下,需要技术能快速灵活的应对。社区版本的 Docker 的确是业界数一数二的软件,但是在面对一些场景时,难免存在开源软件的弊端。”
他也进一步说明——开源软件的发布周期是有计划的,很明确,但在面对快速变化的业务时,选择这类软件不是一个好方法。”技术在很多时候都是为了更好地支撑业务,本着业务第一的角度,始终要在‘follow开源软件’和‘自研软件自主可控’方面做出一个选择,阿里巴巴毫无意外选择了后者‘自研 Pouch 容器技术’。”
出于技术互补的考量,他们将 Docker 技术与阿里容器技术产品 T4 都做了一些修改整合后,将两者融合为了一个产品,这个产品在阿里内部被称为 AliDocker,也就是 Pouch 的前身。
图:Pouch演进之路
T4 是阿里在2011年的时候基于 Linux Container(LXC) 开发的容器技术基础设施。相比 Docker 的模式和理念,T4 其实更适合阿里内部的运维现状。T4 是从阿里内部的资源管理和日常运维中土生土长出来的产品,在诞生的第一天就针对内部基础设施、运维工具甚至是运维习惯做了很多特别的设计。因此,在阿里内部进行容器管理时,融合 T4 的 Pouch 技术比起 Docker 来说会稍胜一筹。
图:阿里 Pouch 技术历史
“Docker 诞生并走向流行的主要原因在于其提出的‘镜像技术’。Docker 对行业产生深远影响的是 Docker 镜像,这一点对于大型的互联网公司而言,相信肯定深有感触。因此,Docker 镜像流行开来之后,阿里巴巴没有理由不去接受这种给行业带来大价值的技术。”孙宏亮对AI科技评论说道,“这也就回到了‘阿里容器技术融合 Docker 镜像’的这一事实上。另外,一方面,Docker 社区中一些优秀的设计理念以及好的功能实现,我们也在 Pouch 版本中引入,保障 Pouch 和社区的同步。”
关键考虑
Pouch 容器技术的诞生过程中究竟有哪些棘手问题?孙宏亮对AI科技评论说道,“容器的运用不是一个难题,容器技术的大规模运用却是一个十分棘手的问题。要想实现大规模应用,容器技术必须要有能力覆盖足够多的场景。而场景复杂的环境中,安全、性能、稳定问题都会逐渐暴露出来。”
他具体解释了如下三个关键方面:安全、性能、稳定性。
- 安全方面,主要在 Pouch 技术的隔离功能上线这一节点。在这个节点上,阿里内核也提供了相应的隔离特性,Pouch 也实现了磁盘隔离、网络隔离等功能,从而初步具备大规模应用的能力。
- 性能方面,主要在 Pouch 支持P2P镜像分发这一节点。企业数据中心集群规模上升之后,容器镜像的传输效率、镜像仓库的网络能力很容易成为瓶颈,为此阿里巴巴研发了镜像分发工具“蜻蜓”,保障镜像分发效率,从而保障业务分发速度。
- 当安全与性能达标之后,随着规模的继续增长,Pouch 的稳定性提升就成为新的发展拐点。Pouch 在2017年双11的接近一年时间内,投入了巨大精力提升 Pouch 的稳定性,同时对稳定性的指标要求也是不断在提高。直到今年双11,1682亿交易额背后拥有百万级容器规模的支撑集群,也极大的验证了稳定性的战役取得了不小的成绩。
“数年如一日,长时间的技术锤炼与经验积累,铸就了阿里容器今天的成绩。阿里巴巴长时间踩过的坑、走过的弯路,让 Pouch 以一个务实者的姿态出现在如今的容器生态圈,阿里认为‘只有 Pouch 更懂应用,更贴近场景’。”孙宏亮由衷感慨。
他表示,他们目前依然处于攻克一些容器技术难题的过程中,这些技术难题,主要围绕在容器的安全隔离性方面。传统容器主要完全依赖于 Linux 内核的特性提供隔离,而他们认为这样的隔离方式存在缺陷。他进一步陈述到,
- 第一,我们 Pouch 团队积极与阿里内核团队展开研究合作,在内核架构层面提出创新,尝试让未来的内核技术解决容器技术的隔离性问题。
- 与此同时,容器技术在软硬件结合层面,依然有很多技术创新的可能性,在基于轻量级虚拟化技术的容器实现中,我们也在于虚拟化团队尝试为 Pouch 做硬件适配,保障提供基于 hypervisor 的隔离性,同时提供硬件加速提高效率。
拥抱开源生态
此次开源对阿里的战略意义何在?
孙宏亮对AI科技评论如此说道,“虽然目前容器生态中关于容器引擎方面,已经有了比较成熟的产品,但是阿里巴巴认为,现有的容器技术在技术落地方面仍然存在一些不足之处。比如,现有的容器技术,对企业的传统应用侵入性依然很高,这也就导致了企业在走向云化,拥抱 Cloud Native 方面存在现实阻力。而阿里内部之所以可以做到业务100%容器化,主要是借助阿里巴巴集团系统软件部对业务系统的了解,与容器技术 Pouch 的不断优化。而 Pouch 这方面的技术优势,对行业无疑是拥有难以估量的价值的,阿里巴巴希望通过开源的方式,把经验和心得与行业共享,真正让行业在云化道路上加快进程,早日拥抱 Cloud Native。”
图:阿里 Pouch 开源计划
阿里巴巴对于 Pouch 的开源计划则主要围绕3点:拥抱生态,解耦依赖与合作共建。
- 拥抱生态是什么意思呢? 他们希望以标准化的方式去做一些事情,比如,会去兼容 CNCF 基金会中的 kubernetes 生态,会在网络、存储等标准化作出贡献。
- 解耦依赖,主要是指的阿里容器技术目前和内部系统仍有部分耦合,他们会解耦依赖,抽离通用部分,贡献给社区。
- 合作共建指的是他们会和合作伙伴一起共建生态,目前他们已经和浙江大学SEL实验室等合作伙伴达成协议,共同参与开源生态,打造国际知名容器品牌。
目前,阿里巴巴容器技术 Pouch 团队有十余位工程师在做开源建设。在采访中,孙宏亮也提到,他们在持续招聘容器领域的专家,预计到18年上半年,这个团队会扩大至20人以上。
Pouch 的代码也已经在 GitHub 公开,大家可以到这个地址查看详情:
https://github.com/alibaba/pouch
原文发布时间为:2017-11-25
本文作者:Non
本文来自云栖社区合作伙伴“AI科技评论”,了解相关信息可以关注“AI科技评论”。