第 2 小节:关于开源项目的商业化

大约 15 分钟

# 第 2 小节:关于开源项目的商业化

怎么找到一个开源平台?

怎么找到自己适合自己的开源的项目?

怎么克隆项目并且运用到自己的项目上?

开源项目到底是基于什么开源协议对外开放?

当你看到这个章节的时候相信你对以上话题有了一定的认知和了解

# 开源和商业化的理解

在众多的开源平台中,看到的形形色色的大型开源项目中,我们会留意到开源项目都注明各种各样的开源协议,比如 GPL、LGPL、BSD、MIT、Apache、Creative Commons 等等。

疑问来了,不是说好的开源吗?怎么又冒出来个协议?难道我都获得了源代码了还不能用于我的项目之上吗?作者还要收费不成?没错是有这么个协议存在,而且具有一定的约束能力。我们所理解的开源和实际的开源还是存在一点点的差别,所以必须把开源协议拿出来修饰一下这个话题。

开源许可协议:开源许可协议是指开源社区为了维护作者和贡献者的合法权利,保证软件不被一些商业机构或个人窃取,影响软件的发展而开发的协议。(来源:百度百科 (opens new window)

不同的开源协议有着不同的开源约束能力,是为了保障开源项目的可持续性发展,只要我们在约束条件内,可以自由发挥,并非完全不能使用开源项目,使用者可以最大程度去复制、分发、盈利、修改、发行。

开源是开源项目的核心,同时优秀的开源项目也承载着巨大的流量,当开源项目具备比较高的变现能力和其它核心竞争力的时候,项目可能会被收购,比如 MySQL,开源项目就有可能转化为商业项目。当开源项目的性质发生变化之后,可能会收回部分开源的核心功能,为了增加商业项目的竞争力量。

开源的精神本质就是无偿贡献,但是在奉献过程中会消耗作者岁月、经历、资金。任何开源项目都有转化为商业的权力,这也是开源贡献者的权利。但是开源的商业转化将会丢失部分流量,这个时候贡献者要做到权衡利弊。

既然不能直接转化商业项目获利,怎么又能保证贡献者获得相应的价值回报呢?所以聪明的人类想到了一个折中的办法,那就是开源和商业化并存、相互依赖、商业服务叠加。一方面保证了流量的不丢失,一方面保证了开源商业化不受到阻碍。比如开源 Red Hat 是基于著名开源 Linux 系统内核开发的操作系统,本身 Red Hat 是开源免费的,源代码公开。但是系统中就叠加了商业收费服务,这些收费服务并不影响用户的使用,只有用户需要更加专业的、更高要求的服务才收费,这也保证了开源项目的最大商业化,社区成员也会高度重视这种叠加的收费服务。

开源和商业化并不冲突,而是相互共存、互补、突现。

# 商业化的开源项目特征

互联网高速发展的时代,让开源项目变成了可能,很多开源项目已经实现了价值。开源是每一个个体和组织都可以贡献的一种资源,数据表明近年来中国的开源贡献以每年 37% 的速度在增长。

尽管国家也高度重视开源精神、鼓励开源生态的发展,但是当下国内开源生态并不是很乐观,还有很大的发展空间。我们需要去创新、去发现、去贡献,每个开源贡献者即便是微乎其微的努力也在影响着开源生态发展,让国内开源生态更加完善。

经过这几年对开源生态的认知和了解,每个开源项目都承载着对应领域的发展推进,尤其是一些比较突出的开源项目,给用户带来了无限商机,也证实了开源项目对市场的影响力。开源是以最大的可能让商机发现自我,能让用户的不可能变成可能,也许下一个这样的开源项目就有你的贡献。

每一个开源项目的贡献者都应该得到支持和鼓励,当开源项目的受众用户比较多时,能为用户解决更多的问题,但是项目初期并不会有太多的用户来围观和反馈,流量也比较少,这是贡献者们最头疼的时期。

为什么我的项目没有用户采纳?

这个要从两个方面去思考问题,一方面是项目没有被发现,另一方面是项目没有解决实际问题,变成了僵尸项目。

如果开源项目的重复度比较高,就会造成开源项目的受众度低,所以创新很重要。每个开源贡献者都不希望自己的创新引来的全是默默的伸手党,就算有个反馈意见也可以,并非一定要用户打赏以资鼓励才觉得这个项目是有意义的,只是希望开源的路上不再孤独。

开源项目进化到商业项目需要一个比较长的周期,也需要更多的用户来使用和共同维护,不断去积累用户,给用户解决能力之内非商业的问题,让用户产生依赖,增加项目粘度,同时也提高了项目知名度。

当项目积累到了足够多的使用者,有了良好的开源社区、问题处理的快速响应能力。这个时候就可以考虑开源项目的商业服务,为用户提供更多的可能,项目贡献者也可以获得前期无私贡献的回报,以良好的开源方向去服务好对项目认可的用户。

不管你的开源项目是什么,都要明确项目的边界,也许你服务的是一个行业,也许是一个认知的市场,都要体现出开源项目的专业度。

开源项目能不能商业化受以下几个方面影响:

  • 能解决多少问题;
  • 是否必须;
  • 用户群体的大小;
  • 用户认可度;
  • 项目贡献者心态。

开源项目不可能快速变现,初期要有足够耐心和创造力去发展完善项目,等待用户发现自己。项目解决的问题越多,受众用户就越多。是否必须决定了项目商业化的依赖程度,贡献者的心态决定了项目的存活周期。开源项目获得一个群体的认可非常不易,盲目追求项目的商业化可能会给项目本身带来不可逆的损失。

开源贡献者应在合适的时机、合适的条件下再去考虑开源项目的商业化运作。

# 商业化开源项目参考

部分成功的商业化开源项目

# Red Hat

Red Hat Enterprise Linux 是 Red Hat 公司的 Linux 发行版,面向商业市场,包括大型机。

# MySQL

# 起源

MySQL 的历史最早可以追溯到 1979 年。由 MySQL 之父 Michael Widenius (Monty) 在一个夜黑风高的晚上编写出的一款名叫 UNIREG 的数据库报表工具。而这也正是 MySQL 的前身, 但是当时的 UNIREG 其实并不完善, Monty 当时因为一个项目,需要为 UNIREG 提供更加通用的 SQL 接口,为此他找到了 David Hughes – mSQL 的发明人,希望能得到 David 的帮助, 而然 mSQL 的速度并不尽如人意,无法满足项目的需求。于是 Monty 毅然决然的决定重新设计整个系统,1995 年 5 月 23 日,MySQL 的第一个内部版本发行了,并在第二年对外公布了 MySQL 官方正式发行版 (3.11.1)。 但是这时的 MySQL 只能运行在 Sun Solaris 上,在接下来的几年中MySQL 被移植到不同的平台,同时加入了不少新的特性。到 1998 时,MySQL 能够运行在 10 多种操作系统之上, 其中包括应用非常广泛的 FreeBSD、Linux、Windows 95 和 Windows NT 等。很快 MySQL 3.22 也发布了,但它仍然存在很多问题–如不支持事务操作、子查询、外键、存储过程和视图等功能。 正因为这些缺陷彼时的 MySQL 应用范围远不如 Oracle 和 SQL Server 这些老牌数据库软件。

彼时的第二年 MySQL AB 在瑞典的中部城市 Uppsala 成立了。并于同年发布了包含事务型存储引擎 BDB 的 MySQL 3.23。在集成 BDB 存储引擎的过程中,MySQL 开发团队得到了很好的锻炼,为后来能将 InnoDB 整合以及开发开放插件式的存储引擎架构打下了坚实的基础。MySQL 从诞生之初就提供了双重的授权标准:个人使用是免费的, 如果用于商业网站搭建或者 Windows 平台下就必须购买商业许可证。在 2000 年的时候 MySQL 做了一个重大的决定,改换成了 GPL 许可模式,也就是说商业用户也无需再购买许可证,但必须把他们的源码公开。 虽然 MySQL AB 因此在收入上遭受了巨大的打击,损失了将近 80% 的收入,但他们依然坚持了 GPL 许可模式。与此同时,芬兰公司 Heikki 开始接触 MySQL AB,讨论将 Heikki 的存储引擎 InnoDB 整合到 MySQL 数据库中的可行性。 双方的合作非常顺利,并于 2001 年推出 MySQL 4.0 Alpha 版本。经过两年的公开测试和应用,到了 2003 年,包含 InnoDB 的 MySQL 已经变得非常稳定了。随即在同一年,MySQL 推出 4.1 版,第一次使得 MySQL 支持子查询,支持 Unicode 和预编译 SQL 等功能。 MySQL 4.1 还在 Alpha 版时,公司已决定并行开发 5.0 版。因为他们打算加快 MySQL 的开发速度以适应日益苛刻的市场需求。这个新版本是有史以来 MySQL 最大的变化,添加了存储过程、服务端游标、触发器、查询优化以及分布式事务等在大家看来一个” 正常数据库管理系统” 应当拥有的一整套功能。

# MySQL 的收购

2008 年 2 月 Sun Microsystems 动用 10 亿美元收购了 MySQL,造就了当时开源软件的收购最高价。这次交易给开源交易设立了一个新的基准。在此之前的交易金额 (JBoss、Zimbra、XenSource、Gluecode) 从没接近过 10 亿美元,全部加起来才差不多与 Sun Microsystems 购买 MySQL 的花费持平。 MySQL 被收购之后,MySQL 图标停止使用,取而代之的是 Sun/MySQL 图标。MySQL 和 Sun 合并之后,推出了 MySQL 5.1GA 版和 MySQL 5.4 Beta 版。5.4 的推出照搬了 4.1 和 5.0 当时的开发模式,让 5.4 和 6.0 并行处于 Beta 开发阶段。2009 年,数据库老大 Oracle 大笔一挥,开出 74 亿美元的支票,将 Sun Microsystems 和 MySQL 通盘收于旗下。

# MYSQL 发展的标志性事件

  • 1999 年,MySQL AB 在瑞典正式宣布成立。
  • 2000 年,ISAM 华丽转身 MyISAM 存储引擎。同年 MySQL 开放了自己的源代码,并且基于 GPL 许可协议。同年 9 月 innoDB 推出。
  • 2003 年,MySQL4.0 发布,正式集成 innodb
  • 2005 年,MySQL 5.0 发布。同年 Oracle 把 InnoDB 引擎的开发公司 innobase 收购完成。MySQL 明确地表现出迈向高性能数据库的发展步伐。
  • 2008 年,sun 公司收购了 MySQL 公司,出价 10 亿美元。
  • 2009 年,Oracle 公司收购 sun,将 MySQL 纳入囊中。
  • 2010 年,MySQL 5.5 正式版发布,Oracle 完成了大量改进,并将 innodb 改成默认引擎。
  • 2013 年,MySQL 5.6 GA 版本发布。

# MariaDB

MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,使之能轻松成为 MySQL 的代替品。

# OceanBase 蚂蚁金服数据库

OceanBase 是由蚂蚁集团完全自主研发的金融级分布式关系数据库,始创于 2010 年。OceanBase 具有数据强一致、高可用、高性能、在线扩展、高度兼容 SQL 标准和主流关系数据库、低成本等特点。

# React

用于构建用户界面的 JavaScript 库

# Vue

# 起源

Vue 起源与尤雨溪在 Google 工作时的一个想法有关,当年尤雨溪在 Google 工作时需要在浏览器上进行大量原型设计,因为大量设计这些东西太过繁琐,于是他想要尽快获得有形的东西,恰巧当时公司有些项目在使用 Angular,这给了他一个借鉴的想法,Angular 提供了一些用数据绑定和数据驱动来处理 DOM 的方法,不必自己去碰 DOM。但它也有一些副作用,就是需要按照它规定的方式来构建代码。这对于当时的场景而言实在是太过于笨重了。于是尤雨溪就把自己喜欢的部分从 Angular 中提出来,建立一个非常轻巧的库,去除掉了那些额外的逻辑,这便是最开始的 Vue。

# 发展阶段

尤雨溪在使用了一段时间后,觉得自己这个项目还有点前途,于是花费了一段时间对这个项目进行了封装,并取名为 Vue.js。花了这么多时间,不能只有我一个人用,我应该和别人分享,他们也会感觉到 Vue 的好处,他们也会喜欢上 Vue 的。秉承着这种想法,在封装完成后尤雨溪便将迅速将 Vue 发布到了 Github 上面,并把链接发送到了 Hacker News 上。没过多久 Vue 便被顶上了首页,并在首页保留了好几个小时,这也是 Vue 第一次面向大众。这时的 Vue 还刚初出茅庐,没什么名气,真正让 Vue 普及起来还得归功于,2014 年 Taylor otwell(一个非常热门的 php 框架 laravel 的作者)第一次在 Twitter 上发表了关于 Vue.js 的推文,内容大概是学习 React 很难,现在我正在学习 Vue.js,因为这看起来比较简单。也就是这条推文,让 Vue.js 这个框架得到了认可,所有 laravel 用户觉得:wow,Taylor is liking Vue.js ,it must be a good tool,we should try it,于是就开始有了很多从 laravel 社区来的用户。Vue 因此收获了一大波用户,为 Vue 的繁荣打下了结实的基础。

# 从开源中变现

我为开发者们创造了价值,所以从理论上说,如果我能以某种方式得到接近于这些价值的钱,那么我应该能够养活自己。Vue 的用户群非常有活力。许多来自 Laravel 社区的 Vue 用户,他们非常热情真诚,也非常的友好。这让尤雨溪感觉众筹可能是个不错的想法。于是不久后尤雨溪便在 Patreon 上挂出了众筹页面。为了众筹尤雨溪还在 Patreon 众筹上加了一个附加奖励。如果有公司愿意赞助他,那么他可以把公司的标志放在 vuejs.org 的赞助商页面上,就相当于在社区给公司打了广告。Patreon 众筹得到的金额里有一半是来自个人的,其中还有一个人每月赞助他 2000 美元以支持他开发Vue。据尤雨溪本人透露,自己在家中全职开发 VUE 的初期,每月就能从众筹网站上获得至少 1 万美元的资助。尤雨溪就这样凭借自身能力依靠 Vue 项目的变现实现了自身的财务自由。

# antd

antd 是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。

# Unreal Engine 4

大名鼎鼎的虚幻 4 游戏引擎。拥有独创的蓝图系统,降低了游戏开发门槛。渲染效果逼真,甚至被大量用于电影和 CG 渲染。虚幻商场提供了大量预设资源,降低了游戏开发成本。且虚幻引擎本身的使用是完全免费的,在发行产品(使用虚幻 4 引擎制作的包括但不限于游戏的商业发行产品)开始商业化运营,且总营收超过 1000000 美金后才开始支付 5% 的分成费用,使独立游戏开发者能够投入更多精力到游戏开发之中,而不必担心引擎授权费问题。正是由于这些优点,使虚幻 4 成为了最为著名和使用最为广泛的游戏引擎之一。

# Nacos

Nacos是,由阿里巴巴公司开发的动态服务发现、配置和服务管理平台。

还有很多很多开源项目走向了商业化……

# 本部分内容贡献者

langengel (opens new window)阿基米东 (opens new window)YZRDEG (opens new window)雪山凌狐 (opens new window)WhitePaper (opens new window)taotieren (opens new window)Hong.T (opens new window)zeroTwozeroTwo (opens new window)NipGeihou (opens new window)

发现内容中的错误?还是想要补充更多符合主题的内容?《开源指北》欢迎你进行贡献,点击贡献指南了解贡献的具体步骤。

上次编辑于: 2024年4月15日 14:52