知名科技博主:开源软件面临经济困境,就像过去的音乐产业一样
知名科技博主 Ben Thompson 以音乐产业发展史作为对比分析了当今开源软件的发展情况。开源经济面临的一个问题是,随着越来越多的企业出于性能、伸缩性、可用性的考虑入云,开源软件公司靠本地部署额外工具和服务赚钱的来源正在减少。也许软件未来就像音乐一样,因为其无限可复制性而变得不值钱。
1999 年,美国的音乐产业收入达到了巅峰的 146 亿美元。但是理清楚细节很重要,得看看卖出去的是什么东西:
- 12 亿美元来自 CD 的销售
- 1 亿美元来自卡带销售
- 3.78 亿美元来自实体媒体的音乐视频销售
- 2.224 亿美元来自 CD 单曲的销售
简而言之,音乐产业主要是靠卖盒装塑料唱片赚钱;那些光盘里面刻录的音乐只是区分那些塑料片的手段,但音乐本身并没有卖出去。
这种区别听起来似乎很蠢,但这解释了巅峰过后发生的事情:
尽管音乐的渠道和可得性一飞冲天,但音乐产业的收入却骤然下降:问题在于大家不再买塑料唱片了,而这个正是音乐业卖的东西;大家开始直接下载音乐了。
销售便利性
问题是唱片音乐一直都不值钱:一旦录制了一份出来,就可以无限量地拷贝出去,这意味着供应其实是无限的;其结果就是从唱片获取价值要取决于强加的稀缺性。塑料唱片就是这么干的:实体商品的有限供应,靠成为获取音乐最便利的方式来差异化。但是从 Napster 或者后续网站下载盗版 MP3 比这还要便利——而且更加便宜。
正如从图中可以看到一样,2010 年这个产业开始稳定下来,到 2016 年恢复增长;201 年有望比 2017 年的 86 亿美元收入增长约 10%,而且似乎在不远的未来这个产业会突破 1999 年的巅峰。
为什么会这样?这是因为音乐业找到了新的卖点,这主要是由 Spotify 然后是苹果推动的。不过它们卖的都不是音乐;实际上,它们是在以彼之道打击盗版:音乐业贩卖的是便利性。每月不过 10 美元就能得到几乎所有唱片业制作过的音乐。
DocumentDB(兼容 MongoDB)
上周来自 AWS 官方博客:
今天我们推出了 Amazon DocumentDB(兼容 MongoDB),这是一个快速、可伸缩、高可用的文档数据库,是专门为兼容现有 MongoDB 应用和工具而设计的。Amazon DocumentDB 为此打造了一个基于 SSD 的存储层,可跨 3 个独立 Availability Zones 实现 6 倍的复制。该存储层具备分布式、容错、自愈性,可提供运行生产级 MongoDB 负载所需的性能、伸缩性以及可用性。
MongoDB 以及现在的 DocumentDB 的细节对本文不是特别重要;基本上,MongoDB 是创建了一种更灵活的数据库并且更适合于大量结构与非结构化的数据,让它对大规模应用很有用,而这个是传统的关系式数据库永远无法做到的。
而现在你可以在 AWS 上跑这种数据库了。算是吧。
开源许可
就像越来越多的此类项目一样,MongoDB 也是开源的…… 或者不管怎样它就是。MongoDB Inc 这家拿到风投的公司于 2017 年 10 月上市,并以 GNU Affero 通用公共许可证(AGPL)的授权形式提供其核心数据库服务器产品。
AGPL 是 GPL 的近亲,后者是 Richard Stallman 创建的公共版权(Copyleft)协议。「公共版权」意味着允许自由分发、使用和修改有版权的材料(本例下是软件),但约定同样权利亦延伸至所有的衍生作品;这意味着任何利用 GPL 代码开发的项目本身也必须是采用 GPL 许可。这是相对于「自由(permissive)」开源授权而言,后者允许别人随意使用有版权的材料,并不规定衍生作品也得开源。AGPL 延伸了 GPL 的做法,允许软件通过网络访问;由于软件只是被使用而不是拷贝,所以 GPL 不会被触发,但它的最终结果比 GPL 还要狠。
无论 GPL 还是 AGPL 对公司来说往往都很成问题,尤其是后者:比方说苹果就不允许 GPL 授权的软件出现在应用商店,因为应用商店要求 app 针对单用户授权;用自由许可的 app 没事,因为这种许可是可以被替代的——但 GPL 一旦授权就无法撤销。AGPL 更糟,用户只是使用软件就会触发授权;所以 Google 内部是禁止使用的。该公司在其开源文档中指出:
对网络上使用的软件实施限制的许可是 Google 极难遵守的。使用 AGPL 软件要求其链接的一切也必须按照 AGPL 授权。哪怕你以为你没有链接到任何重要的东西,由于我们的大多数代码的集成方式这也会给 Google 带来巨大风险。这种风险远大于它带来的好处。
这是这项政策的一条附录:
某些情况下,我们也许会有 AGPL 许可代码的替代许可。
这就是 MongoDB 的生意。
MongoDB 的商业模式
MongoDB 在招股说明书中写道:
我们相信我们有着高度差异化的商业模式,这种模式结合了开源所带来的开发者、注意力份额以及采用的好处,以及专有软件订阅商业模式所带来的经济利益。为了鼓励开发者使用、熟悉和采用我们的平台,我们以开源方式提供了 Community Server,这类似于「免费增值」产品。Community Server 是一款不包含商业版平台所有功能的可以免费下载的数据库版本。这使得开发者可以毫无障碍地评估我们的平台,我们相信这可以促进平台在开发者当中的流行度,从而推动企业采用我们的订阅版……
跟基于第三方开源项目的软件公司不一样,我们拥有自己的产品的知识产权,因为我们是这款软件的创造者,这使得我们可以推出专有软件订购商业模式…… 我们的主要订购包是 MongoDB Enterprise Advanced,这是为企业客户提供的综合产品,可运行于云端、本地或者混合环境。MongoDB Enterprise Advanced 包括了我们的专有数据库服务器、先进的安全特性、企业管理能力、我们的图形用户界面、分析集成、技术支持以及对平台的商业许可。我们还提供 MongoDB Atlas,我们的云托管数据库即服务(DBaaS),里面包含了全面的基础而设施与 Community Server 的管理。
基本上,MongoDB 是在其开源数据库服务器基础上卖三样东西:
- 企业实现 MongoDB 的额外工具
- 小公司使用 MongoDB 的托管服务
- 法律确定性
最后一个的重要性不容忽视:MongoDB 的企业版和托管服务不受 AGPL 或者自去年底起 MongoDB 新创建的服务器端公共许可(Server Side Public License,SSPL)的约束。SSPL 就像是加强版的 AGPL:它要求卖 MongoDB 即服务的公司不仅要开源自己的修改版,而且还要开源整个技术栈。
AWS 卖什么
卖软件即服务的最大公司当然是 Amazon。不过这并不意味着 Amazon 卖的是「软件」。现实是软件跟音乐没什么不同:软件也是无限可复制的,因此,孤立来看,不值一文。
相反,软件的价值往往通过三种方式实现:
- 首先是硬件。最著名的例子是 iPhone,这是获得 iOS 的唯一方式,但是还有无数例子。
- 其次是许可。这是围绕数十年来的核心业务:把许可卖给 OEM(消费者市场)或者直接卖给公司(企业市场)。这的确有点讽刺,因为围绕和开源尽管历史上是冤家对头,但这两者都依赖于版权、强悍的法律制度,以及做合适事情的公司。
- 第三就是软件即服务。这是微软的新模式,也是 Amazon 的,也是几乎所有新的企业软件公司的。这里卖出的不是软件本身,而是软件的效用:负责卖的公司做完其他的一切,包括可靠地提供该软件。
考虑到这些之后,我们再看看上周 AWS 发布的东西:
存储层是分布式的、容错的、自愈的,可赋予运行生产级 MongoDB 负载所需的性能、伸缩性及可用性。
AWS 卖的不是 MongoDB:他们卖的是「性能、伸缩性和可用性」。在 AWS 上体现出这些好处的有很多地方,DocumentDB 只是其中之一罢了。
不要搞错:这些好处当然是有价值的。企业计算入云是一种长期性的转变,不是因为必然会更便宜(尽管成本与使用情况会更趋于一致),而是因为性能、伸缩性和可用性是难题,跟大多数公司的核心竞争力与差异化点几乎没有关系。
但那些却是 AWS 的核心竞争力,AWS 可以为解决问题提供无与伦比的规模:通过有效地为数百万客户操作服务器,Amazon 可以给所有那些问题提供大量资源,这些资源比任何一家公司自己能提供的要多得多,同时它还开发了自己的客户架构,上至数据中心软件,下至定制化芯片(并且让它可以狠狠地对英特尔这样的供应商杀价)都有。
其结果是「性能、伸缩性与可用性」成为极其有吸引力的一门生意:AWS 的客户越多不仅推动了多得多的经常性收入,而且通过让公司将众多的新增资源施加到甚至更难理解的用例上,也巩固了 AWS 的护城河,使得 AWS 对新客户变得更有吸引力。微软在跟 AWS 竞争,但是只能望其项背;Google 落后甚至更多。实际上,甚至 MongoDB 管理的服务业跑在这三家巨头上:因为独立跑毫无意义。
开源的难题
然后我们就有了开源公司的难题:
- MongoDB 利用开源来获取注意力份额。
- MongoDB Inc 靠卖额外工具给企业跑 MongoDB 发展成为成功的企业。
- 越来越多的企业不想跑自己的软件:他们想雇 AWS(或者微软、Google)替他们运行软件,因为他们看重性能、伸缩性和可用性。
这使得 MongoDB Inc 不会像下载出现后的唱片公司:他们卖的不是软件而是让那种软件变得有用的工具,但是那些工具随着计算走向云端会日益变得过时。现在 AWS 正在卖企业真正想要的东西。
更糟的是,因为 AWS 没有使用 MongoDB 的权利(只是匹配 API),所以只支持 MongoDB 3.6;而 MongoDB 目前的版本是 4.0.5。有可能一旦 AWS 的服务变得流行起来之后 MongoDB 就相当于一潭死水了:当然,你可以从 MongoDB Inc 那里获得更好的版本,但然后你得自己管理或者诉诸于将你所有的 AWS 服务与 MongoDB 的东西绑定(然后再次地,差异化的可能性也许会成为 MongoDB 的救赎,这也是其他公司的重要经验).
自由许可未必能起到帮助作用:Redis Labs 为其 Redis 数据库提供的就是自由许可,这意味着 AWS 的产品通常是最新的,这对 Redis 的发展是好事,但是对 Redis Labs 赚钱没有任何帮助。这迫使 Redis Labs 对其附加模块改变了授权方式,增加了「公共条款」;这迫使服务提供商付费使用,实际上也就把这个数据库变成了专有软件。
你很难不对 MongoDB Inc. 和 Redis Labs 感到同情:他们都投入了很多钱和精力去开发产品,现在 Amazon 却要从他们身上赚钱。但是问题是:Amazon 不是靠卖软件来赚钱,他们是靠提供企业所重视的服务来赚钱,而且 MongoDB 和 Redis 之所以能火很大程度上是因为他们一开始就是开源的。
经济现实与未来
我写的东西对于开源社区的家伙来说并没有什么新鲜:围绕着云服务对开源影响的尖锐争论已有一段时间。不过我想这场争论已经被转移到有关「公平」的讨论以及 AWS 对开源的亏欠上面。是的,像 MongoDB Inc. 和 Redis Labs 这样的公司工作非常努力,是,AWS 基本上是建立在开源基础上的,但这个世界是受经济现实而不是对公平的主观判断支配的。
这就是我从音乐开始的原因:音乐产业的销售骤然下降未必「公平」,是,像苹果这样的公司靠 iPod 这类盗版生意赚了好几十亿美元。但唯一有关系的现实是音乐本身,由于其无限可复制性,只能属于纯粹的日用品。
软件的情况也一样:磁盘上的比特基本上是免费的——不妨问问 Richard Stallman。在其具有重大影响的文章《为什么软件应该是自由的》中,Stallman 写道:
拷贝程序的成本近乎于零(而且你自己拷贝就可以),所以在自由市场,它的价格也应该近乎于零。而许可证费用明显遏制了程序的使用。如果一个非常有用的程序是专属的,那么使用它的人会少得多。
很容易就能发现一个程序对社会的总贡献会因为给它分配了所有者而被减少。程序的每一位潜在用户都面临着要付费使用的要求,他们也许会选择付费,或者放弃使用该程序。当用户选择付费时,这是两方之间财富的零和转移。但每次某人选择放弃使用该程序时,这就会伤害到那个人而且任何人都没有受益。负数加零的结果一定是负的。
但是这个并没有减少开发程序所需的工作量。因此,整个过程的效率,也就是带来的用户满意度 / 工作小时被降低了。
这种取舍是不可避免的,VC 资助开源公司的黄金时代将开始淡去是合理的猜测(尽管开源未必)。货币化模式要取决于本地软件的阻力;一旦云计算占据主导,经济模式的挑战性就要大得多。
不过这个应该会让 AWS、微软和 Google 好好反省一番。很难想象他们会愿意为开源软件付费,但与此同时,写(面向公众的)软件未必是他们云服务的核心竞争力。他们也享受到了开源公司的好处:后者提供了其性能、伸缩性和可用性的实现手段。现在是一种人人获利的局面:只是遵循经济现实的话,从长期看会意味着每个人的情况都会恶化。