上周在公司内部又做了一次关于开源的分享,与三月份那次稍有不同的是,这次的关注点主要是:企业与开源软件。
开始之前,让我们再说说开源软件到底代表的是什么?
开源软件是源代码可以任意获取的计算机软件,任何人都能查看、修改和分发他们认为合适的代码。开源软件依托同行评审和社区生产,皆以分散、协作的方式开发。
由于,这篇文章所针对的是企业,所以这里的侧重点是:开源会为企业带来什么?按照这个模式,分享的内容分为了四个部分:
考虑到『开源发展案例分析』是各种业内案例,不适合用文章描述,这里就只介绍剩下的三个维度。
按照时间线,我把开源划分了四个时代:
简单来说,云原生开源时代的存在,就是因为企业发现开源变得有利可图。
除此,根据『红帽® 2020 年度企业开源现状报告』,企业对于开源的拥抱程度逐渐增强:
因为对于企业来说,企业使用开源可以:
而对于一些企业来说,他们已经不再仅仅只是使用开源了,他们还开源了一系列软件。
主要的直接盈利方式有三种:
付费版本。如开源的 Nginx,以及更多功能的 Nginx Plus。双重许可、商业使用收费、部分组件收费等。 咨询/服务。如 JBoss、Spring 通过提供技术支持、培训、二次开发支持等技术服务而获得收入。 托管模式。通过免费开源的 MongoDB 吸引用户。推出 MongoDB 数据库托管服务等,增加创收渠道。
而如我的同事刘尚奇所说,一些企业(尤其是国内)主要是通过间接获利:
按与开源的习惯,我将企业开源分为了四种模式,或者说是步骤:
它们有各自的准入条件、收益和盈利方式。
对于企业拥抱开源来说,我觉得它们需要五大能力支柱:
每个能力支柱对应了五个关键实现模式,一共 25 个。限于篇幅所限,我只列出几个核心的要求。
对应的我们也总结出了适用于不同阶段的能力支柱。
在那之前,不得不提及 Mozilla 的一篇关于开源实践的文章:
馈赠。无附加条件的提供有价值的产品/服务。 共创。分享实现预定目标的任务和成本。 征求意见。利用社区产生想法和解决方案。 从用中学。收集和分析活动以改善产品和服务。 加强价值交换。通过技术或服务增加价值或简化交流。 网罗共同利益。协调以确保个人活动能够实现更多目标,以实现共同的使命。
主要是因为基于此,有六个对应的下游实践:
对应的我把它们划分到了使用开源 + 参与开源之中。
对于使用开源来说,它的优点显而易见:
也不需要我展开详细的说明,对应的实践可以参见上面的开源能力支柱。
当需要一些新的技术基础设施时,我们得考虑是否造轮子或者是使用开源软件。
于是乎,我们就这么走向了开源。
总结了走向开源的三条路径:
对应的实践也可以参见上面的开源能力支柱。
事实上,对于企业来说,走向开源一定要得到某种程度的回报。其中的一个就是通过构建生态来盈利。对于企业来说,它有这么一些优点:
这也是现在的云厂商开源的一个主要原因。
虽然我在分享中提及了好几个例子,但是只说 Google 云的案例。
在某些领域,Google 领先行业内其他所有公司 5 年或者 5 年以上。(如 MapReduce) —— Brain Larson
在过去的几年里 Google 围绕着云开源了一系列的软件,如 Kubernetes、Tensorflow、Beam、Istio 等等。其中有几个软件已经成为了行业的标准。
那么为什么 Google 会开源?
企业开源,从本质上来说是一种双赢。
围观我的Github Idea墙, 也许,你会遇到心仪的项目