内容提要
开放核心是一种开源的商业化策略,除了开源版本外,还有一个扩展版本,通常称为“企业”版本,具有额外的功能。然而,使用开放核心可能会导致社区成员无法贡献特性,因为这些特性只在企业版中可用。企业需要了解社区需求,并确保开源版本能够满足需求。保留专有版本的功能对于无法负担企业软件的社区成员是一个好主意。与商业源代码许可证相比,开放核心方法对用户更有利,因为用户可以立即分叉社区版本。
延伸解读
开放核心模式下的社区贡献困境
开放核心模式中,企业版保留部分功能以维持商业差异化,这可能导致社区贡献的类似功能被拒绝。例如,Percona为MySQL开发的企业版等效功能未被Oracle合并,Hoppscotch也公开拒绝过社区功能。这种拒绝虽在商业上合理,但容易引发社区不满,因为社区成员希望免费获得全功能软件。企业需在维护差异化和满足社区需求之间找到平衡。
分叉:社区的权利与挑战
当社区对项目维护者的决策不满时,有权进行分叉,如MySQL分叉出MariaDB、Elasticsearch分叉出OpenSearch。分叉是社区对项目所有者不服务社区利益的有力防御。然而,创建分叉需要大量时间、精力和资金,许多社区成员虽抱怨却不愿实际投入,因此分叉并非易事。
开放核心与BSL许可证的对比
开放核心模式比商业源代码许可证(BSL)对用户更有利。在开放核心下,用户若与维护者产生不可调和的分歧,可立即分叉社区版本;而BSL下,用户只能分叉几年前过时且不安全的版本,几乎无法赶上。因此,开放核心为用户提供了更及时的分叉权利。
更优选择:供应商中立治理的项目
对于社区和用户需求,PostgreSQL、Linux和Kubernetes等由供应商中立组织治理的项目是更好的选择。多个供应商可创建不同版本,用户自由选择,合并社区贡献的决策基于整个生态系统而非单一企业利益。此外,无共识的功能可在某个版本中“孵化”以证明其价值。
Q&A
什么是开放核心策略?
开放核心是一种开源商业化策略,包含开源版本和扩展的企业版本,后者具有额外功能。
开放核心模型对社区用户有什么影响?
开放核心模型为开源用户提供了价值,但可能导致社区成员无法贡献特性,因为这些特性通常只在企业版中可用。
企业如何避免社区的不满和分叉?
企业需要理解社区需求,确保开源版本满足这些需求,并明确哪些功能将保留给专有版本,以避免社区成员感到意外。
社区成员在面对拒绝贡献时可以采取什么行动?
社区成员有权进行分叉,尽管创建分叉需要大量时间和资源。
开放核心与最终开源许可证相比有什么优势?
开放核心方法相比于最终开源许可证更有利于用户,因为用户可以立即分叉社区版本,而不必等到过时的版本。
有哪些开源项目是更好的选择?
PostgreSQL、Linux和Kubernetes是更好的选择,因为它们由独立组织管理,多个供应商可以创建不同版本。