开辟Docker的分支:分离的讨论现在已经摆上台面

本文讲的是开辟Docker的分支:分离的讨论现在已经摆上台面【编者的话】在Docker公司将Docker Swarm纳入Docker 1.12后,容器生态内的厂商对Docker代码缺乏稳定的不满开始发酵,讨论从小范围扩大到公共论坛,是否到了开辟Docker新分支的时候了?请看Kubernetes布道师Kelsey Hightower和Docker首席技术官Solomon Hykes及其他厂商对OCI和runtime的看法。

一些Docker生态系统的厂商和最终用户正在进行一场从Docker分割出去的讨论。在表达各种对Docker公司在Docker Engine上管理的失望背后,这些技术专家和公司实际上是在探索如何解决在支持企业级的Dokcer部署中遇到的各种烦心问题。

在诸多正在考虑的选项之中,包括可能会将整个开源的Docker Engine一起重起炉灶(fork)。据一些接近讨论的人士透露,相关代表来自Red Hat、Google、CoreOS、华为和两家大量使用Docker的客户。

Red Hat和CoreOS的发言人否认了一切与Docker讨论相关的消息。Docker公司拒绝公开就此置评。Google和华为截止发文前也尚未回应置评请求。

这是对容器生态系统影响深远的时刻。这些技术专家和公司没有任何一方希望采取fork的方式,但同时他们也对Docker的代码库稳定性不足表达了各自的忧虑,因为这可能会在生产环境下基于Docker构建附加服务或者向客户提供技术支持的时候招致各种麻烦。

除此之外,许多参与分割讨论的公司也是使用容器技术来建立大规模分布式系统的公司,Docker公司最近推出的内置编排功能可能会被这些公司视为自家编排产品的威胁,这些产品都几乎基于Google的Kubernetes。

“目前发生的这件事情,如果处理不得当,会让让容器生态系统支零破碎,并导致单个的容器再无可能适配多种目标运行时环境。” 一位Hacker News上的观察员指出

推文内容:Docker的话题仍然在StackOverflow中处于领先地位,但是Kubernetes的势头正在上升。

一个企业级的问题?

一个我们在Docker生态系统中反复听到的问题是,Docker采取的激进发布安计划时常让第三方的系统提供者和他们的客户发生不快。

“Docker不断地破坏向后的兼容性”,RackN公司的CEO、Kubernetes社区的带头人 Rob Hirschfeld(兼TNS不定时的贡献者)说。他此前并未参与此次分割相关讨论中。RackN公司的应用程序生命周期管理平台同时使用和提供了Docker组件,因此对后端的改动将会对其支持的客户的业务造成影响。

“Docker将Docker Engine用作一个产品,而不是一个社区用来构建自有服务的组件”,Hirschfeld指责道。这种基于产品的策略意味着使用者被逼着在Docker发布新的革新特性或者合并新的组件(如Swarm)的时候去修复其破坏的向后兼容的问题。

“尽管我们会使用这些发布的特性,然而这些改动会带来一系列与稳定性、版本、迁移和后端兼容相关的问题”。

在上周之前,对Docker的不满议论主要都是私下的。但是现在这种议论进入到公共论坛。如谷歌Kubernetes布道师 Craig McLuckie 的推特博文:

推文 1:Docker公司必须要容许革新和获利(它们已经做出了了不起的事情),但现在我们需要无聊的内核基础设施。
推文 2:现在真的是容器运行时和格式的标准超越(现有)OCI的范围出现的时候了。

在Docker公司最近将Docker Swarm纳入Docker1.12 后,长期压抑的沮丧达到了顶点。有了Swarm后,Docker Engine能让用户使用熟悉的用来操作Docker的命令行结构和语法,无需借助额外的软件即可管理复杂的容器应用。Docker的编排功能是可选的,他们必须由用户激活 。然而选择不启用可能会在之后带来向后向兼容性问题。

在此之前这些人们熟知编排功能只能通过第三方工具,如Google开源的Kubernetes,来提供。

