几个月前,我在主题是开源数据库的大会PerconaLive上发表了主题演讲。我的演讲报告题为《开源商业模式遭围攻》,阐述了开源数据库公司或任何开源软件基础设施面临像亚马逊网络服务(AWS)、谷歌云和微软Azure这些云提供商带来的切实存在的威胁。演讲内容来自于我本人在过去的三年半借助InfluxDB及其他项目打造开源业务方面的经验。
我在演讲时先承认了这一点:开源不是一种商业模式,它是开发和交付软件的一种方式。我认为,除了赚钱(以及能够继续投入于进一步的开发)这个方面外,开源是所有方面都要比闭源开发出色得多的一种方法。开源软件的开发总是得到补助,无论借助哪种形式来补助:程序员的空闲时间(他们有空开发别的项目)、投资者投入的资金、贡献的代码,或者是另外某项成功的业务(比如搜索广告业务)。
作为试图将开源转变成可持续发展业务的开发人员,我们必须回答的一个问题是:我们的补助将来自哪里?一些较常见的方法是咨询及专业服务、支持及培训、生产级工具及监控、开放核心(open core)以及软件即服务(SaaS)。这些无一例外地存在问题。
咨询没什么意义,因为到头来你的许多顾问编写开源软件时付出的工作时间是非计费时间。在一家普通的咨询公司,你希望每个人在90%或更多的时间向客户按时计费。如果你的一半开发人员编写开源软件而不计费,那么你所希望的最佳利用率仅为50%!要是围绕某个已经成功的大型开源项目来开办咨询业务,你的日子会好过些。然后,你可能是按小时计费的专家,只贡献你的客户直接付费的修复补丁。这绝对不是很理想,因为我们想要找到一种方法,把大部分时间用来直接编写开源软件。
支持难以维持,因为支持并不提供强制别人购买的功能。InfluxData当然遇到过这种情形。我们提供了近一年的支持,后来改用开放核心,那时候我们只有几个注册客户。此外,支持在你和社区及用户之间形成了不当激励(perverse incentives)。理想情况下,你的软件在生产环境下应该易于使用和运行。你希望世界上的其他人成为你项目的专家。然而,这两个目标都使得销售支持显得更困难了。最后,支持合同续签率低得可怜。几年后,你的客户对于项目有了一定的认知,拥有一定的专长,开始质疑为什么要为支持掏钱。
我认为生产级工具和监控是过去15年来大多数开源软件供应商一直声称是商业模式的基石。这种模式的问题在于,你现在与其他监控供应商进行竞争;更重要的是,你现在与主动托管唾手可得的软件的云供应商进行竞争。以AWS托管Elastic为例。它们没有任何商业关系,对于在AWS上运行ElasticSearch的客户来说,他们没有理由向Elastic购买支持或监控软件。
上述情形促使我们在去年采用了开放核心模式。也就是说,我们有一个开源项目作为核心,还有一个闭源商业分支版,它增加了更多的功能(比如高可用性、集群和高级安全)。几年前,开放核心这个概念让我望而生畏。它有悖于我喜欢开源软件的地方。那就是可随意处理代码:开办业务,学习、添加和修改代码,以及无需从头开始自行编写一切,通常就能完善现有产品。这是个艰难的决定,时至今日我仍在纠结。
然而,立即决定走开放核心这条路后,我们激发起了市场的兴趣。有人联系我们,主动购买我们的软件。去年这个时候对我们公司来说至关重要。商业方面更积极主动的动因之一是,我知道我们在几个月内就会融到B轮资金。简而言之,我们需要有一个合理的故事,表明我们如何将这个项目变成一家带来投资回报的可持续发展的公司。
尽管这是个艰难的决定,但我确信:要是当初没有作出这个决定,我们这家公司今天不复存在,因此也不会贡献任何种类的开源软件了。
我还没有提到的最后一种模式是SaaS。我认为这是开源软件的未来所在。但如果成功的SaaS模式要取得成功,它要更像开放核心。以Databricks或Redis Labs为例。这两家公司在面向托管型SaaS平台的闭源软件上都作了大量的投入。在未来想在云市场大有作为、拿来Spark或Redis托管的潜在竞争对手眼里,这些是真正的护城河和绊脚石。
云供应商旨在让基础设施软件很容易。首先,你不必为服务器和网络设备而操心。然后,你不必为管理数据库或可扩展的对象存储区而操心。公司自行运行基础设施的时代已一去不复返,就像一百年前建筑物自行发电那样。随着云供应商日趋成熟,它们在更横向发展的同时更纵向发展。它们瞄准各种各样的基础设施软件,同时在垂直领域(比如协作、分析、监控及其他无数领域垂直领域)部署软件。它们还将开源软件用作构建模块。
这意味着,试图靠开源基础设施软件开展业务的公司必须找到新的方法来赚钱。支持和工具行不通。咨询不是可投资的业务。开放核心和SaaS版本的开放核心才是我认为唯一切实可行的选择。一种限制性更强的许可证是一条路子,但这并不遵循开源理想:别人可以随意修改和使用你的代码,而不受限制。这种随意使用正是推动我们在云和基础设施软件领域看到创新不断的关键。20年前,由于代码数量众多、需要庞大投入,没有一家供应商希望提供目前供应商支持的所有服务。开源理想是,我们让别人和我们自己能够站在巨人的肩膀上,推动技术前进。
别误会我,我并不讨厌云供应商。恰恰相反,在我职业生涯的最近十年,我完全立足于云平台。在此之前,在微软认为开源是危险病毒的早期日子,我一直站在微软阵营。我很高兴立足于云端开源平台。但鉴于云供应商显然野心勃勃,如果开发开源人员期望开办可持续发展的长期业务,就要有一项明确的计划:在继续投入于开源软件的同时又能赚钱。
我看到更多的公司走开放核心和SaaS这条路:InfluxData、Mongo、DataStax、Elastic、Databricks、RedisLabs、Pivotal(Cloud Foundry)、Hashicorp和Docker等等。连Kafka背后的公司Confluent也在不久前推出了云服务。行业决定往这个方向走。我们继续要竭力应对的问题是在哪里划定界线。什么应该是开源免费的,什么应该是闭源商业的?在Influx,我们继续将75%以上的开发精力投入到开源软件。我们大量投入于开源,开源继续是让我和整个公司引以为豪的方面。之前我们推出了第一个正式版本的Chronograf,这个完全开源的项目是我们整套架构的用户界面(UI)。
大会上发言后,台下许多听众跑过来找我。我在发言时惴惴不安,因为知道许多听众花了十多年的时间来创建开源项目,创办基于开源项目的公司。来自不同项目的许多人表示,他们在发展过程中也遇到了同样的困惑。我和MySQL的许多开发人员进行了交谈,其中一些人在MySQL工作了15年。他们说,他们经历了这每个阶段,甚至尝试了另外一些并不有效的疯狂想法(比如在文档页面上卖广告和推销品牌设备)。
很高兴听到并非只有我们在彻底地全面考虑这些问题。尽管我的演讲题目有点危言耸听,但是我下台后,感觉更有干劲了,更加看好开源软件的前景了。在InfluxData,我们将继续大力投入于开源,同时确保我们的项目背后有一种切实可行的商业模式,确保项目长期存活下去。
相关阅读:
中高端IT圈人群,欢迎加入!
赏金制:欢迎来爆料!长期有效!
为何开源商业模式会失败?
AI 也开源:50 大开源 AI 项目
Facebook开源LogDevice:一种用于日志的分布式数据存储系统
走近KSQL:面向Apache Kafka的开源数据流SQL引擎
甲骨文考虑将 Java EE 送给开源基金会
GitHub发布2017年开源调查报告:存在性骚扰行为
科技公司钟爱的50款开源工具
俄罗斯将把IBM、Oracle和微软产品换成开源软件
为何说中国是开源软件的试验场?
开源露败相,SaaS唱主角,API将胜出
「云头条」人见人爱的九大开源DevOps工具
开源的赚钱之道
开源代码胜过专有代码的七大原因
16款开源大数据数据库:总有一个适合你
为何开源商业模式会失败?
分析师:开源遇困、安全反弹、PaaS走俏