AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

开源业务模式之死

  • 2020-12-25
  • 本文字数:4760 字

    阅读完需:约 16 分钟

开源业务模式之死

作者自述: 近日听闻新版本 Mapbox GL JS 将变为专有的有关消息,直到那天以前,我还对开源软件业务抱着一丝浪漫的乐观态度。是什么将开源业务模式逼上了死路,open core 业务模式为何无力支撑,本文将回溯 Mapbox 在开源之路上的变迁,讲述 Mongo DB 和 Redis Labs 与云计算巨头抗争的故事。


近日听闻新版本 Mapbox GL JS 将变为专有的有关消息,顿感震惊。¹


我不是什么愤青。即使他们已经背弃了他们过去曾经的理念,我也不觉得我有权随意享有别人的知识产权。创建和维护开源软件的工作有多么令人疲惫,有多么费力不讨好,有多么消磨人的意志,这些我都有切身体会。


直到那天以前,我还对开源软件业务抱着一丝浪漫的乐观主义态度。我无数次告诉自己,告诉别人,Mapbox 是故事的主角。这个故事讲的是一个软件公司的“open core”业务模式,故事让人觉得难以置信、意想不到、引人入胜。去年我写了一篇没多少人读的文章,在这篇文章中,我对 open core 战略做出了以下定义:²


“open core”业务提供其软件的免费开源版本和带有额外专有特性的付费版本,这些特性很难复制……


我见过许多有关“open core”业务模式概念的分析,我强烈推荐阅读 Joseph Jacks 的博文《open core——定义、示例和权衡》,我认为它是其中一篇最深入的分析。


它整个想法都很疯狂。大家刚刚开始了解的时候,没有人认为它行得通,然而,像 Elastic、D2iQ(原名为 Mesosphere)、MongoDB 和 Cloudera 等诸多公司却追逐着这一无比疯狂的、反智的、毫无保留的策略,努力将估值做到了数十亿美元。或许,至少在某一时刻,它们曾是 open core 业务模式……现在也许已经不是了。稍后我们详细介绍。


今天,我们齐聚一堂,在互联网上哀悼 open core 业务模式的离世。我们在此讲述以前的故事,追忆我们认为自己过去是何等的聪明。我们违背了共识,我们错了。因为,open core 已经死了。


云计算杀死了 open core。

追忆 Mapbox


以 Mapbox GL JS 为例,Mapbox 之前已经决定公开授权其基于浏览器的地图渲染器的前两个版本 (也就是为 Snap Maps、纽约时报和 CNN 等众多网站提供支持的版本)。自从 2014 年首次发布以来,它非常受 Web 开发人员的欢迎。只要你知道自己在寻找什么,你就会发现它其实……无处不在。


John King 轻抚着这张大地图。其底层由 Mapbox GL JS 提供支持。图片来源:《华盛顿邮报》


当我在 Azavea 的团队开始构建一个用于标记卫星图像的工具 GroundWork 时,我亲自体验了 Mapbox GL JS 的强大功能。使用该库中的功能,GroundWork 支持自由地绘制复杂的几何图形。其生成的图像是地图式的——它们被映射到地球上的真实位置之上,而不仅仅是悬挂在想象的 2D 空间中。这是一种让人能够直观感受到的特性,但若想从头开始设计这一特性实际上非常困难。


即使是徒手绘制的看起来相当简单的形状也可能包含有数千个单独的顶点。很快,你就会用成千上万个顶点填满你的屏幕,这些顶点值组成的形状……哦,简直就是一坨坨便便³。让你的浏览器崩溃。


Mapbox GL JS 召唤您机器上的显卡提供帮助,以此来协助解决这个问题。如果没有 Mapbox 数以万计个小时的艰苦、低层的工程作业,我们是不可能在我们有限的预算和时间内实现这个功能的。


Mapbox GL JS 使得在浏览器中实现这一计算密集型特性成为可能。图片来源:GroundWork


Mapbox 本周决定发布一个全新版本的 Mapbox GL JS,该版本为专有版,这让我感到十分震惊。不仅因为 v1 已经是一个广受欢迎的开源库,而且作为一个多产的开源软件开发者,Mapbox 的声誉是支撑他们整体形象的基石。介绍 Mapbox 的特殊之处而不提及“开源”,就像试图向外星人介绍巧克力牛奶而不使用“液体”这个字眼一样。


