Liang FANG’s Blog My Thoughts On Everything

开源的可持续性

digital infrastructure

(题图来自 The Atlantic

开源项目的可持续性一直存在矛盾。开源贡献者疲惫不堪,但报酬微薄。新一代探索者试图平衡开源和商业之间的冲突,改变开源经济学。

1 现代社会依赖数字基础设施,但对其投入不足

如果没有开源软件,我们的社会不会是当今的样子。从互联网到传统行业,逐步建立在软件之上,且越来越多地使用构建成本低、容易发布、并可灵活定制的开源软件。就像实体基础设施的路与桥人人皆可通行一样,这些开源代码人人皆可使用,并构成了当今的数字基础设施。免费的开源软件,以及受益于开源软件的云服务爆发,使得创业成本急剧下降,直接促成了 21 世纪创业公司的复兴。

人们重视实体基础设施投资,却忽视数字基础设施。像实体基础设施一样,数字基础设施也需要定期维护,但一些有价值的软件无法得到商业模式的支持,也缺乏任何形式的机构支持。开源贡献者投入巨大精力换来的更多是认可和保持项目改进,并不要求任何回报。互联网巨头作为开源的最大受益者,因「搭便车问题」1,其财富并未有效回馈给开源贡献者。更严重的是,多数公司甚至都没意识到这一点。

2 忽视数字基础设施,存在隐性成本

代码错误、安全漏洞和服务中断。例如 2014 年在 OpenSSL 库中发现的 Heartbleed 安全漏洞。当时互联网 2/3 的 Web 服务器使用 OpenSSL 传递密码、信用卡等敏感信息2。OpenSSL 如此重要,以至于人们总认为其团队庞大、资源充足,而事实上它只有一名全职工程师,不足以及时修复漏洞。媒体的报道使 Heartbleed 广受关注,部分报道也关注到了 OpenSSL 本身,OpenSSL 因此暂时获得了资助,能支持 4 位全职工程师 3 年。

软件得不到必要的维护。2013 年,在大多数 Ruby 开发者托管库文件的 RubyGems.org 中发现了一个安全漏洞,但几天都没有修复,因其完全由志愿者维护。黑客发现了这个漏洞并攻击了 RubyGems.org 服务器。一些志愿者抽出休假时间以让其尽快恢复。由于 RubyGems.org 是 Ruby 基础架构的关键部分,因此这个安全问题影响了许多开发者和公司。该事件突显了纯粹的志愿者劳动力如何限制了重要基础设施安全性和可靠性。

优秀开源人才的流失。像任何志愿者社区一样,工作倦怠3在开源贡献者中很常见,不管是个人还是企业开发者,都发现自己在无偿应对需求,特别是来自科技巨头的 pull requests。部分开发者选择停止维护他们的项目,因为没有时间专职去做,并希望其他人能接手。与此同时,公司、政府和个人继续依赖和使用这些库,而不了解潜在的风险。此外,开源人才的流失不限于那些已经离开的贡献者,还包括一些试图加入的人。

3 开源可持续性不佳的原因?

属于隐性成本,造成关注度不够。由于代码不像热门视频或音乐那样具有吸引力,因此公众对这项工作的认知程度很低。多数人认为使用开源是理所应当的,却并没有考虑维持开源所需的人力和资源。OpenSSL 的故事并不独特4,但却是幸运的。无数其他项目继续默默无闻且不受支持。这是一个生产者(开源贡献者)非常熟悉的问题,但是使用者(软件公司和其他开源用户)似乎并不知情。数字基础设施缺乏足够的制度支持 。

社区存在强大的文化传统,反对商业利益。数字基础设施根植于开源,其志愿者文化不鼓励谈论金钱,认为金钱会腐蚀和削弱开源工作的自愿精神。尽管这种态度使得开源发展壮大成今天的样子,但也使得开发者难以在不感到内疚或担心被视为缺乏团队精神的情况下公开讨论他们的资源需求。此外,开源的高度分散和民主的特性也使得协调和维持全球分布的志愿者团队付费工作本身就极具挑战性。

更实际的是,开源缺少持续性的商业模式。开源常见的商业模式包括:

  1. 专业服务:最著名的是 Red Hat,它为使用 Linux 的企业提供支持,培训和其他服务。Red Hat 成立于 1993 年,是一家上市公司,收入达为每年 30 亿美元,上月被 IBM 以 340 亿美元收购。
  2. 开源社区版+付费商业版:社区版开源且免费,可获取最新的模块,但不提供任何保障。商业版闭源且收费,提供质量测试、Bug 修复、性能优化、增值功能和技术支持等商业用户感兴趣的服务5
  3. Open Core模式:通常涉及一种功能强大的开源核心产品,围绕这个核心提供商业扩展,并捆绑了支持和服务。目前采用这种方式的较知名公司有 Cloudera、Elastic、Confluent 等。
  4. 基金会支持:如成立于 1999 年的 Apache 软件基金会,现已成为 350 多个开源项目的孵化器。通过接受企业捐赠,它为项目提供组织和法务等方面的支持,但不直接为项目提供资金。若项目本身足够大,可创建独立的基金会进行管理和募资,如 Python、Node.js 和 Django 等。
  5. 赏金:个人或公司有时会发布「赏金」,希望以此得到想要的功能特性。如 IBM 自 2003 年起就用 Bountysource 网站为各种项目请求新功能,也有很多公司为发现开源软件的安全漏洞提供了悬赏。
  6. 众筹:通过众筹获得资助,如 Kickstarter 或 Indiegogo。Django 数据库的核心开发者 Andrew Godwin 曾从 Kickstarter 的 507 名支持者那里成功筹集了 17952 英镑,以资助 Django 数据库的工作。
  7. 企业支持:因项目价值,企业聘请贡献者全职工作。John Resig 创建了 jQuery,一个被广泛使用 JavaScript 编程库。John 于 2007 年加入 Mozilla,担任布道师,为 jQuery 获得了所需的组织支持。

从中,我们可以发现若干「痛点」:

  1. 可持续性:仅专业服务、付费商业版和 Open Core 可获得持续且较稳定的收入,其余方式较不确定,严格意义上不算「商业模式」。
  2. 支持对象:以特定项目为主,对个人贡献者的支持较少。
  3. 时间精力:如果有足够多的用户使用该项目并愿意付费,那么专业服务对于个人开发者或小型团队来说是一个可行的选择,但同时这也会分散开发者改进项目本身的时间和精力。
  4. 贫富差距:越来越多的眼球和资源都投到了极少数热门项目和个人上6,导致基础和小众软件的生存空间越来越有限。
  5. 中立性:企业聘请个人贡献者全职工作,可能会影响项目的中立性或原本的发展方向,不利于整个社区的发展。

4 使开源可持续发展的新商业模式探索

支持个人开发者

  1. 众筹2.0:直接从用户或粉丝获得收入,向受捐助者(开源贡献者)承诺少量经常性收入,以示对其工作的支持,两个流行的平台:
    • Patreon,不仅关注开源贡献者,也关注其他内容创作者,近期除捐赠外,也开始提供商业贷款,帮助他们建立更大的媒体业务。
    • Liberapay,前身 Gratipay 可能是资助开源项目和人员的最大平台,但于去年底关闭,分支 Liberapay 重新为经常性捐赠提供了支持。
  2. 双许可证:一种在商业付费需求和公开代码意愿间的平衡,例如:
    • License Zero,基于双条款 BSD 的宽松许可,添加了要求商业用户 90 天后购买商业许可的条款,允许用户在购买之前试用。
    • Fair Source,Sourcegraph 推出的「source visible」许可,对于个人和小型企业免费,但为更大的商业用例付费提供了法律依据。

支持组织或项目

  1. 商业化和软件保障:类似 Red Hat 模式,但可支持较小的项目:
    • Tidelift,「开源届的 Netflix」7,企业用户向其支付订阅费以确保所使用的开源软件得到适当维护,旨在连接企业用户为开源贡献者创造稳定的收入,能在同一保护伞下支持数百个独立开发者。
  2. 对开源货币化本身的开源:激进的透明度可能重塑开源经济学:

    • Open Collective,其平台为「团体」提供募资工具,并提供机制以允许这些团体成员以民主和透明的方式花钱,这种极度的透明度好比 Web 浏览器的「查看源代码」功能。

5 开源可持续性的趋势判断

得益于 GitHub 和 VC,开源正加速发展。GitHub 是开源爆炸式增长的中心,截至 2018 年 11 月已托管了超过 1 亿个 repo;VC 踊跃投资开源8,因其能成为帮助其他项目成功的平台,但也受到资产类别的限制,VC 无法投资一个没有商业模式的项目。

传统的专业服务,Red Hat 式成功难以复制。一方面,Red Hat 受益于其技术的先发优势,另一方面,服务模式没法超高速发展,在公有云发展趋势的影响下,市场空间会受到挤压,将出现更多并购案例。

开源可持续性探索,目前仍处于早期阶段。上述新商业模式探索中,目前只有少数的项目能支撑其开发者全职工作,贫富差距又一次显现。此外 License Zero 和 Tidelift 太新了,后续表现仍有待观察。

区块链有望能改进互联网的利益分配机制。第一代互联网基础设施(如 DNS、TCP/IP 协议等)的创造者们,并没有获得适当的回报,区块链未来可能带来对底层激励机制的创新,从根本上改善开源的可持续性。


  1. 开源软件是免费的,每个人(无论是个人还是企业)都在使用,所以没有人会受激励去回馈社区,认为其他人会介入。如果放任不管,这将导致一场公地悲剧。 

  2. Half a million widely trusted websites vulnerable to Heartbleed bug, https://news.netcraft.com/archives/2014/04/08/half-a-million-widely-trusted-websites-vulnerable-to-heartbleed-bug.html 

  3. 为 Ruby on Rails 撰写文档的 Ryan Bigg 在 2015 年 11 月宣布退出所有开源工作,并解释道:「我没有时间或精力再投入开源了。我根本没有得到任何开源工作的报酬,所以我在那里的工作是我本可以用来生活或写作的时间。期望我在正常工作之外做更多工作是不公平的,而且不能得到合理的回报(时间或金钱)。」 

  4. 2015 年的一项研究调查了 GitHub 上最常用的 133 个项目,发现 64% 的项目只依靠一两位开发者来生存,尽管可能有很多兼职贡献者,但对许多项目而言,项目的主要管理责任仅限少数人。 

  5. 根据 2018 年 Tidelift 的开源调研,83% 的企业用户愿意为开源付费,其考虑因素依次是:维护和 Bug 修复、安全更新、服务支持和新功能开发。 

  6. 科技巨头通常优先支持使其影响力提升最大的开源项目(往往是它们自己开发的),支持整个开源社区相对来说「性价比」较低。 

  7. ‘Netflix for Open Source’ Wants Developers to Get Paid, https://www.wired.com/story/netflix-open-source-wants-developers-get-paid 

  8. 根据 Lightspeed Venture Partners 统计,从 2010 至 2015 年,VC 对开源公司的投资超过 40 亿美元,较前五年增长了十倍。