Docker 员工自述:我们为什么“输”给了 Kubernetes?
作者 Scott Carey 译者 核子可乐,罗燕珊
Docker还活着。尽管它近两三年的境况并不理想,但它还在苦苦挣扎,试图找到自己的商业价值。就在上周,Docker宣布更改Docker软件的许可条款。在不久的将来,为大企业工作的Docker Desktop专业用户需要付费订阅才能继续使用。
与此同时,Docker还推出了一项专门针对企业的新订阅计划,即Docker Business。新条款于8月31日生效,但Docker给出了截至2022年1月31日的宽限期,以便开发人员遵守新服务协议并在有需要的时候购买付费订阅。
不出所料,Docker的举措引发了开发者的讨论。虽然许多人表示理解Docker新订阅背后的考虑,但也表达了他们的不满。批评主要分两类,有些人认为Docker的决定开创了有潜在“危险”的先例,未来它可能会增加订阅成本。不过,其他人表示,这种观点并没有考虑到团队如果不得不依赖“维护不善”的开源软件时,会产生更高的成本。
另一方面,人们最担心的是企业内部采购流程的难度,这可能会“劝退”开发者继续使用Docker,自然而然地,不少人开始探索替代方案,包括Minikube、Canonical的MicroK8s等。
至于开发者和企业会不会觉得Docker Desktop的替代方案更方便,又或者选择支付订阅计划所需的少量费用从而保持现有工作流程不变,还有待观察。
Docker的商业尝试无可厚非,但更遗憾的是,Docker从未成功将技术创新转化为可持续的商业模式,还被迫在2019年11月将企业业务出售给Mirantis。
今天,广受欢迎的开源编排工具Kubernetes已经取代了Docker为自己设计的利润核心Swarm企业容器编排工具。于是,Docker苦心经营多年的利润还是“泡了汤”,之后只能半死不活地挣扎求存。但是,真实的故事要比这复杂得多。近日,外媒InfoWorld采访了数位前任及现任Docker员工、开源贡献者、客户及行业分析师,试图从这个分崩离析的故事中找寻真相。
“每件事都只能浅尝辄止”
严重依赖巨额风险投资、竞争格局不断变化加上各大云巨头都想分一杯羹,Docker这家年轻企业面临的压力实际远远超过大多数人的想象。
Docker从2014年左右开始认真考虑将自身的容器市场领先地位转化为可变现商业战略。2014年与2015年,该公司分别用一部分风险投资收购了Koality与Tutum,同时也推出了Docker企业支持计划的首个迭代版本。
这些投资后来催生出了Docker Hub等产品——大家可以把它理解成是Docker镜像的GitHub(目前仍然存在)——最终又成就了Docker Enterprise。但这些产品一直没能真正受到企业客户的认可,他们通常乐于同更成熟的合作伙伴携手,或者是自主构建而非直接采购解决方案。因此Docker只能继续努力开发客户真正想要的产品组合。
Docker创始人Solomon Hykes(于2018年3月宣布从Docker离职)在接受采访时指出,“我们一直拿不出优秀的商业产品,原因是我们始终无法集中注意力。我们对每件事都只能浅尝辄止。单是维持开发者社区的增长并构建一款伟大的商业产品就已经够难了,当时我们还需要同时开发三到四款。很遗憾,我们在这方面投入了大量精力和金钱,但没能在任何一条道路上走到终点。”
事后来看,Hykes认为Docker不应该急于开发产品,而最好能更多倾听客户的意见。Hykes感叹道,“我本来没必要急着扩大商业产品的规模,反倒该用更多资金从社区中收集洞察见解,并建立起一支理解需求、有能力解决需求的团队。我们在2014年曾经面对转折点,但我们觉得自己等不及了,所以在急切当中做出了决定。实际上并没那么急。”
也有人认为Docker过早把好东西免费发布了出来。今年年初,谷歌的Kelsey Hightower在采访中表示,“他们相当于是免费推出了自己最有份量的王牌。他们已经解决了问题,而且是全面解决:设计镜像、构建镜像、存储镜像、运行镜像。之后还剩什么?没有空间了呀。”
Hykes并不同意这样的观点。“我认为这说法不对。一般来讲,核心开源产品先要创造巨大的增长,之后才能找到可行的商业化机会。很多企业都成功实现了Docker的商业化,只是Docker自己没有。Docker中的很多东西都可以成功商业化,只是Docker自己没做成。”
例如,Red Hat与Pivotal(现属于VMware)都是Docker的早期合作伙伴。他们将Docker容器集成至自己的商业PaaS产品(分别是OpenShift与Cloud Foundry)当中,并为开源项目做出了贡献。
如今回忆起来,Hykes还觉得他混淆了“社区与生态系统”这两个概念。Red Hat根本“不是社区中的一部分,他们也从来不真正在乎Docker到底能不能成功。我们错误地希望让Red Hat成为社区中的一部分。回想起来,这样的伙伴关系永远不可能给Docker带来助益。”
因此,旅游科技企业Amadeus等早期客户从2015年起转向Red Hat,借此填补Docker留下的企业应用空白。其云平台负责人Edouard Hubin表示,“我们直接从先驱用户转型为Red Hat的主要合作伙伴。我们在这种模式下使用Docker开源版本,并由Red Hat为我们提供容器技术支持。容器化是颠覆虚拟化的重大技术变革的第一步,而真正改变了企业游戏规则的是容器编排解决方案。很明显,Docker没能压制住Kubernetes,最终被迫陷入极为困难的局面。”
Docker公司前CEO(2013年至2017年)Ben Golub则表示,“正所谓「神仙打架、凡人遭殃」。我们都知道,这场风暴的中心其实并不在于Docker,而是各大云服务商之间的惨烈搏杀。他们都想把Docker拉向自己的方向,而选择忠于我们最初设立的价值观与业务根基简直像是在钢丝上跳舞。”
这位前任CEO指出,随着Docker的不断发展,这一切因素都自然而然造成一种“紧张”的氛围。Golub回忆道,“我们希望建立起伟大的社区并通过开发者产品获利,同时还希望打造一款出色的运营商产品,帮助客户大规模构建并部署容器。虽然愿景在此,但我们很快意识到自身必须迅速扩大规模,而且拿不出太多时间来平衡社区发展与商业企业转型这两条路线……作为一家初创企业,我们每天在匆忙中做出上百个决定,之后就是祈祷自己能少犯点错。”
与Kubernetes谈不拢的合作:自负与傲慢
纵观整个发展历程,Docker做出了很多令其追悔莫及的决定,但其中最严重的一个当数拒绝接受Kubernetes作为首选新兴容器编排工具。面对这位新朋友,Docker摆出了敌对的架势、一意孤行地推进自己的专有Docker Swarm编排工具。
事实上,Docker公司在2014年本来有机会与谷歌Kubernetes团队开展密切合作,并在过程当中把控整个容器生态系统。
Docker最早一批员工、也是效力时间最长的Jérôme Petazzoni表示,“我们最大的错误就是错过了Kubernetes。当时我们正处于集体心态膨胀的状态,我们认为Kubernetes太复杂了,Swarm一定能获得成功。这种错误判断也最终让我们陷入了集体失败。”
据多位亲历者证实,双方在谷歌旧金山办公室内展开的紧张讨论中包含众多技术细节,两边对于容器编排的具体实现方法也都有着明确而强烈的己见。
Kubernetes联合创始人、现任VMware公司副总裁Craig McLuckie表示,他曾提出将Kubernetes捐赠给Docker,但双方未能达成协议。他在采访中提到,“两边确实有点互相看不起的意思。我们从Docker那边感受不到任何开发经验,感觉上这群年轻的暴发户根本不理解分布式系统的管理秘诀。”其他在场人士也提到讨论氛围并不正式,当时的主要诉求就是寻找联合开发的可能性。但无论如何,两边团队未能达成任何统一的意见,于是最终分道扬镳。谷歌则在2014年的夏季推出了Kubernetes。
Hykes也承认,当时Docker与谷歌团队之间的关系非常紧张。“有那么一刻,我们的自负占据了上风。谷歌拥有很多既聪明又富有经验的人才,但Docker这位局外人却被胜利冲昏了头脑。我们没在谷歌工作过、也没上过斯坦福大学、更没有计算机科学博士学位。有些人不想让对方来瞎掺和,于是这就成了一场自我之战、「反智」之战。最终,Docker与Kubernetes团队之间充满意义的合作就这样胎死腹中了。”
Docker公司最早的一批员工、前业务发展与技术联盟副总裁Nick Stinemates表示,“我们本可以让Kubernetes成为GitHub之上头顶Docker名号的一流Docker项目。事后看来,Swarm的上市时间太晚,最终引发了无法挽回的失败。”
“一方面是我们太过自负,另一方面则在于Kubernetes几位联合创始人Joe Beda、Brendan Burns以及Craig McLuckie的尖锐态度——他们对于服务层级API的需求有着毫不让步的坚持,但Docker在技术上却并不太关注单一API。所以我们双方根本无法达成一致。”Stinemates说道。
无论如何,Kubernetes最终赢得了容器编排之战。
但Craig McLuckie也强调,他“不知道Kubernetes会发展到今天这个程度。事后分析太容易了,但人在局中时确实没办法看得那么清楚。”
高层的裂隙
在2015年以10亿美元的“独角兽”估值完成9500万美元的巨额D轮融资之后,Docker终于走到了炒作周期的顶峰。
Stinemates表示,“这轮融资给Docker设下了极高的发展期望,也暴露出我们这家企业即将面临的一系列根本难题。我认为当时担任公司CEO的Ben Golub有很多想法跟Hykes不同,而且大家都知道两个人出现了意见分歧。董事会大量参与、努力安抚创始人的情绪,同时也给了CEO足够的回旋余地,希望推动公司走向成功。如果由Hykes决定,那么他会坚持以社区为导向的路线创造病毒式传播。而在Ben看来,越早转向商业运营就越能掌握主动权。这种紧张的局势,导致我们在两条路上都没能走到底。”
这种态势最终催生出两个Docker:面向开发人员、广受欢迎的命令行工具兼开源项目Docker社区版,以及面向希望大规模采用容器的企业客户的商业工具套件Docker企业版。遗憾的是,公司的行动太慢了,没办法把二者明确拆分开来并分别提供发展资源。
到2018年,裂隙开始显现。Docker公司逐渐无法在日益不满的开源社区及强大的合作伙伴,与要求在生产环境中运行容器的苛刻企业客户之间找到可行的路线。
不久之后的2018年3月,Hykes离开了自己一手创立的公司。他在一篇博文中写道,“作为创始人,我当然有着复杂的情绪。任何一位创业者都希望自己的公司能够在自己离去时仍能获得成功。我的这一天也终于到来,没想到是以这样苦乐参半的方式。对创始人来说,放弃一生追逐的梦想确实是种煎熬。”
如今回望过去,Hykes倒是超脱了出来。“我意识到自己并不属于这家公司,继续留下也没有什么建设性贡献,所以我离开了……我已经失去了创业的乐趣,所以要么留下当个CEO、要么直接告别更好。”
面对日益严重的资金问题,Docker公司轮换了新的CEO——Ben Golub于2017年5月让位于给前SAP CEOSteve Singh;2019年6月,前Hortonworks CEORob Bearden又从Singh手中接过权柄。
现在Docker的定位是什么
在初始投资者Insight Venture Partners与Benchmark Capital 3500万美元的现金支撑之下,如今Docker的“残躯”正在七年资深人士Scott Johnston的领导下,由Docker Engine容器运行时、Docker Hub镜像库以及Docker Desktop软件苦撑着。
Johnston在采访中表示,自己正努力“像激光般聚焦开发者的实际需求”,希望以此帮助Docker公司回归本源。“我们认为Docker公司比以往任何时候都更强大,凭借的是三个核心:以客户为中心、统一的上市规划与更具生态系统友好度的商业模式。”
Johnston决心不再重蹈过往的覆辙,专注为企业内的核心软件开发者受众提供价值。
Johnston认为,“Docker 2.0”的增长机会在于为安全、经过验证的镜像提供新的开发者工具与可信内容,同时为以容器技术为基础的新兴计算模型(例如无服务器、机器学习及物联网工作负载)持续提供推动力。
更重要的是,Docker仍然是行业标准的容器运行时,目前Docker Desktop拥有300万的可观装机量。此外,在Stack Overflow的《2021年开发者调查》报告中,49%的受访者表示自己经常使用Docker Desktop工具。
尽管如此,人们对Docker的未来仍然不太看好。Stinemates坦言,“直白一点的话,我会质疑如今的Docker还算不算真的存在。从职业角度来看,这真的很可悲。我再也没遇到过能像Docker那样令人兴奋、充满活力而且时刻创造出火花的企业。”
Hykes则总结道,“公平地说,Docker没能把自己的业务潜力转化成实际价值……至少目前还没有。但我很高兴Docker在经历了这么多年的坎坷之后再次抓住了建立业务的机会。这证明了Docker项目的品牌和底子都很厚实。”