云会杀死开源软件吗 ?

发表于 讨论求助 2021-01-28 22:47:54

智能互联虽然开源开发不会消失,但商业开源厂商的未来不是很有希望。

【编者按】开源、闭源软件、云计算......开源使用效果最好的地方是软件基础设施,而不是应用软件项目。如果云计算公司成为软件的基础设施提供商,它们的市场控制力可能让它们得以接管开源项目,并以低于销售开源服务的公司的价格销售这些软件服务。若真如此,开源公司还有未来吗?

本文转载云头条,原作者:Michael Stiefel是Reliable Software公司的负责人,是一名软件架构和开发顾问。


文章要点

虽然开源开发不会消失,但商业开源厂商的未来不是很有希望。随着全面管理的服务大行其道,生产支持、工具和咨询等方面的机会已随之减少。

云提供商在采用开源软件,并使其商业化,但未必增添价值或支持未来开发。

业界对于为开源开发提供资金的最佳方式缺乏共识。许多人仍然认为,开源软件应该是免费的。

“开放核心”或“双重许可”等模式似乎是支持未来商业开源的最有前景的方法。

开源许可可能会在商业使用方面变得更有限制性。

无法保证将来会复制过去的商业开源成功案例。

Redis已将部分企业模块的许可方式改为采用Apache 2.0+ Common Clause许可证。这些模块无法用作独立的商业SaaS。此举专门针对云提供商。

相关的争议引出了在开源社区已存在一段时间的问题。开源使用效果最好的地方是软件基础设施,而不是应用软件项目。如果云计算公司成为软件的基础设施提供商,它们的市场控制力可能让它们得以接管开源项目,并以低于销售开源服务的公司的价格销售这些软件服务。

如果真出现这种情形,开源公司还有未来吗?

专家小组成员

Paul Dix:InfluxData公司的创始人兼首席技术官。

Matt Klein:Lyft公司的软件工程师和Envoy的开发者。

Heather J. Meeker:著名律师事务所美迈斯(O’Melveny & Myers)的硅谷办事处合伙人兼OSS Capital的投资组合合伙人。

开发开源软件背后的商业模式是什么?换句话说,为开源开发提供资金的最佳方式是什么?哪种软件开发不适合开源?

Paul Dix:我认为有很多模式可以成功。首先是我所说的“开源物尽其用”(open source exhaust)。谷歌、微软或Facebook之类的大公司就是这样,它们开发的一些软件被认为不是其关键知识产权的一部分。这种软件就好比资产负债表上的一笔负债。大规模运行业务逻辑所需的基础设施软件就是这方面的典例。它没有提供为贵公司带来价值的秘诀,但没有它你又无法运营。因此,大公司会开源,试图让其他大公司和开发商参与其中,以支付持续改进和修复错误的成本。参与的公司还可以通过让外部的开发人员学习这些技能而受益。他们是以后可招聘的后备对象。

当然,对于试图靠开源基础设施软件开展业务的任何公司来说,这种方法不是好兆头。

如果公司希望主要的收入来源与开发某个开源软件项目有关,它们的选择很有限。我认为眼下唯一经过验证的模式是开放核心:公司开发的闭源软件为开源软件补充或增加新功能,然后将其作为托管的SaaS产品或作为内部部署的企业软件来卖。一些开源软件(OSS)倡导者认为,采用这种模式的公司实际上不是开源公司。然而,我能想到的每一家采用开放核心的公司投入到OSS的预算在开发研发预算中所占的比例都比任何大企业大得多。 Elastic、Cloudera、RedisLabs、InfluxData及其他许多公司都采用开放核心,开发OSS的人员在开发团队中的比例远高于谷歌、微软、Facebook、Netflix或采用开源物尽其用模式的其他任何大公司的开发团队。

开源基础设施公司过去认为,可以靠生产支持和工具来实现创收。然而,云提供商和完全托管服务的崛起对这种模式产生了负面影响,以至于我认为这种模式不可行。更多的证据表明云在继续影响开源基础设施,MongoDB最近宣布改变许可证就是个佐证。

最后,可以靠服务和支持来开展业务。这是为OSS开发提供资金的最低效方法。其创收方式如同一家咨询机构,不过如果你打造一个咨询团队,希望他们的计费工时有很高比例。这直接有悖于让你的团队开发OSS软件。如果他们在开发OSS,并不按时计费。任何咨询机构选择一个已经大受欢迎的OSS项目并提供咨询服务会更好。

最后一种方法是借助志愿者社区的免费工作。这对大型基础设施项目不起作用。随着项目日益受欢迎和复杂化,管理和激励在晚上和周末工作的志愿者团队变得非常困难。该模式适用于开发后基本上可以标记为已完成的小型代码库。大项目需要某种赞助,才能存活下来并向前发展。

Matt Klein:已尝试过诸多商业模式。它们都归结为下列模式的某种变体(以下是简单描述):

开放核心:软件的一部分是OSS,软件的一部分在付费墙后面。

SaaS:代表客户将OSS作为服务来运行。

服务/咨询/支持:对客户使用OSS所需要的各种辅助支持和开发收费。

一些商业模式结合了上述方法,所有上述模式都不乏成功案例。

实际上没有为OSS开发提供资金的“最佳方式”,因为有效的方式通常依赖具体项目。遗憾的是,无论采用哪种方法,靠OSS实现创收并非易事,因为许多用户从根本上认为OSS应该是免费的。哪些类型的软件开发根本不适合OSS?首先想到的就是代码库。一些库对现代系统来说绝对至关重要,但靠OSS库使用实现创收极其困难。比如说,多年来OpenSSL方面没有投入开发和资源,导致整套关键的互联网基础设施建立在一款维护不善又很基础的软件上。

Heather J. Meeker:开源软件方面唯一不能做的就是销售许可证来利用它。但是在开发开源软件的私营企业中,仍有足够的空间来赚钱。你完全要知道自己在卖什么、送什么。纯粹的开源公司很罕见,大获成功的Red Hat是个例外。纯粹的开源公司销售服务,主要是维护和支持,但也销售质量控制。客户买的是产品,而不是许可证。如果你在质量控制和包装方面投入大量精力,可以造就一家销售开源软件包的公司。但那样的话,实际上你销售的是对你声誉的依赖。大多数开源公司以“剃刀刀片”模式的某种变体来赚钱:给他们剃刀,向他们卖刀片。剃刀是开源软件,刀片有多种形式。一些是向上销售的模块(常常名为开放核心),一些是替代权利(相同软件的双重许可,比如MySQL),一些是“widget frosting”(销售在开源上运行的硬件,比如可能是iOT产品),还有一些是推先体验(一种在公开发布代码之前销售体验代码这种服务的“禁运”模式)。在其中几种模式中,你需要使用其他类型的许可证,这时候Commons Clause之类的替代许可证有了用武之地。

开源软件是否只对企业开发商来说有意义?还是说云供应商

发表
26906人 签到看排名