尽管Google不直接销售企业级容器编排软件,但它的开源编排系统的的确确让谷歌很快驶上了Google Cloud Platform容器服务的高速公路。其他公司,如CoreOS和Apprenda, 也提供Kubernetes的商业支持版本。华为也正在推出了基于Kubernetes的容器引擎

因此,毫不奇怪,所有这些各方都希望将话题从容器转移到容器编排上。

Bob Wise,一名三星SDS云工程师,作为该公司参与Kubernetes的主导人员,也曾同样呼吁Docker放慢其容器创新的脚步。三星电子正在收购Joyent的过程中,该公司同样提供了基于云的容器相关支持服务。

“如果你的团队在深度使用Kubernetes、Mesos或Cloud Foundry,你需要一个稳定、简单、无奇的容器实现方案,仅有最少的基本功能,由社区协商镜像的创建、命名和发布”,Wise在上周的一篇博客中写道。“你需要使用每个都人都在使用的一个相同的、简单的、无奇的容器实现方案。作为一个社区,我们需要放缓对于基本构建组件的变更速度。唯有稳定性才能让构建其上的系统蓬勃发展。”

推文:@countspongebob 来到了这个话题中,也想谈点Docker稳定性的事情。到了fork的时候了吗?

同样,Apcera技术产品经理 Phillip Tribble在个人博客中,以一种极具外交辞令的口吻,让Docker不要再把其新推出的特性鼓吹成一个完工的企业级可用的产品。“让互联网或者大会充斥着营销材料,宣扬各种令人振奋的新特性,但实际上却不如所说那样能用,不是一个明智的做法” ,Tribble写道。

Apcera的商业模式一部分是基于提供Docker容器的支持上的。

Tribble的帖子引发了其他人在Hacker News上表达他们的Docker经历,包括一些新版本带来的让人伤心的bug。一位读者谈到一天中启动70,000到90,000个容器,约9%左右的会因为“各种Docker bug”遇到问题,这个比例最近的一次升级后下降到了4%。

但也有一些人在称赞Docker的稳定性,“我们一直在生产中使用Docker约3年了,还没有发现什么大的问题”,另一外读者评论说,“它将一些很炫的Linux内核特性用简洁的方式封装了起来”。

事实上,Docker确实有大量的支持者认为Docker公司的软件是稳定的。Docker工程师在吹捧公司技术实力雄厚方面自然也是比谁都快的。

不管什么情况,Docker似乎不会照顾它的潜在对手的心情而起意扼杀自己的革新的,就像最近一次在Twitter上Google Kubernetes布道师 Kelsey Hightower 和Docker的CTO Solomon Hykes 关于OCI镜像和运行时标准应该在基于Docker容器栈的标准化过程中扮演何种角色的争执中所显示的那样。

OCI成立的要旨中提供的正是Wise等人呼吁的:无奇的、标准化的容器技术。

然而,Hykes提出OCI对第三方提供商有用性程度的质疑。Hykes指出,那些声称不需要Docker Daemon(假设通过runC运行时引擎) 也可以提供对Docker容器完全支持的提供商,事实上仅仅Docker提供了拥有Docker 90%特性的“伪支持”。

“我知道的情况是,Docker发展很快,因此那些声称‘支持Docker’的产品都是谎言”,Hykes写到。而在另一篇推文中,Hykes甚至有些事态,屑称OCI镜像是“伪标准”。

推文:看看这些讨论,告诉我凭什么Docker值得作为一个开放容器标准的管家?

该问题因为Docker公司拥有Docker商标而进一步加剧。商标意味着当公司使用未经Docker社区许可的补丁、代码或软件包的时候时可能面临法律责任。这种情况下,一个公司可能因为补丁尚未经过Docker公司许可,抑或尚未被合并到项目中,而无法为客户客户提供技术支持。

其结局:第三方供应商被迫忍受Docker公司任何对该开源项目作出的决定,在问题出现的时候等待Docker公司的补丁。最好的结果与Docker达成某种协议,保证提供稳定的发行版本。

推文:某一方的特性是另一方的累赘 > 容器运行时的fork(Docker的!)正在酝酿,因为生态系统需要一个稳定且轻型的构建块。

另外一个存在的问题是,哪些功能应该有Docker来实现,哪些功能应该由底层操作系统或者技术栈中的其他组件来负责处理。