Mapbox 仍然有超过 800 个开源项目,并且一直处于 Github 公共库的全球排名前 40 位。他们雇佣 (以前也雇佣过) 一些世界上最知名的开源软件贡献者,而不仅仅是地图行业。


那么,到底是怎么回事?

open core 不再是一种站得住脚的业务模式


Mapbox 选择让 Mapbox GL JS 的 v2 专有是一个强烈的信号。但这个信号到底在暗示什么……还不太清楚。大家都躲躲,我要咬人了。⁴


我认为这意味着我们已经迎来了一个时代的终结。我认为这预示着“open core”作为一种可行的业务模式的死亡。我的怀疑不是始于 Mapbox,而却终于它们。


要了解像 Mapbox 这样的公司是如何决定对其最受欢迎的开源库发布一个专有更新的,我认为首先研究一下 Mongo DBRedis Labs 这两个相似的警示故事会有所帮助。


两年前,Ben Thompson 在他的文章《AWS、MongoDB 和开源的经济现实》中写了一段非常精彩的总结。他的总结概括来讲是:如果你免费提供你的秘密武器,而后它流行到一定程度的时候,云计算提供商必将使用你自己的代码制造竞争服务来与你对抗。他们会无情地、毫无歉意地、厚颜无耻地用你自己造就的“橡胶鸡”打你。他们会在你的前院拉屎,而你的律师则只能站在你的身后窃语:“无能为力。”


自 Ben 写了 AWS 启动一个服务直接与 MongoDB 和 Redis 的支付产品竞争的文章之后,AWS 并没有辗压式地胜出这场竞争……事实上,MongoDB 的股价已上涨超过 275%,而 Redis 几个月前刚刚融资 1 亿美元,正式突破了 10 亿美元这一不可思议的估值门槛


Open core 已死,你说呢?图片来源:谷歌金融


故事的重点不仅是 Mongo 和 Redis 在受到 AWS 的打击后兴旺起来,而是它们是如何做到这一点的。两家公司都以公司一贯的方式进行了反击:组建了一支知识产权律师队伍。Redis 采用了一种策略,在其现有开源工具的更新版本中加入了严格限制的“公有条款”,这让一些著名的开源评论人士觉得他们把洗澡水和婴儿一起倒掉了:


有朝一日,我希望能创造出一种值得称之为“废除”的东西。


Redis 后来转而采用了一种完全新颖而特殊的许可,它不像那份《公有条款》的那么糟糕,但几乎可以肯定的是,它也没有好多少。在 AWS 推出了具有竞争力的“DocumentDB”服务后不久,MongoDB 也为自己的软件采取了“毒丸”似的法律策略,即转而采用一个重新同样编制出的许可证——“服务器端公共许可证 (SSPL)”。在这两个事例中,这些举措都是专门为了让公共云服务提供商更难对付它们。⁵


也许更准确地说,他们使他们的开源产品可以辐射到任何大到拥有一个叫做“合规”部门的公司。⁶


这些变化从根本上降低了 Redis 和 Mongo 的开放程度。这些公司后来做得相当不错,尽管可能会牺牲他们最初的理想和一些善良的早期采用者。由布道者和贡献者组成的开源社区觉得他们被一则谎言出卖了,并在这个过程中被当成了垫脚石。尽管我并不认为 Redis 或 Mongo 是理性的经济行为者,但我倾向于站在他们那边。

再来说说 Mapbox


至少有一家云服务提供商公开地将 Mapbox 代码复制粘贴到他们收费的服务中:微软的云服务,Azure。去年,Azure 宣布了由 Mapbox GL JS 提供支持的地图样式,这仍然是他们的“Azure 地图”服务的关键特性。Mapbox 甚至在公司博客上发表了一则声明


虽然 Mapbox 针对 Azure 发表声明是一件好事,但我怀疑这是结束 Mapbox GL JS 开放源代码的源头。毕竟,在竞争极其极其激烈的公共云计算领域,一旦一家云计算提供商开始提供服务,其他提供商肯定很快就会效仿。Mapbox 发现自己的处境与 Mongo 和 Redis 类似:它们在为几家价值上万亿美元的科技巨头的研发做嫁衣。


