作者 | 黄峰达
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
开始之前,让我们再说说开源软件到底代表的是什么?
开源软件是源代码可以任意获取的计算机软件,任何人都能查看、修改和分发他们认为合适的代码。开源软件依托同行评审和社区生产,皆以分散、协作的方式开发。
由于,这篇文章所针对的是企业,所以这里的侧重点是:开源会为企业带来什么?按照这个模式,分享的内容分为了四个部分:
开源发展现状
开源发展案例分析
企业开源能力模型
企业开源模式
考虑到『开源发展案例分析』是各种业内案例,不适合用文章描述,这里就只介绍剩下的三个维度。
开源发展现状
按照时间线,我把开源划分了四个时代:
弱版权时代。哪来的闭源。Unix 在 AT&T 诞生,它以低廉甚至免费的许可分发源码。
自由软件时代。开源就是自由。理查德·斯托曼(RMS)发起了 GNU 计划,发起了『自由软件运动』。
开源运动时代。开源为了对抗。Mozilla 开创的开源运动重塑了整个技术界。
云原生开源时代。开源可以赚更多的钱。云厂商为了扩大市场份额,开始运用开源战略。
简单来说,云原生开源时代的存在,就是因为企业发现开源变得有利可图。
企业正在拥抱开源
除此,根据『红帽® 2020 年度企业开源现状报告』,企业对于开源的拥抱程度逐渐增强:
越来越多的企业意识到开源的重要性。有 95% 的 IT 领导者认为,企业开源对于他们的企业基础架构软件战略至关重要。
专有软件的使用正在快速减少。昂贵且不灵活的专有软件许可,导致高昂的资本支出(CapEx)和供应商锁定。
因为对于企业来说,企业使用开源可以:
提高软件质量
降低总拥有成本
改善安全防护
为云技术云原生设计
能安全利用开源技术
获得最前沿创新技术
企业开源的收益
而对于一些企业来说,他们已经不再仅仅只是使用开源了,他们还开源了一系列软件。其主要的直接盈利方式有三种:
付费版本。如开源的 Nginx,以及更多功能的 Nginx Plus。双重许可、商业使用收费、部分组件收费等。
咨询/服务。如 JBoss、Spring 通过提供技术支持、培训、二次开发支持等技术服务而获得收入。
托管模式。通过免费开源的 MongoDB 吸引用户。推出 MongoDB 数据库托管服务等,增加创收渠道。
而如我的同事刘尚奇所说,一些企业(尤其是国内)主要是通过间接获利:
建立内部协作。增强组织内技术氛围,共享团队间的技术资源。
打造雇主品牌。在技术社区建立品牌形象,和杰出贡献者保持良好的关系,有助公司技术招聘。
构建合作生态。与上下游供应链建立合作,建立在该领域的权威定位。
参与标准制定。借助于社区力量,一起促进行业建立标准。
推广技术理念。将新的技术理念融入开源项目中,促进整个行业往前发展。
企业开源能力支柱
按与开源的习惯,我将企业开源分为了四种模式,或者说是步骤:
使用开源
参与开源
走向开源
构建生态
它们有各自的准入条件、收益和盈利方式。
对于企业拥抱开源来说,我和我的同事们觉得它们需要五大能力支柱:
组织支持。开源是一种开放创新型的组织模式,需要自上而下的支持。
工程能力。开源项目的工程能力是对外展示工程能力的渠道
开源文化。开源世界有独特的文化基因:开放、协作、透明等。
产品思维。每个开源项目都是一个产品,都需要像产品一样对待。
社区与生态。活跃社区,构建生态,是一个开源项目强大的必由之路。
每个能力支柱对应了五个关键实现模式,一共 25 个。限于篇幅所限,我只列出几个核心的要求。
组织支持。制定开源投资战略、建立开源项目部门。
工程能力。充分测试、文档体验设计。
开源文化。开放式管理、公开透明开源软件流程。
产品思维。和产品策略一致、制作营销策略。
社区与生态。培养关键意见领袖、反馈驱动开发。
对应的我们也总结出了适用于不同阶段的能力支柱。
企业开源模式
在那之前,不得不提及 Mozilla 的一篇关于开源实践的文章:
馈赠。无附加条件的提供有价值的产品/服务。
共创。分享实现预定目标的任务和成本。
征求意见。利用社区产生想法和解决方案。
从用中学。收集和分析活动以改善产品和服务。
加强价值交换。通过技术或服务增加价值或简化交流。
网罗共同利益。协调以确保个人活动能够实现更多目标,以实现共同的使命。
主要是因为基于此,有六个对应的下游实践:
使用开放技术构建应用
帮助完善开源项目
向开源项目提出需求、想法
反馈 bug 和使用问题
为开源项目创造价值
加入开源项目社区
对应的我把它们划分到了使用开源 + 参与开源之中。
使用开源
对于使用开源来说,它的优点显而易见:
更容易招到适合的人才
开放技术降低研发成本
社区己有拥有丰富的资料
关注于高优先级的部分
无需担心『供应商-锁定』
也不需要我展开详细的说明,对应的实践可以参见上面的开源能力支柱。
参与开源
当需要一些新的技术基础设施时,我们得考虑是否造轮子或者是使用开源软件。
减少低性价比的轮子。当实现复杂、很容易出错,且要花费大量的时间,而且有成熟工的开源项目,就不要自己实现轮子。
基于开源二次封装。即内部的轮子是基于开源进行二次封装,适配内部的业务或者产品。
走向二次开源。自己的库基于开源软件,并重新对内或者对外发布,减少重复劳动。
于是乎,我们就这么走向了开源。
走向开源
总结了走向开源的三条路径:
提炼内部沉淀
创建新的开源方案
衍生解决方案
对应的实践也可以参见上面的开源能力支柱。
构建生态
事实上,对于企业来说,走向开源一定要得到某种程度的回报。其中的一个就是通过构建生态来盈利。对于企业来说,它有这么一些优点:
成为价值生态系统中心的企业。将技术嵌入到他们的产品中去,以便更好地扩大自己的领域。
在生态中融入自己的产品和服务。如 Google 借助于 Android 系统建立在移动广告、移动搜索的地位。
借用开源力量进行市场扩张。如 Google 的 Chromium、Android(顺便卖广告),微软的 Visual Studio Code
……
这也是现在的云厂商开源的一个主要原因。
虽然我在分享中提及了好几个例子:
但是只说 Google 云的案例。
Google 案例
在某些领域,Google 领先行业内其他所有公司 5 年或者 5 年以上。(如 MapReduce) —— Brain Larson
在过去的几年里 Google 围绕着云开源了一系列的软件,如 Kubernetes、Tensorflow、Beam、Istio 等等。其中有几个软件已经成为了行业的标准。
那么为什么 Google 会开源?
支持 xxx 开源项目越多, Google 云平台作为一个平台的吸引力就越大;
使用 xxx 项目的用户越多,想在 Google 云平台上运行 xxx 项目的用户也就越多;
开发 xxx 项目过程中吸引到的伙伴越多,那对这样的数据处理模型的推广就越有利。
总结
企业开源,从本质上来说是一种双赢。
作者简介:黄峰达(Phodal)DevOps 知识平台 Ledge 创始人、ThoughtWorks 高级咨询师。开源狂热粉,在 GitHub 著有大量开源软件项目及库 Mooa、Growth、Ledge、ADR、Coca、Chapi 等,GitHub 排名(stars、followers、commits)国内 top 10,全球 top 100。出版有《前端架构:从入门到微前端》、《全栈应用开发:精益实践》、《自己动手设计物联网》。
【END】
更多精彩推荐
☞MATLAB 被禁点燃导火索,国产软件路在何方?
☞JS、Java、C 依然强势,Go、Kotlin、Python 成为潜力股,2020 开发者生态系统报告揭晓!
☞前字节跳动程序员 28 岁提前退休引热议,网友:我也想!
☞用 Python 训练自己的语音识别系统,这波操作稳了!
☞大数据 Spark :利用电影观看记录数据,进行电影推荐 | 原力计划
☞区块链如何解决食品安全问题?
你点的每个“在看”,我都认真当成了喜欢