另外一家使用Docke,但是也与Docker竞争,的公司是Red Hat。在今年的很多会议上,包括 LinuxCon North America 2016,红帽工程师 Dan Walsh 描述说红帽成陷入了困境,一方面客户越来越多的使用 systemd 来初始化Linux系统,而另一方面Docker似乎不愿使用systemd,取而代之使用Docker Daemon来提供初始化,服务激活,安全和容器日志的相关功能。

“在过去的三年里,我们一直试图使systemd和Docker更好的整合,而我却发现,两个领导人都非常强烈的坚持己见”,Walsh说,两个领导人指 Hykes和systemd的创造者,现Red Hat员工 - [Lennart Poettering](Lennart Poettering)。

“所以,当机器的时候,谁来负责启动系统服务,是systemd还是Docker?”Walsh问到。一个拙劣的系统实现可能会导致systemd和Docker互相冲突。

红帽为自己的客户维护着自己的Docker版本分支,包含着的补丁Docker有一天可能会合并,或者永远不。

可选的方案

时间会告诉我们这些非正式言论是否会带来更合作化的努力。有的方案是能满足各方的。例如,可能会有一个通过OCI管理的、稳定Docker镜像格式版本和运行时环境。这将使生态系统的参与者拥有稳定的组件,同时让Docker继续开发自己的Docker Engine。如果是这种情形,OCI运行时将是一个Docker的分支。

但如果生态系统内的这些公司想和Docker完全分割开来,那就意味一个完完整整的fork,使用不同的名称,并需要一个新的小组来管理所有事宜。如CoreOS, 提供了另一种“无守护进程”的容器技术,叫rkt,然而它目前尚未得到市场足够多的目光,至少没法和Docker的成功相比。

这是一片新的领地,充分显示出市场的快速成熟速度和利益博弈。从政治和经济的观点来探究容器生态系统,对于帮助理解社区的技术方向是比较重要的。特别是当你面对Docker和容器生态系统深深的裂痕,以及目前这场围绕着是否需要创建一个Docker的分支的大讨论的时候,这一点尤其适用。如果没有其他可选方案,可能只有创建一个稳定的替代品作为标准内核,然后在其基础上构建能保证终端用户稳定的服务和产品。

译者注:OCI是个专门创建容器格式与运行时相关开放性行业标准的开放治理组织。与OCI关联的项目可以在https://github.com/opencontainers找到。

原文链接:A Docker Fork: Talk of a Split Is Now on the Table(翻译:chenhl,校对:钟最龙)

原文发布时间为:2016-09-01

本文作者:钟最龙

原文标题:开辟Docker的分支:分离的讨论现在已经摆上台面

时间: 2024-09-20 07:58:44

开辟Docker的分支:分离的讨论现在已经摆上台面的相关文章

讨论几个优化上的常见误解

摘要: 搜索引擎优化进入中国也不过短短的5年的时间,而优化人员却是一直在激增的,优化人员的质量参差不齐,有的人看过个关于优化的教程说自己已经懂真正的优化,甚至有的大言不惭敢 搜索引擎优化进入中国也不过短短的5年的时间,而优化人员却是一直在激增的,优化人员的质量参差不齐,有的人看过个关于优化的教程说自己已经懂真正的优化,甚至有的大言不惭敢接单子,当他们发现以他们的能力无法做好关键词的排名就死马当活马医使用黑帽方法.而有的人则真正的系统学习过优化,他们才是真材实料的优化人员. 同时我们可以发现目前并

nginx 配合 spring boot - docker 做动静分离和跨域

spring boot . spring cloud . docker 我就呵呵了,反正很火 spring boot 主要做微服务,一般仅仅提供服务,逼格说的简单点,提供一个http请求,返回json. docker ,呵呵 方便部署,持续交互, 云计算-也即是 虚拟化技术和资源管理,,逼格再低点-运维, html 页面 不像以前那样 放在web工程目录下, 现在要做的是 图有点丑,没关系 nginx配置 #user nobody; worker_processes 1; #error_log

EzVPN客户端在服务器侧没有配置隧道分离的情况下如何直接上公网

