Docker是不是遇上麻烦了?

“Docker”跟“容器”这两处字眼在最近几年可谓出尽风头,但最近似乎又快速陷入低谷。Docker当初在技术领域的横空出世堪称一场新时代的文艺复兴,社交媒体、市场营销以及开发者论坛上的溢美之词已经充分说明了这一点。而在容器兴起之后,Linux爱好者们更是陷入疯狂,各类相关技术也在硅谷当中应运而生——微服务开始成为解决各类问题的灵丹妙药,持续集成不再只是空谈,包括最近风头无两的无服务器计算。这一切,都紧紧团结在“容器化”这一核心周围。

Docker是不是遇上麻烦了?

随着时间的推移,Docker开始根植于我们的日常生活当中。代表Docker的鲸鱼吉祥物图像开始成为各类现代开发者网站以及博客页面的背景,由此掀起的巨大话题激起技术领域的广泛关注,我们甚至再也无法将关于Docker的印象从头脑当中抹去。

然而,在这一切辉煌的背后,技术社区中开始有不少人认为Docker正一路朝着沉没的方向前进。更具体地讲,Docker项目持有者以及管理者错误地设定了发展思路,并导致其陷入了充满绝望的境地。那么,这样的判断有没有依据?Docker真的快要不行了吗?或者说,这只是技术领域当中部分小年轻们一厢情愿的偏执?

Docker Swarm,一曲悲歌

目前,围绕Docker项目最严厉的批评与恐惧,在于该公司容器编排平台Docker Swarm的悲惨境遇。在本文中,我们不打算聊太多具体的技术细节。总而言之,Docker Swarm的设计目标在于提升可用性,帮助用户对一组服务使用容器技术并轻松加以管理。Docker Swarm成为该公司的赚钱希望,他们也为此砸下了超过2.72亿美元的研发资金。

但遗憾的是,Docker公司目前糟糕的处境,很大程度来自他们砸下重注打造的Docker Swarm被竞争对手尽数夺去了光芒。谷歌公司的Kubernetes拥有更为庞大的资源储备与运营预算,也成为希望保护投资回报的用户们更理想的方案选项。此外,AWS EC2 Container Service(ECS)的出现,则成为那些希望简化容器工作流程、摆脱设施构建与维护成本的团队的最佳选择。

这就带来了一种奇怪的状况——Docker Swarm这一官方解决方案,反而成了最没人气的选项。VMware等科技巨头已经全力投入Kubernetes阵营。另一方面,日活用户高达2700万的Riot Games等公司,以及跨越860台服务器上运行13000套容器的Expedia等巨头企业,都在使用AWS ECS。

其他企业吃掉了这么大的市场份额,Docker遇到财务问题自然也就不足为奇。在外流的备忘录中,可以看到虽然融资额度已经相当惊人,但Docker公司的现金流仍然入不敷出。如果说Docker Swarm无法成为成功的吸金驱动器,那么Docker未来的出路会在何处?他们又该如何走上健康的运营道路?

Docker,开放而又封闭的社区

Docker的麻烦始于项目的开源性质与管理思路,也终于开源。没错,Docker确实是一套开放平台,每个人都能够为其做出贡献并参与进来……但实际情况并没这么单纯。我们可能抱着巨大的热情准备好令人难以置信的Docker贡献集并提交了上去,但如果这些贡献与公司的发展愿望不一致,那各位恐怕要白费劲了。

当然,这一点与目前其他一些开源项目并没什么不同。贡献者总是会发现问题、加以改进、提交结果并等待审查。而项目的拥有者则根据自己的思路对贡献内容投出赞成或者反对票。在理想的开源项目当中,拥有者总是会赞同那些能够对代码库的发展拥有客观助益的贡献内容。换言之,成功的开源项目不会让一小拨管理者以闭门造车的方式考虑项目的未来,而愿意把这种权力下放给每一位使用并热爱着这个项目的参与者。

