开源中的企业

之前接触开源纯粹是没项目做时找乐子以及被免费开放的源代码吸引,出于个人角度。通过近期与开源软件行业较为深入的合作,以及阅读的一些科普小文章,在这里谈谈我对开源和企业的理解。

提到开源,我想大家都会有至少这三个问题:

  • 为什么要使用开源软件?

  • 为什么要投人力、财力给开源?

  • 开源如何盈利?

我发现站在不同的角度看这个问题,会有不同的答案。所以我将会以IT技术型企业、非IT技术型企业和开源技术方案提供商这三个企业的观点看这个问题。

作为互联网时代的企业,时不时地会用到信息技术解决方案,搭个数据分析平台、架设个站点啥的。如果他们使用商业解决方案,那似乎就踏上了一条不归路。商业解决方案很多都是黑盒子,一旦出了问题只能叫人来修,自己一边瞅着干插不了手干着急。对于那些分分钟交易上亿的企业,这个问题修复的周期是难以忍受的。另外,商业的方案坑比较多,想想最近的Win10强制升级吧…… 对于底层系统的完全掌控会给后期的系统维护、升级带来极大的便利。所以,企业想健康发展有两条路:自主研发,或者求助开源(当然也有自主研发再开源出去,暂且算在开源里了)。

作为一个IT技术型企业,例如互联网公司,他们应该是有能力进行资助研发的。但是如果有现成的,考虑到人力、财力和时间成本,当然会使用现成的。到这里,回答了第一个问题:为什么要使用开源?(不然呢……)

一般企业会对开源方案进行一圈调研,觉得合适的就用,差功能的就补上,渐渐地走上了投人力、财力给开源的路子。当然问了一圈没有适合的,那就自己开发呗。可是发现自身能力有限,又或是为了省成本,干脆把自己开发半拉子的方案开源出去,让其它人参与进来一起开发和维护,又不用给他们钱,何乐而不为呢?

企业参与开源当然是为了赚钱,毕竟企业一词的定义里明确说明“以盈利为目的”。企业求助开源方案,是在省成本没错。可是投精力狠搞开源似乎有些不靠谱?把自己的自主研发开源听起来简直是在为竞争对手做嫁衣!其实企业在投入开源时,也是在社区中树立威信。如果一个开源项目的80%代码都是你贡献的,你就有很大可能主导这个项目向着有利于自己的方向发展。站在长远角度看这个问题,企业绝对是从中获益的。那么把自己自主研发的项目开源是不是在扮演农夫与蛇呢?这得看企业对开源的“度”的把控。一般情况下,没人傻到把自己的赚钱核心公布出来。而且像现在80/20不平衡法则支配的互联网产业,相比用户和数据积累,想纯粹凭借技术力挽狂澜真的是非常难了。所以,开源自己的技术还是蛮安全的。

说完IT技术企业,开始说说非IT技术企业在开源里扮演什么样的角色。和IT技术企业一样,非IT们用相似的眼光考量着开源这块烙饼。它们的区别在于,非IT技术企业往往没有能力去自主研发或是参与开源。这种情况下,开源的优势就不能掩盖它的劣势了:首先很多开源软件不怎么易用,个人认为商业公司为用户考虑得还是挺周到的,说到底人家至少还有售后服务呢。例如OpenStack部署和架构的实施和维护成本较比VMware有了陡然提高。另外,一旦方案出问题,因为企业内部缺乏IT技术人员,所以只能求助社区。这种情况下,问题恢复周期远远长于商业方案。

所以怎么才能解决这些弊端呢?除了花钱自己维护一个开源团队(这样就类似IT技术企业了),还有个办法就是把维护外包给第三方——这就是我们要提到的第三类企业——专业的开源技术方案提供商。它们就像商业软件的客服,完成对开源软件使用培训、功能部署、稳定性维护。通过这个来获取利润,听起来有些不靠谱啊…… 可是开源技术方案提供商的龙头企业红帽(RedHat)2015年收入20.5亿美元(我对这些以亿为单位的钱没什么概念,反正他们自己很激动)不知道能不能说明一丢丢问题。

专业的开源技术方案提供商本身也是会投入人力、财力进开源项目的,原因和第一类企业不一样——第一类企业做出软件就是为了服务自己的商业目的。开源技术方案提供商真的只是一心想把软件做好,这样就会有更多的人使用这个软件,它就可以获得更多客户,通过卖出更多的服务赚钱,走“曲线赚钱”的路线。

以上就是我对开源的些许理解。这些理解可能很浅显,但已经使我相信,开源真的在改变世界。