与 Mongo 和 Redis 不同,Mapbox 抑制住了想要把他们的蛋糕也吃掉的冲动。他们并没有改变其产品“开放”部分的基本许可,而是彻底中断了。旧版本仍然是一个成熟且极其有用的库,它将保留其原始的、自由的许可证。人们已经在努力 fork 它,并召集社区成员来无限期地维护它,我希望这能成功。


新版本仍然是公开的 (代码都发布在 Github 上)。它只是不再是自由许可的。对我来说,这感觉像是一个更诚实的方法,而不是试图通过一个具有创造性的且完全未经证明的许可证,或是一些“公开欺骗”的条款。⁷


有些人可能会觉得这是一场悲剧,因为这意味着社区贡献可能会减少。的确,尽管贡献者名单很长,但实际这个类库中的大部分贡献仍然是 Mapbox 的现任和前任员工的付出。但这个项目吸引了全球大量的工程师,他们用它做东西,用它做技术演讲,并无数次地对它进行 fork/remix。毫无疑问,对于那些热情的用户来说那一天是悲伤的一天。他们会活下去,但可能会有些失落感,我不能就这一点苛责他们这一点。


至于这个选择是否偏离了 Mapbox 的使命或文化,我认为这条推特正好回答了这个问题,它来自一名自该公司成立以来就在这家公司工作的现任员工——Preach, Saman。



追忆美好时光


曾几何时,我真的认为你可以放弃你的商业机密,仍能成功。我认为,互联网的规模催生了一种新的公司类型,这种公司可以变得庞大,尽管它们获得的收益只是所创造价值的极小一部分。我相信围绕开源软件建立公司的行为合乎道德与操守。我把它本身视为一种目标。


而这些天,我已不再那么笃定。⁸


我仍然相信,开源软件是这个世界上一股强大的力量。我仍然认为,企业可以战略性地、诚挚地为开源软件做出贡献,这不仅仅是为了自己的使命,也是为了集体的利益。


但是,我不再相信有风投支持的公司能够责无旁贷地奉行把软件作为其价值主张核心的战略。


我认为,对于那些野心勃勃想要发展壮大的公司或那些积极回避咨询工作的公司来说,这不再是一种可行的模式。最终,如果他们成功了,他们将被迫选择是背叛忠诚的早期采用者,还是在橡皮鸡的棍棒下慢慢死去。


那天的确是悲伤的一天。但这并不是因为 Mapbox 做了什么错事或是它让人多么失望。而是因为,那一天,我终于向自己做出了让步:


云计算,杀死了 open core。


脚注:


