CNUTCon | 容器夜谈,以正视听

最近两天,中国比较有影响力的容器技术大会 CNUTCon 」在北京召开,全国接近千名 Docker 践行者,齐聚一堂,谈容器实践,聊容器未来。

WechatIMG1
容器夜聊专场

就在昨天晚上,主办方特意安排了一个名为《容器夜聊——聊聊趋势,谈谈未来》的节目,请来了容器生态中最火热的三家公司 Docker、CoreOS、Mesos 各自的负责人,带来对容器生态的理解。三位嘉宾分别是

  • Docker 公司 Swarm 项目的负责人 —— 陈东洛
  • CoreOS 分布式项目的主管暨 etcd 作者 —— 李响
  • Mesos 社区权威专家 —— Timothy Chen

说对这次嘉宾访谈不期待,那绝对是一件有违内心的事。谁不知道,国内容器圈,Swarm、Mesos、Kubernetes 竞争得不可开交?硅谷容器圈,也是暗流涌动,谁不知道 6 月份的 DockerCon Docker 出了 Swarmkit,一举指向编排;谁不知道 Mesos 出了个 unified containerizer,意欲在 Mesos 中替代 Docker 引擎;谁又不知道 CoreOS 的 rkt 和 Kubernetes 一向有意挑战 Docker ? 一时间,山雨欲来风满楼,谁都很难讲当时的访谈会发生什么!

1
主持人张磊来自浙江大学,可以说到场每位观众都为他捏把汗,如何让几位负责人聊得痛快,擦出火花,又不失场面,满足观众胃口,着实是个有挑战的事!

 

中外差异欲暖场

主持人的第一个问题,颇有暖场意味。让三位嘉宾各自介绍最近从事的工作。同时也让嘉宾谈及各自对“中国技术圈与硅谷差异”的看法。

说起差异,Tim 作为一位经常被请到大陆布道的 Mesos 专家,对国内的容器热度变化颇为震惊。一年前,他来大陆能感受技术社区处于起步阶段,参与者有限,企业级的受众面也处于初级阶段。而今年再来,市场的反馈特别热烈,从大会的安排也非常明显,如金融领域,互联网电商等,都已经在大规模地使用容器技术,这样的场景,甚至完全不亚于硅谷。

IT 技术圈,开源项目知名的华人本来就不多,而李响作为 etcd 项目的首席作者,绝属华人的骄傲。也许是个人经历,李响老师对于国内外开源的参与差异,感触颇深。他觉得国内优秀的工程师很多,然而开源项目的投入比较有限,比如在 etcd、docker、kubernetes 项目中都是鲜有华人,这对用户或者企业深入理解并掌握开源项目,其实是有悖的。

接过李响的话题,东洛倒是认为,开源领域,国内公司还是有不小的影响力,比如 DaoCloud 拥有 Docker Swarm 项目的 Maintainer,华为也有不小的团队贡献 Docker 项目,这都是国内容器生态生命力所在。另外,东洛也毫不吝惜对 Docker 火热程度的诧异。他以一个例子来说明问题:DockerCon 全球的会议,也就 4000 人参与,而 CNUTCon 这次会议就有接近 1000 人,这足以说明中国市场之大,以及 Docker 的影响力。

 

直奔主题探方向

暖场显然不能满足观众的预期,带着试探,主持人开始让嘉宾谈及各自的负责项目以及方向。

Docker : 便捷、开发运维一体化、工具链

docker

Docker 最新的举动决定是 Swarm in Docker,也就是现在的 Docker 1.12。外界对 Docker 官方 Swarmkit 的定位或疑惑,相信没有人比东洛来回答更合适。东洛是 Swarm 以及 SwarmKit 项目的负责人,他从 Docker 这家公司的发展演进切入,认为从 3 年前的完善 cgroup,到 2 年前的专注做标准化的镜像,完善容器运行和镜像管理之后,最近一年自然面临走上容器生产部署的问题。

原来面向容器的管理方式,解决了运维人员的压力,但离 end-user 的要求还有一些距离,目前 SwarmKit 的方式是走面向服务的理念,并且对于企业软件交付流程而言,非常友好。Docker 已经充分做到了工具的必需性,面对编排的时候,并不希望再把问题复杂化,而是希望以一种足够简洁,用户足以理解的方式,去实现端对端(end-to-end)的价值。也就是说,对于整个软件生命周期而言,工程师有能力在极简的环境下(也许就 3 台机器)完成开发、测试、运维等一体化的工作。简捷易用方面,东洛说从 Docker 早期的 Adoptor 来看,这个问题就比较清晰。那些早期有技术能力上 Docker 的公司,自己可以管好的时候,对编排并不迫切,功能强大但是复杂度太高的解决方案出来时,实际上落地用户并不领情。

提到目前生态中已有的容器编排系统,东洛坦言现有的编排系统和 Docker 并不是一个理想的融合方案。以前 Docker 的容器的确是面向运维工程师,而现在在容器的基础上,抽象出 Swarmkit 之后,立即开始为开发者服务,真正打造从开发到运维的一体化管理工具,充分践行与推动 DevOps。然而,涉及到是否向上拥抱类似 marathon 与 kubernetes 等 framework 时,docker 的思路很简洁,实现更是简约到极致。另外,从适应用户场景的角度来看,和 Mesos 以及 Kubernetes 相比各有侧重点。其实,往往 IT 需求,和大家看到的可能稍有差异。Docker 的价值体现,更多的会在 end-user 这一层面得到质的提高,面向业务的场景未来会是趋势。现在镜像已经完全可以做到业务封装,编排对业务而言并无直观感受,docker 真正可以在管理上做到标准化,做到一个完整的工具链。

Kubernetes : 合作紧密,发力 web 服务,属成长期

K&C

