首页 运维干货Docker应该标准化吗?——其他项目之鉴

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

运维派隶属马哥教育旗下专业运维社区,是国内成立最早的IT运维技术社区,欢迎关注公众号:yunweipai
领取学习更多免费Linux云计算、Python、Docker、K8s教程关注公众号:马哥linux运维

Docker

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

标准程序?

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

Linux

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

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

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

ApacheHTTPD

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

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

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

GNOME

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

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

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

LibreOffice和OpenOffice

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

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

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

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

译/班利波

文章出处:Docker(dockerone)

本文链接:http://www.yunweipai.com/10172.html

网友评论comments

发表评论

邮箱地址不会被公开。

暂无评论

Copyright © 2012-2021 YUNWEIPAI.COM - 运维派 京ICP备16064699号-6
扫二维码
扫二维码
返回顶部