[¹] 写给不太了解 Mapbox 的新人:Mapbox(https://www.mapbox.com/)是一家专注于地图业务的卓越的软件公司。他们在该领域做出了巨大的创新贡献,从 Mapbox GL JS (2d 地图的渲染器)、自动驾驶和导航库、增强现实技术、三维可视化,甚至到游戏技术。这个消息令人震惊的原因是,他们的承诺是创建开源软件(甚至他们非常核心的“秘密武器”),这是许多用户认知他们的基础,是他们为什么被广大软件工程师如此欣赏的重要原因。


[²] 如果你已经看过那篇博客,那么恭喜,你已经是我最亲密的 106 位朋友之一。


[³] 从我出生到现在,我妈妈都很喜欢说这句话,现在我也很喜欢说。


[⁴] 当你读这篇博客的时候,会迫不及待地想知道地理空间软件产业的相关答案,于是你得在 Medium 上求助文章作者,因为他根据就不了解技术,无法建设管理自己的网站,而他也不愿意花钱让别人为他托管网站。


[⁵] 虽然我不是律师,但是我在网上扮演律师。如果你想更深入地理解这些许可策略,我建议你先去考一个法律学位,专攻知识产权和版权,然后用毕生精力来研究它。


[⁶] 一名非常乐于助人的评论者指出,我已经严重暗示 Redis 本身不再是开源的,而实际上它在 BSD 许可下仍然是开放的。只有 Redis 实验室提供的“模块”带有专有的“source available”许可证。


[⁷] 如果你现在仍不明白我的意思,我再更清楚地说明一下:我认为,发明自己的许可证几乎永远都是糟糕的主意。在法庭上,合同是可强制执行的。要么在你的许可证充分建立起公信力之前经常去法院,要么就选择一个大家都信赖的许可证。就我个人而言,我不喜欢被起诉。如果必须得打官司,我得有足够的信心赢。


[⁸] 我最喜欢乔帕格的歌(https://genius.com/Joe-pug-not-so-sure-lyrics),其中一首歌词是:


Stealin’ was so easy then


I wish that it still were


Now as I pick my own pocket


I know that these days


I’m not so sure


原文链接:


https://joemorrison.medium.com/death-of-an-open-source-business-model-62bc227a7e9b


译者简介:


冬雨,小小技术宅一枚,从事研发过程改进及质量改进方面的工作,关注编程、软件工程、敏捷、DevOps、云计算等领域,非常乐意将国外新鲜的 IT 资讯和深度技术文章翻译分享给大家,已翻译出版《深入敏捷测试》、《持续交付实战》。


2020-12-25 15:553152
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 279.4 次阅读, 收获喜欢 1301 次。

关注

评论 2 条评论

发布
用户头像
机器翻译的文章吧?
2020-12-25 16:16
回复
我上次置疑文章的翻译水准的时候,马上有哥们用「有原文链接」甩我脸上,只能耸肩
2020-12-25 17:19
回复
没有更多了
发现更多内容

Qz学算法-数据结构篇(链表、栈)

浅辄

数据结构 链表 三周年连更

ChatGPT安全受质疑 网信办发布生成式人工智能服务管理办法意见稿

郑州埃文科技

挑战 30 天学完 Python:Day11 函数

MegaQi

Python 挑战30天学完Python 三周年连更

IPv6过渡技术概述

穿过生命散发芬芳

ipv6 三周年连更

TCP正常关闭连接

阿泽🧸

TCP 三周年连更

Spring中事务嵌套这么用一定得注意了!!

JAVA旭阳

Java spring

AI视觉实战2:实时头发染色

轻口味

android AI 图像处理 三周年连更

JavaSE 和 Java EE 分别是什么

HoneyMoose

Unity 之 音频类型和编码格式介绍

陈言必行

三周年连更

【Python实战】XPath采集数据

BROKEN

三周年连更

2023-04-21:用go语言重写ffmpeg的metadata.c示例。

福大大架构师每日一题

Go ffmpeg

Android XML数据解析

梦笔生花

android XML配置 三周年连更

华为云数据灾备解决方案为您的数字资产提供多重防护

平平无奇爱好科技

基于Ubuntu安装Kubernetes集群指南

王玉川

Kubernetes 云原生 k8s 安装 集群

一键搭建web版chatGPT,无需魔法,国内可用

石云升

AI AIGC ChatGPT 三周年连更

创新引领・数创未来 | 数据流通与治理专题论坛交流会顺利召开

郑州埃文科技

运行脚本报错lindex:未找到命令

linux大本营

bash Linux 脚本

华为云灾备方案,让安全到家

平平无奇爱好科技

如何守好企业数据安全防线?华为云数据灾备告诉您!

平平无奇爱好科技

强大的音频分析编辑工具:Amadeus Pro 汉化激活版

真大的脸盆

Mac Mac 软件 音频编辑 音频处理工具 编辑音频

跨平台应用开发进阶(五十三):uni-app 通过webview方式嵌套H5实现图片点击下载

No Silver Bullet

uni-app 跨平台应用开发 三周年连更 web-view

华为云数据灾备,为企业数据安全保驾护航

平平无奇爱好科技

Django笔记十三之select_for_update等选择和更新等相关操作

Hunter熊

Python django select_for_update bulk_create update_or_create

Discourse 服务器上手动升级

HoneyMoose

设计模式之原型模式和建造者模式

共饮一杯无

设计模式 建造者模式 三周年连更

Prometheus常用资源监控

乌龟哥哥

三周年连更

华为云数据灾备,助力企业应对信息安全

平平无奇爱好科技

华为混合云数据灾备方案,保护企业数据安全

平平无奇爱好科技

算法题每日一练:组合总和 Ⅳ

知心宝贝

数据结构 算法 前端 后端 三周年连更

怎么查看自己的mac地址和ip

linux大本营

Mac 网络 Windows Server IP地址

Flutter 开发:如何引入第三方库并安装使用

三掌柜

三周年连更

开源业务模式之死_开源_Joe Morrison_InfoQ精选文章