有意思的是,面对 etcd 作者,主持人有意而为之的,问到了 Swarm 弃用 etcd 的战略决策。对此,李响老师并未有丝毫愠色,彰显工程师的本色,与东洛会心一笑之后,道出其中缘由。其实,现状并非如外界所料,docker 与 etcd 一直有着紧密的合作。SwarmKit 核心的分布式一致性,正是通过 etcd 项目中的 raft 库来实现。技术的发展往往与场景分不开,docker 有需求,朝着一个方向做并非不妥。没有全部采纳 etcd,而是借用内部的 raft 实现,有利有弊。

不需要额外部署分布式的etcd集群,这也许是运维人员第一时间感受的红利。部署简易,不可小觑,这一点很实际。另外,CoreOS 也在主导尝试将etcd作为一个组件融入 Kubernetes 的体系,这一点部署的便利很明显。SwarmKit 出于性能的考虑,只采用 raft 也完全合理,毕竟“纯粹带来的高效”是没有理由拒绝的。对于弊端,李响老师也是直言不讳,缺少统一的运维接口会影响运维工程师的体验,当然这也是 etcd 本身的优势

谈及目前 CoreOS 与 Kubernetes 合作,李响似乎有说不完的话。Google 内部从 Borg 到现在开源的 Kubernetes,之前几乎尝试所有的 work load 在 Borg 上。而现在 Kubernetes 的最集中精力做的事情,是在运行用户的 website 应用上,并且应用需要是“无状态”的。比如,之前花了很多精力在设计一个部署 API 上,完成无状态应用的部署。就像刚才所说的,Kubernetes 主要集中在 Web 服务上,比如说 BigData 方面并没有很好的方案,未来一年有将大数据集成好的计划,比如,可以将 Cassandra 很好地运行起来。总体来说,Kubernetes 依然是一个比较年轻的项目,不过现在社区活跃度还挺好的

Mesos : 场景重要,变化需谨慎

mesos
作为生态中另一个活跃参与者,Tim 作为 Mesos 的技术专家,还是从背景出发,介绍了 Mesos 的渊源。Mesos 在 08 年从 Berkley 诞生之后,一直在朝一个极端的方向发展,那就是解决超大规模分布式系统的调度问题。在硅谷,大家都把 Mesos 定义为类似于 kernel 的东西,在面临是否加很多功能进入 Mesos 的时候,大家都非常谨慎,社区经常争吵是否加入这些新的 feature,最终的结果都是不加,这些功能都交给上层的框架(framework)来完成。用户有自己的需求,完全自己写,Twitter,Apple 公司也是这么做的。有趣的是,曾经因为 Mesos 添加几行代码的时候,引入一个 Bug,Twitter 生产环境宕机了十几分钟,所以内核级别的东西,后来就一直很少去动,是让用户到 framework 中加的思路。

令人印象深刻的是,Tim 聊到了 Mesos 使用场景的问题。他说,有人以为 200 台服务器是一个大型的集群了,但是 Mesos 天生的设计,就是为服务大于 1000 台服务器的集群,其次都需要一个强大的 IT 团队来支撑。另外,现实情况下,行业经受检验的场景都是大公司在利用 Mesos 做 BigData、数据分析等专职工作,比如 Apple 和 Twitter。这个有可能对于用户而言,原来会存在一些不一样的认识。同时,在设计方面,很有意思的是,多个系统都会找到相似的影子,比如 Kubernetes Controller 的设计越来越有 Mesos API 的风格。当然,从易用性的角度,这不是 Mesos 的初衷,用户友好是 Swarm 的设计理念。业务级需求需要通过 framework 来完成,这是用户需要完成的。

坊间,一直传闻容器生态极有可能分裂,容器标准的战役硝烟再起。如果了解 Mesos 支持新的容器引擎 Unified Containerizer 的话,那这样的言论甚嚣尘上比较合理。问及此事,Tim 神色轻松地笑了。当年,他刚参与 Mesos 的时候,是第一个要将 Docker 融入进 Mesos 的,这的确解决了不少问题,毕竟调度封装好的容器,管理方便得多。但是现在推出 Unified Containerizer 实在是属于 Mesos 的需求推动,Docker 的融入的确是利大于弊,但是发展会带来新的挑战,比如几千台服务器上运行的 Mesos 对于性能要求会很高,资源利用率也是如此,这是 Mesos 需要一个非常 pure 的容器引擎来专属完成调度单元的封装,Unified Containerizer 基于此诞生,并非外界猜测的那样,实属需求驱动,顺理成章。

主持人火候拿捏之准,不得不佩服;三位嘉宾的风度翩翩,印象尤为深刻。容器夜谈在非常轻松和谐的氛围来为国内的容器生态传递着来自硅谷的声音。虽然没有感受到 Docker、Kubernetes、Mesos 可能存在的火星撞地球场景,然而我相信对于每个参会者而言,绝对不会失望。最大的感触莫过于:三个领域的绝对权威,那种务实的态度,借助场景分析问题阐述理念的思路,尤为值得借鉴。

说是容器夜谈,以正视听,换言之,容器生态,以正视听,也丝毫不为过。与君共勉。

 

作者介绍:

孙宏亮,毕业于浙江大学,现为 DaoCloud 技术合伙人,在 DaoCloud 主要负责企业级容器云平台的研发工作。数年来一直从事云计算领域,是国内第一批研究和实践 Docker 的工程师,在国内起到重要的 Docker 技术布道作用。目前,拥有个人著作《Docker 源码分析》,同时是 Docker Swarm 项目的全球 Maintainer,并对 Docker 等其他项目有着大量的代码贡献。

点击这里,直接下载 CNUTCon 大会 PPT

 

Leave a Reply

Your email address will not be published. Required fields are marked *