但Docker的问题在于,项目拥有者在审查方面拥有不容质疑的权威。他们不会问,“这项贡献会给Docker以及整个社区带来好处吗?”相反,他们的脑回路是“这项贡献能否给Docker带来竞争优势,从而推动Docker Swarm发展成编排领域的首选解决方案?”

这样的决策与行动思路激起了巨大的抵触情绪。他们对Docker这种野蛮专制的愤怒,也令社区的整体氛围发生颠覆性转变。如今的开源技术社区蕴藏着恐怖的力量,这群“暴民”既有想法、也有能力,于是最终他们拿出了自己的开放容器框架——Moby(源自Mob,暴民一词)。

虽然Docker公司与其社区之间的分歧并非引发对抗的唯一原因,但绝对是原因之一。如果连最亲近的贡献者与支持者都团结不起来,开源项目哪还有生命力可言?或者说,Docker还剩下什么?从实际情况来看,剩下的是一群竞争对手,一群由才智之士以及潜在合作伙伴组成的竞争对手,并积极寻求可行的Docker替代方案。

Docker版《出埃及记》

……十年之后

2019年11月13日,也就是Docker诞生的近十年之后,该公司宣布将企业业务部分出售给Mirantis。但由于发布及公共工作不够到位,消息传出后很快掀起一波恐慌:“什么?Docker要卖?”实际上,我认为这种误解很可能继续传播,毕竟Docker方面在澄清事实上做得实在是一言难尽。

事实上,多年以来Docker已经变成了一只……“双头鲸”。他们任命了一位改善核心技术与开发者工作流程的负责人,同时又任命了一位向企业客户出售解决方案及平台的负责人。因此这里强调一点:

  • Docker本身并没有出售,他们卖出的只是后面的这部分企业级业务。

然而,即使没有误解,对于那些热爱Docker项目的参与者来说,这仍然不是什么好消息。正所谓关心则乱,对于这样一项优秀到令人起鸡皮疙瘩的技术而言,任何波折都可能让我们难以接受。

Docker,新的前进道路

但情况还没糟糕到那个份上——更准确地说,情况实际上还比较乐观。除了出售企业级业务的公告之外,Docker公司还发布了另一项重要消息:Docker筹集到一笔3500万美元的新资金,同时将由原CFO Scott Johnston出任公司CEO职务。与此同时,他们还表示将把工作重心转移到社区方面,改善开发者的工作流程,并进一步完善Docker Hub与Dock Desktop工具选项。

这有什么可乐观的?至少要比原先鲸鱼的两个头相互竞争好得多,对吧?那么,这一举措能否改善生态系统并实现技术的全面兼容?甚至巩固市场领导地位,让Docker真正成为其想象中的解决方案之王?目前还不清楚,但至少在解决了权力分裂与朝着反方向用力的那个脑袋(企业平台与Docker Swarm)之后,Docker似乎决定再次回归我们曾经熟悉的那只聪明友善的巨鲸。在这样的指导方针之下,凭借新注入的大笔资金以及以产品为导向的正确思路,一切信号都显示出其回归正轨的良好希望。

Docker——多数人爱,少数人恨,所有人用

而且需要承认的是,无论Docker项目存在着多少自我割裂与不确定性,事实是开发人员与企业都爱用它。别管什么AWS ECS、Kubernetes、Swarm还是其他项目,Docker永远是这些技术的根本性引擎。除了面向消费者的企业依靠Docker创收,就连B2B公司也是如此。这一现状的背后,无疑蕴藏着大量利润。有产品、有大客户、有工作岗位、有收益也有生命力,这样的项目有可能消亡吗?

根据2019年Stack Overflow的最新调查,Docker仍是StackShare上排名第七的最受欢迎技术工具、第二大最受爱戴平台、第一大最受期待平台。此外,Docker的泛用度则名列第三。面对如此高涨的人气、深厚的感情以及广泛的使用范围,Docker的前景必然是光明的。另外,Docker也似乎正朝着人们希望的方向转变,因此我们相信其应该有能力逐步走出泥潭、重归正途。