第 2 小节:关于开源项目的商业化
怎么找到一个开源平台?
怎么找到自己适合自己的开源的项目?
怎么克隆项目并且运用到自己的项目上?
开源项目到底是基于什么开源协议对外开放?
当你看到这个章节的时候相信你对以上话题有了一定的认知和了解
开源和商业化的理解
在众多的开源平台中,看到的形形色色的大型开源项目中,我们会留意到开源项目都注明各种各样的开源协议,比如 GPL、LGPL、BSD、MIT、Apache、Creative Commons 等等。
疑问来了,不是说好的开源吗?怎么又冒出来个协议?难道我都获得了源代码了还不能用于我的项目之上吗?作者还要收费不成?没错是有这么个协议存在,而且具有一定的约束能力。我们所理解的开源和实际的开源还是存在一点点的差别,所以必须把开源协议拿出来修饰一下这个话题。
开源许可协议:开源许可协议是指开源社区为了维护作者和贡献者的合法权利,保证软件不被一些商业机构或个人窃取,影响软件的发展而开发的协议。(来源:百度百科)
不同的开源协议有着不同的开源约束能力,是为了保障开源项目的可持续性发展,只要我们在约束条件内,可以自由发挥,并非完全不能使用开源项目,使用者可以最大程度去复制、分发、盈利、修改、发行。
开源是开源项目的核心,同时优秀的开源项目也承载着巨大的流量,当开源项目具备比较高的变现能力和其它核心竞争力的时候,项目可能会被收购,比如 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、阿基米东、YZRDEG、雪山凌狐、WhitePaper、taotieren、Hong.T、zeroTwozeroTwo、NipGeihou