Docker 应该标准化吗?——其他项目之鉴

681 阅读5分钟
原文链接: mp.weixin.qq.com


最近已经有了很多关于Docker和标准化的文章。那么,如果采用(比如说来自OCI的)开放式的容器规范,Docker究竟是得是失呢?接下来我们要看看类似的开源项目的一些经验教训。简而言之,关于Docker标准化的争论如下:Docker目前正在使用自己原生的架构来开发其容器平台,但是,有些人希望Docker采用开放的,社区定义的标准,例如由开放式容器计划(Open Container Initiative即OCI)定义的标准。

标准程序?

一个开放的标准将有助于确保Docker与第三方容器工具的兼容性,但是它也可能会减缓Docker本身开发的速度,因为潜在的,Docker可能不得不等待其他组织定义标准,然后才能改变自己的技术。在某些方面,标准还可能会削弱Docker在竞争平台上的竞争优势。那么,通过采用开放式容器标准,Docker是得到了更多,还是损失了更多呢?这里有一些来自其他大型开源项目的经验教训,它们也遇到了同样的问题。

Linux

Linux从一开始就是基于POSIX标准构建的,该标准定义了一个类Unix操作系统应该如何工作。很难想象如果Linus Torvalds(译者注:Linux创始人)选择基于自己的想法而不是POSIX来设计内核,Linux能在其发布的头几年就获得巨大的成功。

当然,Linux与Docker不同的是,Linux是在模拟一个在其出现之前已经存在很久的产品Unix,潜在的Linux用户已经知道他们想要的Linux的外观和感觉是怎样的,因为他们希望它是一个免费的Unix实现。相比之下,Docker正在定义应用程序容器可以和应该是什么样的。

经验:如果你的开源项目试图模拟已存在的闭源平台,那么标准很重要,但如果你正在创造一个全新的平台,那么标准可能没有多大关系。Docker属于第二种。

Apache HTTPD

查看图片

开源Apache Web服务器HTTPD诞生于20世纪90年代中期,它是一组管理员对于一个在国家超级计算应用中心(National Center for Supercomputing Applications)开发的不同的Web服务器的扩展。

HTTPD在万维网的历史中出现得很早,当时,关于网页的标准(例如HTTP标准)应该如何设计和服务尚未完全定义。 因此,Apache开发人员可以自由地设计他们的服务器,以任何他们想要的方式工作。 换句话说,对于Apache情况,压根儿没有真正需要遵循的标准。

经验:如果没有标准,你就可以做你想要的,但是,对于Docker而言,标准的确存在。所以,Docker并不能使用Apache的借口(而不去遵循标准)。

GNOME

查看图片

GNOME是基于Linux的计算机的桌面环境,它是作为另一个桌面环境KDE的替代品而创建的。KDE依赖于由名为Troll Tech的公司授权的软件库。 GNOME开发人员担心Troll Tech可能会停止在GNU / Linux系统上提供库,使KDE处于停滞。因此,他们将GNOME构建为一个不依赖于任何专有库的开放平台。

虽然KDE从来没有消失,但GNOME发展的很顺利。(在此期间,Troll技术问题得到了解决,很久以前KDE就停止了对专有库的依赖。在今天,它仍然在被广泛使用。)

经验:GNOME vs. Troll Tech案例与开放标准的辩论不是一回事。但类似的经验也适用。GNOME桌面环境的蓬勃发展,主要是因为它承诺了一个开放的KDE替代,不受专有依赖性的影响。人们关心这一点。

LibreOffice 和 OpenOffice

查看图片

LibreOffice及其前身,OpenOffice(LibreOffice实际上是OpenOffice的一个分支,但我不打算详述这一点)都是文字处理器程序。两者都提供对Microsoft Office的本地文件格式的支持。然而,默认情况下,他们使用开放文档格式(ODF)来读取和写入文件。

这意味着LibreOffice和OpenOffice同时支持专有标准和开放标准。这种方法可能是他们成功的关键。就我个人而言,如果不支持Microsoft Office格式,我将无法使用LibreOffice。因为,当与只有Microsoft Office的人协作时,我需要读写那些Office文档。但我自己使用基于ODF的文档。

经验:Docker可以考虑通过支持开放容器标准并同时保留自己的框架来模拟LibreOffice和OpenOffice。提供两个版本的Docker不是不可能的。这样,Docker可以为那些关心这个问题(开放标准)的人提供一个符合标准的版本,同时还可以提供一个包含其他附加功能的单独的Docker版本。

这种方法实际上可以很好地适用于社区和Docker。它一方面允许社区获得一个基于标准的Docker,同时允许Docker保持其想要的竞争力。

推荐一个培训

查看图片

【Docker 实战培训 | 广州站】培训内容涉及Docker、容器存储、容器网络、监控、DevOps、微服务,老司机带你去学习,点击下面图片即可查看具体培训内容。

查看图片


点击阅读原文链接可直接报名。