开源和赚钱何去何从

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

在2019年的今天,自由和开源软件已经着着实实的影响着我们的生活,从Web服务器到信息屏,再到每一个弹出广告背后的挖掘算法,几乎与我们交互的每个计算机系统都至少有部分软件来源于自由软件。IT科技行业中,自由软件更是催生了众多初创公司,也促成了并全球历史上规模很大的软件收购(340亿美刀IBM收购了红帽)。

开源和赚钱何去何从

自由软件是Richard Stallman(FSF基金会)带给世界的礼物,它使我们以自己所能了解的方式的运作。从一开始,自由软件是让世界大吃了一惊。它的慷慨自由,让有些企业不大习惯,不愿意使用自由软件。而且太过于太激进,太过于政治化,因此,又被改良而出现了"开源"软件,随之而来开源软件便接管了整个世界。

但是开源世界近期开始出现了一些不和谐。在过去的一年中,Redis Labs,MongoDB和Confluent等公司相继更改了其软件许可,从开放源代码许可改为更严格的条款,限制了软件的操作面,他们是否还是开源软件成了讨论的焦点。

Redis Labs,MongoDB等公司认为,导致产生该问题的是由于现代的技术的进步,即托管软件服务形态,该形态也被称为"云服务"。具体实例化就是Amazon AWS。Saas商和开源厂商的矛盾开始显现。

云服务的突起及冲突

MongoDB的公司一起开源" NoSQL"数据库MongoDB而闻名。MongoDB的数据库对于存储非结构化数据(例如图像)非常有用,它可以处理这些非结构化数据和传统数据类型。数据存储在类似于JSON的文档中,而不是关系数据库的列和行中。由于没有结构化表,因此没有用于处理数据的"结构化查询语言",因此被称为"NoSQL"。

MongoDB不是唯一的NoSQL数据库,但它是使用最广泛的一个。根据行业集成商DB Engines的数据,MongoDB是第五受欢迎的数据库,从Google到Code Academy再到Foursquare的每个企业都在使用MongoDB。

MongoDB也在牵头创建一种新型的开源许可证,其CTO Eliot Horowitz认为,随着计算进入云的新世界,这对于保护开源软件业务是必要的。

Horowitz等人认为,云服务化促使开源社区重新考虑并可能更新开源许可证,以"应对新环境中的新挑战"。本质上,挑战是AWS,Google Cloud和Microsoft Azure,它们都可以使用开源软件,将其包装为服务并进行转售。AWS或Azure打包MongoDB并将其作为软件即服务(SaaS)的一部分提供的问题在于,它随后会与MongoDB自己的基于云的SaaS(MongoDB Atlas)服务竞争。那么,威胁的不是MongoDB的源代码,而是从该源代码派生的MongoDB自己的SaaS,而这恰恰是该MongoDB公司的主要收入来源。

为了抵御对其潜在威胁,MongoDB已从Gnu通用公共许可证(GPL)转移到所谓的服务器端公共许可证(SSPL)。SSPL从本质上讲,就是你可以使用此软件做任何你想做的事,只是不能用它来构建与MongoDB Atlas相竞争的东西。

最初,MongoDB将SSPL提交给开源合作组织OSI,该组织负责监督和批准新的开源许可证。看到OSI批准无望后,MongoDB在今年早些时候有撤销该提交。所以SSPL不是一个开源许可证,并且永远不会。

开源和赚钱何去何从

开源许可证有很多变种,但是自1998年OSI成立以来的要旨通常有:你可以使用此代码并对其进行所需的操作,但是你不能使该代码专有,如果在其他项目中使用它,则该项目也不是专有的。这些许可证是通过这种方式编写的,以防止有些公司利用开放源代码,把开放源代码打包到自己的代码中而不将所做的改进反馈给原始的开源项目。

但是由于SaaS的概念是今年内才出现的。Horowitz认为在SaaS产品中打包一段代码在现代意义上等同于在应用程序中使用它。这是一个新颖的论点,但它可以解决一个非常老的问题,而不仅仅是许可。这个问题早在OSI出现之前的免费软件就存在:如果免费提供软件,如何从软件中赚钱?

一个传统的答案是,围绕开源软件出售服务。但是对于Horowitz来说,这还不够。他认为"通过支持合同使开源货币化从来都不是一种伟大的商业模式。" Red Hat可能会不同意这一观点,但是Horowitz认为,更多保护性许可证将带来更多风险投资,并基于MongoDB使用的开放模型产生更多软件业务。他说:"我们很独特,我希望我们不那么独特。"

他可能是正确的。更具保护性的许可证可能会吸引更多的风险投资,因为其投资回报的可能性更大。但是,如果确实有人要投这笔资金,它也不是投资于开源,因为对软件的这种限制意味着它不再符合开源的定义。

开源坚守者观点

相当多的开源拥护者已经对MongoDB和Horowitz的理念提出了反驳。

原始开放源代码定义的合著者布鲁斯.佩伦斯(Bruce Perens)说,SSPL与OSI的第九个开放源代码定义不兼容,该定义中"许可不得限制其他软件"。由于SSPL强制将与涵盖软件集成在一起的所有SaaS软件(而不是其衍生版本)强制为开源,因此该测试未通过。

MongoDB绝不是唯一一个抱怨受云服务影响利润的开源厂商。另一家数据存储公司Redis Labs率先发出了有关云提供商威胁其业务的警报,Redis Labs最终可能会有更好的解决方案。Redis Labs最初将其许可更改为包括一些通用条款的分许可(Common Clause sub-license),该许可禁止任何人出售其涵盖的任何软件。今年春天,Redis Labs进行了另一项许可更改,本质上放弃了所有开源软件的伪装,并为其某些模块采用了本地专有的许可。需要明确的是,Redis的大多数受三条款BSD许可的约束,但某些模块则不受其约束,包括RedisJSON,RedisSearch,RedisGraph,RedisML和RedisBloom。

