美文网首页
Docker的二次死亡

Docker的二次死亡

作者: wu_sphinx | 来源:发表于2020-12-08 13:40 被阅读0次

似曾相识

时间并没有过去多久,但就是感觉Docker的历史很长的似的。我是在2015年夏天加入红帽的,也就是OpenShift 3.0 GA的那个夏天。这是一个了不起的事件,因为它标志着将平台重新设计到Kubernetes上,而Kubernetes本身也刚刚发布了v1.0版本(这与GKE正式GA的时间段相同,如果你能相信它有那么老的话)。和很多人一样,我对Kubernetes和OpenShift一无所知,对Docker也绝对不了解。一直到秋天,我对这三者才有了较深入的了解,很自然地在几个月后就爱上了这个生态系统。

第二年春天,是我第一次 "真正"接触Docker公司。我没有参加2016年的红帽峰会,但我清楚地记得,那一年是Docker真正第一次对红帽OpenShift做出对外对抗的举动,是在红帽自己的活动上。他们当时送出了以下衬衫。


image.png

简单总结一下,这是对红帽将补丁打到旧版本软件的模式的抗议(即所谓的"企业支持")。红帽当时发布的Docker版本只是略微落后于最新版,而Docker发布的是他们最新的版本。我不会去讨论为什么这很重要的细节,因为今天仍然有一个争论,那就是对一个组织来说,回溯补丁与保持在最新版本上哪个选择更优(后者在最近一段时间已经变得相当好)。这一点意义重大,因为直到那个时候,Docker还是OpenShift吹牛过程中不可或缺的一部分。我们把一个和另一个一起卖掉,我们大多数人甚至所有的人的基本假设是:Docker只是一个伟大的技术。回想起来,这应该是意料之中的,因为Docker公司开始商业化之后,突然间就不再只是一项伟大的技术了。

一切或许早已注定

早期的平台大战,我称之为平台大战,主要集中在OpenShift、Docker和Pivotal周围。Pivotal在早期就已经在企业组织中取得了重大进展,这是有充分理由的:平台体验相当不错。再加上Pivotal实验室,你就有了一些很好的机会。Docker是后起之秀。它是行业的宠儿,大放异彩,它拥有每个人都想要的技术,或者每个人都已经在使用的技术。Kubernetes当时还是个问号。我花了很多时间与组织讨论Kubernetes的核心和细节,以及为什么它很重要,或者更准确地说:为什么它应该对他们很重要。Docker敲打OpenShift的举动,迫使红帽开始关注Kubernetes和Linux,而不是其他任何东西。这招奏效了,业界也跟上了,于是Kubernetes就火了。

还以为自己处于行业宠儿状态的Docker迅速做出了反应: 推出了Docker Swarm,众所周知,它始终没有真正流行起来。Swarm最终淹没在整个行业对Kubernetes的关注中,这是它第一次死亡:它输掉了平台大战,成为云原生生态系统中的第一个牺牲品。2016年下半年,才是Kubernetes真正边缘化Swarm的时候。这一点,在第二年春天的DockerCon2017大会上,当演讲者在大舞台上展示Docker与Kubernetes的整合时,主题演讲演示就能证明。值得注意的是,那是DockerCon最后一次大放异彩的"大"事件。从那以后,就是Kubernetes/CNCF的展会的天下了。

Docker的技术债务

就在之前,Docker还是Kubernetes不可或缺的一部分,它们的关系就像下面描绘的那样:


image.png

在Kubernetes过去的19个版本中,一直使用的就是这个链条。所有的一切,仅仅是为了起动一个有容器的pod。Docker从必需品变成了技术债。而在这一切中,社区一直辛苦到现在,Docker将在下一个版本1.20中被废弃。社区已经(理所当然地)背负了多年Docker的技术债务,以确保在docker守护进程无处不在的情况下,行业有它所需要的最无缝的体验。以下是已经存在了一段时间,但将在1.20及以后正式进入启用的调用链:


image.png

这是一个伟大的简化,也是对一致性的回归。为了帮助大家直观地了解为什么要这样做,我鼓励大家把Docker看作是容器之上的一个平台抽象,而容器只是一些Linux结构的集合体。这种抽象的一部分涉及到docker平台和containerd之间的整合,后者今天可以说是作为最流行的容器运行时而存在。Docker从来不是运行时。Docker只是让containerd和其他Linux构造变得容易工作,这样容器管理就会变得轻而易举。而不是用十几行代码来创建和部署一个正在运行的容器,你需要的只是:

docker run

但和任何平台一样,这种便利性也伴随着大量的臃肿和技术债务。尤其是随着时间的推移。docker的移除和containerd的优化标志着云原生环境的一种文化转变。这些都不是要否定Docker公司。如果没有Docker公司,Kubernetes就不会有今天的成就。这是一个事实。Docker公司推动的技术和竞争是这个行业有史以来最棒的事情。现在,就将开源技术转化为盈利的商业模式而言,Docker Inc很可能会被研究成一个警示性的昙花一现。不过,我们还是要分清公司的贡献与商业模式。目前,Docker平台剩下的,是它在Kubernetes平台中的影子。尽管它确实在CI/CD生态系统内强势生存,而且,从表面上看,Dockerfile也是事实上的标准。这证明了Docker公司曾经拥有的力量,它的技术活得远远超过了公司的淘汰期,直到社区创新赶上了它。由于平台上多年来的臃肿,平台左侧的其他领域摆脱Docker守护进程的债务,其实只是时间问题。

虽然它曾有过一段神奇的历程,对行业产生过不可磨灭的影响,但实际上,Docker已经死了……

原文链接:https://www.tariqislam.com/posts/kubernetes-docker-dep/

参考:

相关文章

  • Docker的二次死亡

    似曾相识 时间并没有过去多久,但就是感觉Docker的历史很长的似的。我是在2015年夏天加入红帽的,也就是Ope...

  • Docker 的第二次死亡

    左耳朵耗子说过一段话,让人深以为然: 我清楚地看到了 Go 和 Docker 这两种技术的生态圈发展过程。让我收获...

  • 死亡

    死亡 莫非能够坚信 一次就够 看客的冷漠 让自己抚摸自己的尸体 愿意 二次死亡

  • 记一次docker安装

    总公司给了一个二次开发过的github扫描工具,同时附带安装手册,是使用的docker部署的,无奈对docker不...

  • Docker的二次开发:一个docker容器的守护程序

    介绍 docker的sdk的官方介绍的样例有go和Python的,并包含了如下对docker二次开发的几种简单的实...

  • docker初探

    docker最早是LXC(Linux Container)的二次封装发行,后来使用的是Libcontainer技术...

  • 「二次死亡」复活

    「 听说,人一出生脑袋里就会被植入芯片。 等你死了,你的意识与记忆都会存在那个小芯片中。 可...

  • 霍金离世首评之感

    有道是死亡分三次 第一次死亡是身体死了,再无医治或延续的可能,是生理上的死亡; 第二次死亡是葬礼追悼,再无社会关系...

  • 存在

    死亡该如何定义 有人说,人的死亡有两次 第一次是医学死亡 第二次是最后一个记得你的人死医学死亡。 你彻底的从这个世...

  • 死亡冥想录

    死亡冥想录 开端:人的一生会经历死亡三次。第一次是这个人的呼吸消逝,心跳停止,在生理上被宣告死亡;第二次死亡是在...

网友评论

      本文标题:Docker的二次死亡

      本文链接:https://www.haomeiwen.com/subject/aevfgktx.html