一.概述: 很多情况下,为了安全,避免一边拨入公司内网,又同时上互联网的情况,EzVPN服务端没有配置隧道分离.但是如果想要这样,而总部侧的设备又没有权限修改怎么办?下面分别以EzVPN硬件客户端和软件客户端来介绍. 测试拓扑参照:http://333234.blog.51cto.com/323234/1202965. 其实EzVPN客户端的解决方法跟上面的类似,但是EzVPN软件客户端通过删除默认路由的方式没有测试成功,PPTP VPN和L2TP IpSEC VPN这种方式是可行的. 二.Ez

《Docker技术入门与实战》——3.7 上传镜像

3.7 上传镜像 可以使用docker push命令上传镜像到仓库,默认上传到DockerHub官方仓库(需要登录),命令格式为docker push NAME[:TAG].用户在DockerHub网站注册后,即可上传自制的镜像.例如用户user上传本地的test:latest镜像,可以先添加新的标签user/test:latest,然后用docker push命令上传镜像: $ sudo docker tag test:latest user/test:latest $ sudo docker

Docker打包 Asp.Net Core应用,在CentOS上运行

本文主要介绍下运用docker虚拟技术打包Asp.net core应用. Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们可以轻松实现应用的持续集成部署,一次打包,到处运行. 开篇借用百科上对docker的介绍.     Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 方便大家学习: http://www

CAP理论十二年回顾:"规则"变了

CAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性.可用性.分区容忍性三要素中的两个要素.但是通过显式处理分区情形,系统设计师可以做到优化数据一致性和可用性,进而取得三者之间的平衡. 自打引入CAP理论的十几年里,设计师和研究者已经以它为理论基础探索了各式各样新颖的分布式系统,甚至到了滥用的程度.NoSQL运动也将CAP理论当作对抗传统关系型数据库的依据. CAP理论主张任何基于网络的数据共享系统,都最多只能拥有以下三条中的两条: 数据一致性(C),等同于所有节点访问同一份最新的数

4G、5G难配物联网 hold不住也得死撑

物联网是决定未来经济的关键技术.无所不在的万物互联终将成为现实.然而,无所不在的物联网覆盖,并没有那么容易实现. ZigBee/6LoWPAN或IEEE 802.11ah等物联网技术,仅适于短距离物联网覆盖,且无法保证可靠的网络协调控制.卫星通信的成本让人望而却步,能耗高,且无法抵达室内. 时代在召唤,蜂窝网络潇洒走过来. 物联网娇躯一震,勾搭上了已覆盖全球的2/3/4G网络,跟他在一起可以至少少奋斗十年. 2/3/4G网络就像富一代,成熟稳重,温柔多金,还特有安全感.它网络覆盖广,分布密集,有

《非诚勿扰》冠名费直冲千万相亲节目成印钞机

"现在的相亲节目就像大家突然发现了一座大金矿,江苏是用卡车在运,湖南是用麻布袋在装,浙江是用手在抓. 相亲节目引起的不止是一场收视的混战,还是一个时代的终结." 4.23是<非诚勿扰>近日公布的收视率.或许一个尚不足5的数字并没有什么特别的意思,然而这个数字却令全国数十家省级卫视"急红了双眼",因为统计显示,"4.23"已经成为5年来中国省级卫视节目收视率的最高点,<快乐大本营><我爱记歌词>等老牌综艺栏目都纷

腾讯:不附庸运营商 用作自己

自从工信部的<移动通信转售业务试点方案>颁布,引起了很多人的讨论和联想,在不少人看来,现在在移动互联网上游刃有余的腾讯如果成为虚拟运营商,无异于如虎添翼,将会在互联网和通信市场上掀起新的变局. 然而让大多数人惊讶的是,与投入极高热情参与此事的国美.苏宁等传统零售商相比,腾讯却显得格外低调.沉默,它究竟是如何打算的呢?虚拟运营商对腾讯究竟意味着什么呢?下面就和大家一起探讨一下. 虚拟运营商的得与失 从政策层面而言,<方案>预示通信行业的开放,这既是一个机遇,但同时这又像一套无形的枷锁