曾经制霸开源界的Docker缘何遭遇没落?

曾经制霸开源界的Docker缘何遭遇没落?
2023年08月01日 10:50 IT水哥

Docker曾经作为开源界的一颗璀璨新星,是计算机科学虚拟化进程中的重要产物,也是那个时候“容器”的代名词。Docker原本有着巨大的商业潜力,然而与许多“草根”出身的开源商业项目一样,Docker也没能冲破自身的局限,正如本身的Logo一样,这条载着集装箱的鲸鱼逐渐在激烈的商业潮流中潜下海面。

Docker的创始人Solomon Hykes 2008年在巴黎创立了 DotCloud,这就是Docker前身。DotCloud最初被设计成一个供开发人员轻松构建和发布应用程序的PaaS项目,而我们众所周知的 Docker是在2013年3月的Python编程大会PyCon上首次演示的。

从2013年起,Docker开源项目迅速壮大,一开始就吸引了成千上万的用户,高调与风险资本的提供者微软、亚马逊、IBM、甲骨文等建立和合作伙伴关系,并从Benchmark、Coatue Management、高盛和Greylock Partners等公司筹集了近 3 亿美元。在2015年以10亿美元的“独角兽”估值完成9500万美元的大型D轮融资后,Docker因业界的热炒抵达了其商业资本期的巅峰。

然而与许多致力于商业化的开源软件公司一样,Docker很难找到有利可图的商业模式,而此前的投资者也逐渐退出项目。这种情况在开源界似乎是一个魔咒。

在2014年和2015年,Docker公司分别用一部分风险投资收购了Koality和Tutum项目,同时也推出了Docker企业支持计划的首个迭代版本。这些投资催生出了Docker Hub等产品,最终又成就了Docker Enterprise。然而,这些产品一直未能真正受到企业客户的认可,他们通常乐于同更成熟合作伙伴携手(比如谷歌),或者是自主构建而非直接采购解决方案。因此,Docker只能继续努力开发客户真正想要的产品组合。

而在2016年,Kubernetes(K8s)宣布加入Cloud Native Computing Foundation(CNCF),成为第一个CNCF托管项目。它希望利用基金会的力量联合其他厂商来打倒Docker。在2016年底的1.5版本中,Kubernetes引入了新的接口标准:Container Runtime Interface(CRI)。CRI使用ProtoBuffer和gPRC来指定kubelet应该如何调用容器运行时来管理容器和镜像。虽然此时Docker已经非常成熟,市场的惯性也非常强,但Kubernetes通过引入CRI,实现了对其他容器技术(如rkt、kata等)的访问,可以随时“踢开”Docker。

面对Kubernetes的挑战,Docker采取了“断臂求生”的策略,推动自身重构,将原有单一架构的Docker Engine拆分成多个模块,其中Docker daemon部分捐赠给CNCF,形成了containerd。作为CNCF的托管项目,containerd必须符合CRI标准。但是由于很多原因,Docker只是containerd在Docker Engine中调用,对外的接口保持不变,也就是说不兼容CRI。

Docker的败局在于,在2015年同时退出企业版和社区版的时候,由于管理层的分歧导致反应速度太慢,被拆分的业务没有及时获取相应资源;面对有着巨大后台背景的k8s袭来之时,Docker团队拒绝接受前者作为新兴的容器编排工具而继续推进自己专有的编排器Docker Swarm,然后后者推出时机已晚,且在容器编排之战中败给了k8s。

直到2018年裂痕开始显现,Docker公司努力在日益不满的开源社区、强势的合作伙伴和尝试在业务中运行容器的要求苛刻的企业客户之间找到一条可行的道路,种种尝试均以失败告终。不久之后,创始人Hykes辞去了公司的日常职务,失落的离开了。他在一篇个人博客中回忆:“作为创始人,我的心情是相当复杂的。当你创建一家公司时,你的工作就是确保有一天即使没有你,它也能取得成功。期望这一天最终到来,庆祝的过程可能会苦乐参半。对于创始人而言,放弃毕生的事业绝非易事。”

此后Docker公司更换了新的掌舵者,断臂求生之后,Docker企业部分业务被出售给了Mirantis(它是另一个知名开源项目OpenStack的拥有者);Docker Enterprise被并入Mirantis Kubernetes Engine。

文/水哥

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部