开源和赚钱何去何从

Redis Labs适用于这些模块的许可证表示,尽管用户可以查看和修改代码或在其应用程序中使用代码,但许可证限制了他们可以构建哪种类型的应用程序。有了Redis Labs的新许可证,你就可以随意构建所需的任何东西。但是不能构建数据库产品,缓存引擎,处理引擎,搜索引擎,索引引擎或任何类型的ML或AI派生的服务引擎。换句话说,不能使用Redis Labs的代码与Redis Labs竞争。这明显违反了开放源代码许可的核心原则之一,即对派生软件没有任何限制。

对于Redis Labs和MongoDB而言,一边申明你是开源的,一边却只允许自己从开源软件赚钱,这是没有道理的,只有专有软件才会这样做。

虽然有部分问题是还未明确,但确实有一些公司已经设法通过开源和专有代码获得成功。Elastic就是这样一个例。亚马逊在AWS上提供了多年的Elasticsearch服务(表面上与Elastic自己的产品竞争),而且亚马逊最近还打包了自己的Elasticsearch代码库版本,将其扩展为免费提供的Elastic服务,但是并未开源这些服务的代码。Elastic对此也只是听之任之。

历史的教训

为什么MongoDB完全想要开源?有很多非常成功的专有软件案例,为什么不走专有软件之路呢?

Horowitz认为"开源会带来更好的系统软件,尤其是数据库",并继续将安全性和社区性作为保留开源的优势。在这两方面,他都是正确的。对软件的更多关注意味着更少的错误,更好的安全性。

实际上历史上也有这样的案例,先通过开源构建,然后又突然闭源导致开项目失败。

Xfree86项目是在整个1990年至2000年代早期X Windows的事实上的运行标准。2004年,Xfree86开始发布与GPL协议相悖的代码。使用Xfree86的下游操作系统认为这是不可接受的,因此诞生了一个分支Xorg。今天,Xorg曾经占据Xfree86的位置,而Xfree86被废弃了。

还有很多这样的例子:LibreOffice是OpenOffice的分支,MariaDB是由于MySQL的许可证更改而产生的,Wireshark是因Ethereal而产生的,…,并且该列表还在继续。

在所有这些情况下要注意的关键不仅是发生了Fork,而且新项目带动了开发人员,社区和长期维持开源软件的势头。失去开源社区的善意,在背弃方面可能很可怕的:Xfreeorg在Xorg开始六个月后实际上已经死亡。OpenOffice很快也变得无关紧要。

开源历史的压倒性教训是,一旦你开源,就很难背叛并生存。

开源的宗旨

开源和赚钱何去何从

如果开放源代码的历史告诉我们没有回头路,那值得考虑。

Beanbooks是Linux计算机制造商System76衍生出来的一个小项目,被认为是理想的开源软件方案的示例。在开源的新兴经济范式中,公司的非差异化软件是其开源软件的最佳方案。也就是说,开源提供了业务的基础结构,而不是核心。换句话说,Beanbooks不是System76的利润中心,而是System76利润中心的使能技术,该技术仍在构建基于Linux的计算机。System76的创始人卡尔·里切尔(Carl Richell)认为成功的关键不是开源软件,而是创新。他说:"差异化不是你今天要做的,而是前进的速度。"作为软件开发人员,你将有一个良好的开端,并且希望对你的发展方向有所了解。Richell补充说:"唯一成功的方法就是保持领先。" "我认为许可证与许可证无关。"

Richell说:"如果开放源码中不包含慷慨的内容,那将行不通。"慷慨的,则是出于任何目的使用该软件的权利。这一直是新开放许可证的基本试金石。

许可证是否限制了软件的慷慨性?今天开源的地方在于它可以在任何地方,任何地方使用。

需要结合开源软件和专有软件吗?没问题。

需要重新编写该开源库,以便它可以与你的专有代码交互吗?没问题。

是否想要使用该开源库,将其包装为服务并出售?没问题。归根结底,这就是开源的意义:慷慨带来自由。

软件自动化和部署工具的Chef项目似乎会同意这个观点。Chef计划提供了相异于MongoDB和Redis的做法。今年Chef宣布将其许可证更改为完全开源(根据Apache 2.0许可证)。"我们欢迎任何人出于任何目的使用和扩展我们的软件,以符合自由软件的四个基本自由" Chef首席执行官Barry Crist写道。尽管Crist没有提及任何其他公司,但除了对Redis和MongoDB的回应外,很难将"四个基本自由"另有他指。

开源和赚钱何去何从

未来会是什么样

每个人都喜欢失败者,Redis Labs和MongoDB希望将自己描绘成以AWS形式与邪恶势力展开英勇战斗的开源失败者。真是这样么?

Redis Labs和MongoDB都看起来仍然非常健康。 Redis Labs今年早些时候筹集了6000万美元的资金,根据进行融资的公司,Redis看起来有望成功进行IPO。从所有方面来看,MongoDB在2017年的IPO取得了巨大成功。它的股票以24美元的价格首次公开发行,此后一直稳步攀升。今天,它的交易价格超过每股100美元。MongoDB很大的用户之一Lyft在2019年转向亚马逊确实造成了一定的影响,但是在股价小幅下跌之后,MongoDB的股票又回到之前的水平。

相关推荐