关于开放核心的一些思考

作者:Kyle Rankin

为什么开放核心软件对FOSS运动不利。

自由及开源软件 (FOSS) 本身并非天生反商业。事实上,许多不同的商业模式都建立在FOSS之上。最好的模式是通过内部代码贡献来持续推进FOSS,并在总体上推进自由软件的原则。例如,有支持模式,公司开发自由软件,但销售其专家支持。

在这里,我想稍微谈谈其中一个更成问题的模式,即开放核心模式,因为它更加普遍,并且产生了一些与自由软件原则背道而驰的反常激励。

如果您没有听说过,开放核心商业模式是指公司开发自由软件(通常是旨在服务器上运行的网络服务),并建立该自由代码库的用户和贡献者基础。一旦有大量的特性,公司就会开始开发产品的“企业”版本,其中包含针对企业用途的附加特性。这些企业特性可能包括额外的可扩展性、诸如LDAP/Active Directory支持或单点登录 (SSO) 或第三方集成的登录特性,或者它可能只是产品的总体改进版本,具有更多的代码优化和速度。

由于这样的公司希望向客户收取企业版本的使用费,它会创建自由软件代码库的封闭分支,或者它可能会将额外的专有特性作为模块提供,这样它在违反其自由软件许可证方面的问题就会更少。

开放核心模式的第一个问题是,从表面上看,它并没有进一步推动自由软件背后的原则,因为核心开发人员的时间被集中在编写和推广专有软件上,而不是自由软件。这些公司通常只是将FOSS用作一种免费软件,以获得最初的用户基础,并作为软件开发人员的免费众包,在公司规模小且资金短缺时开发基础产品,而不是宣传自由软件给用户和开发者带来的自由的重要性。随着公司获得更多资金,它就能雇用最活跃的社区开发者,这样他们就可以停止在社区版上工作,转而全职为公司的专有软件工作。

这就引出了第二个问题。开放核心的本质创造了一种反常的情况,公司被激励将开发人员的精力投入到改进专有产品(带来资金)上,并且不鼓励将任何这些改进转移到自由软件社区版中。毕竟,如果社区版获得了更多特性,为什么有人会为企业版付费呢?因此,社区版通常落后于企业版很多步,如果它还能获得很多更新的话。

所有这些高效的核心开发人员都在致力于改进封闭代码。剩余的社区最终会进行改进,通常是以(奇怪的是)第三方模块的形式,因为要让开放核心项目背后的公司接受与企业特性竞争的模块可能很困难。

更糟糕的是,许多所谓的“企业”特性最终都集中在速度优化或基本安全特性上,例如TLS支持——这些都是您希望在自由软件版本中看到的简单改进。这些速度或安全改进永远不会进入社区版,因为该公司打算只有个人用户才会使用该版本。

来自公司的信息很明确:尽管公司可能表面上(在开始时)支持自由软件,但它认为自由软件是为业余爱好者准备的,而专有软件是为专业人士准备的。

开放核心模式的最终问题是,在这些初创公司进入企业阶段并开始赚钱后,公司内部没有任何动力启动任何新的自由软件项目。毕竟,如果核心开发人员提出了关于改进或新侧项目的好主意,那可能是公司可以出售的东西,因此它最终会归入专有软件“企业”的保护伞下。

最终,开放核心模式是微软公司著名的“拥抱、扩展和消灭”策略的一个变体,只是专为风险投资支持的初创公司设计。该模型允许初创公司在资金和开发人员短缺时拥抱FOSS,以便为其软件获得一些免费开发和用户。一旦他们拥有可以证明下一轮风险投资资金合理性的基础产品,他们就会从拥抱转向扩展免费“核心”,以添加专有企业软件。最后,自由软件核心逐渐被消灭。核心产品中的改进和新特性逐渐减少,因为专有企业产品获得了大部分开发人员时间,并且两个版本之间的差异变得太难以调和。自由软件版本变成了一种免费软件演示,供企业用户在获得“真正”版本之前试用。最终,社区版远远落后,并被公司放弃,因为它试图达到其业务的盈利阶段,并且不再能证明在自由软件上投入开发人员的努力是合理的。专有软件获胜,自由软件失败。

Kyle Rankin 是Linux Journal的技术编辑和专栏作家,以及Purism的首席安全官。他是Linux Hardening in Hostile NetworksDevOps TroubleshootingThe Official Ubuntu Server BookKnoppix HacksKnoppix Pocket ReferenceLinux Multimedia HacksUbuntu Hacks的作者,也是许多其他O'Reilly书籍的贡献者。Rankin 经常在安全和开源软件方面发表演讲,包括在 BsidesLV、O'Reilly Security Conference、OSCON、SCALE、CactusCon、Linux World Expo 和 Penguicon 上。您可以在 @kylerankin 上关注他。

加载Disqus评论