阿里 Pouch 技术开源负责人孙宏亮:如何在复杂场景下实现容器技术的大规模运用

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 在双十一买买买的狂潮之后,阿里选择第一时间将 Pouch 技术开源,无疑,这又一次吸引无数开发者的目光。 借助阿里将自研容器技术 Pouch 开源的契机,采访了阿里 Pouch 技术的开源负责人孙宏亮。

日前,在2017中国开源年会上,阿里巴巴自研容器技术 Pouch 宣布开源。在双十一买买买的狂潮之后,阿里选择第一时间将 Pouch 技术开源,无疑,这又一次吸引无数开发者的目光。

借助阿里将自研容器技术 Pouch 开源的契机,记者第一时间采访到阿里 Pouch 技术的开源负责人孙宏亮。他目前负责的内容包含制定 Pouch 技术发展方向,管理与维护 Pouch 开源社区。记者与他详细探讨了 Pouch 技术的一些关键细节,此次开源的缘由以及下一步的展望。

fd5ddb2bb2e70518fecc494a74149705943ea68a

图:阿里 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 的前身。

97e3bd396bda9a471a948de589d24034c6bc7b00

图:Pouch演进之路

T4 是阿里在2011年的时候基于 Linux Container(LXC) 开发的容器技术基础设施。相比 Docker 的模式和理念,T4 其实更适合阿里内部的运维现状。T4 是从阿里内部的资源管理和日常运维中土生土长出来的产品,在诞生的第一天就针对内部基础设施、运维工具甚至是运维习惯做了很多特别的设计。因此,在阿里内部进行容器管理时,融合 T4 的 Pouch 技术比起 Docker 来说会稍胜一筹。

958b59d6d9fcbf30d0002e1f5bbbb154244f7e28

图:阿里 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。”

166be69c85a788d00c60733143db00531dd0c2b0

图:阿里 Pouch 开源计划

阿里巴巴对于 Pouch 的开源计划则主要围绕3点:拥抱生态,解耦依赖与合作共建。

  • 拥抱生态是什么意思呢? 他们希望以标准化的方式去做一些事情,比如,会去兼容 CNCF 基金会中的 kubernetes 生态,会在网络、存储等标准化作出贡献。
  • 解耦依赖,主要是指的阿里容器技术目前和内部系统仍有部分耦合,他们会解耦依赖,抽离通用部分,贡献给社区。
  • 合作共建指的是他们会和合作伙伴一起共建生态,目前他们已经和浙江大学SEL实验室等合作伙伴达成协议,共同参与开源生态,打造国际知名容器品牌。

目前,阿里巴巴容器技术 Pouch 团队有十余位工程师在做开源建设。在采访中,孙宏亮也提到,他们在持续招聘容器领域的专家,预计到18年上半年,这个团队会扩大至20人以上。

Pouch 的代码也已经在 GitHub 公开,大家可以到这个地址查看详情:

https://github.com/alibaba/pouch

原文发布时间为:2017-11-25

本文作者:Non

本文来自云栖社区合作伙伴“AI科技评论”,了解相关信息可以关注“AI科技评论”。



目录
相关文章
|
11天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
31 3
|
13天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
29 1
|
8天前
|
人工智能 Kubernetes Cloud Native
荣获2024年AI Cloud Native典型案例,阿里云容器产品技术能力获认可
2024全球数字经济大会云·AI·计算创新发展大会,阿里云容器服务团队携手客户,荣获“2024年AI Cloud Native典型案例”。
|
13天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
47 0
|
14天前
|
存储 Cloud Native 开发者
深入探索容器化技术——Docker的实战应用
深入探索容器化技术——Docker的实战应用
33 0
|
3天前
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
118 77
|
11天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
4天前
|
数据建模 应用服务中间件 nginx
docker替换宿主与容器的映射端口和文件路径
通过正确配置 Docker 的端口和文件路径映射,可以有效地管理容器化应用程序,确保其高效运行和数据持久性。在生产环境中,动态替换映射配置有助于灵活应对各种需求变化。以上方法和步骤提供了一种可靠且易于操作的方案,帮助您轻松管理 Docker 容器的端口和路径映射。
29 3
|
11天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
41 7
|
11天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
23 5