《Docker应该标准化吗?——其他项目之鉴》要点:
本文介绍了Docker应该标准化吗?——其他项目之鉴,希望对您有用。如果有疑问,可以联系我们。
最近已经有了很多关于Docker和标准化的文章.那么,如果采用(比如说来自OCI的)开放式的容器规范,Docker究竟是得是失呢?接下来我们要看看类似的开源项目的一些经验教训.简而言之,关于Docker标准化的争论如下:Docker目前正在使用自己原生的架构来开发其容器平台,但是,有些人希望Docker采用开放的,社区定义的标准,例如由开放式容器计划(OpenContainerInitiative即OCI)定义的标准.
一个开放的标准将有助于确保Docker与第三方容器工具的兼容性,但是它也可能会减缓Docker本身开发的速度,因为潜在的,Docker可能不得不等待其他组织定义标准,然后才能改变自己的技术.在某些方面,标准还可能会削弱Docker在竞争平台上的竞争优势.那么,通过采用开放式容器标准,Docker是得到了更多,还是损失了更多呢?这里有一些来自其他大型开源项目的经验教训,它们也遇到了同样的问题.
Linux从一开始就是基于POSIX标准构建的,该标准定义了一个类Unix操作系统应该如何工作.很难想象如果LinusTorvalds(译者注:Linux创始人)选择基于自己的想法而不是POSIX来设计内核,Linux能在其发布的头几年就获得巨大的成功.
当然,Linux与Docker不同的是,Linux是在模拟一个在其出现之前已经存在很久的产品Unix,潜在的Linux用户已经知道他们想要的Linux的外观和感觉是怎样的,因为他们希望它是一个免费的Unix实现.相比之下,Docker正在定义应用程序容器可以和应该是什么样的.
经验:如果你的开源项目试图模拟已存在的闭源平台,那么标准很重要,但如果你正在创造一个全新的平台,那么标准可能没有多大关系.Docker属于第二种.
开源ApacheWeb服务器HTTPD诞生于20世纪90年代中期,它是一组管理员对于一个在国家超级计算应用中心(NationalCenterforSupercomputingApplications)开发的不同的Web服务器的扩展.
HTTPD在万维网的历史中出现得很早,当时,关于网页的标准(例如HTTP标准)应该如何设计和服务尚未完全定义.因此,Apache开发人员可以自由地设计他们的服务器,以任何他们想要的方式工作.换句话说,对于Apache情况,压根儿没有真正需要遵循的标准.
经验:如果没有标准,你就可以做你想要的,但是,对于Docker而言,标准的确存在.所以,Docker并不能使用Apache的借口(而不去遵循标准).
GNOME是基于Linux的计算机的桌面环境,它是作为另一个桌面环境KDE的替代品而创建的.KDE依赖于由名为TrollTech的公司授权的软件库.GNOME开发人员担心TrollTech可能会停止在GNU/Linux系统上提供库,使KDE处于停滞.因此,他们将GNOME构建为一个不依赖于任何专有库的开放平台.
虽然KDE从来没有消失,但GNOME发展的很顺利.(在此期间,Troll技术问题得到了解决,很久以前KDE就停止了对专有库的依赖.在今天,它仍然在被广泛使用.)
经验:GNOMEvs.TrollTech案例与开放标准的辩论不是一回事.但类似的经验也适用.GNOME桌面环境的蓬勃发展,主要是因为它承诺了一个开放的KDE替代,不受专有依赖性的影响.人们关心这一点.
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.vephp.com/jiaocheng/4392.html