<audio id="audio" title="085 | 大公司的大数据战略得失：抱团取暖难敌插管吸血者" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/71/6d/71c898e2b92bae926948520121d15c6d.mp3"></audio>

开源项目最讨厌的就是只进不出的参与者。一个公司如果只把开源项目拿去赚钱，却不拿自己的改动和成果反哺社区，开源项目就难以持续发展下去。

所以，抱团取暖的前提是大家都愿意主动贡献自己的成果，但亚马逊是一个另类，它从开源社区拿了很多东西却从不贡献开源。这样只会“插管吸血”的亚马逊，是不是会就此破坏了开源社区良好的氛围呢？

在大数据的发展战略上，除了自建轮子的谷歌、微软和阿里巴巴，各大公司大多走向了一条抱团取暖的道路；而这个抱团取暖的产物，就是你搭一个模块、我搭一个模块，大家一起开源出来，组成了一个叫作Hadoop的生态圈。

如果要具体来说一说，雅虎当然是Hadoop生态圈里最大的贡献者，但是Facebook、Twitter和LinkedIn的贡献也不算少。eBay和IBM的功劳自然也不可忽略，大家前前后后都做了不少事。最近来说，加州大学伯克利分校的AMP实验室的Spark贡献也是十分突出。

为什么这些公司会选择抱团取暖？我简单总结了一下，主要有3个原因：

<li>
技术和资源储备还不够，单靠自己没法搭建起来；
</li>
<li>
业务需求不迫切，还没到非要自己搭轮子的地步；
</li>
<li>
公司可以熟悉开源文化，通过这种方式，公司对开源社区会更加友好。
</li>

那么，这些公司的“抱团取暖”带来了哪些好处呢？

首先，这些参与其中的公司们在很长一段时间内保持了亲密合作关系，也很快让Hadoop生态圈变得丰富起来，变得越来越可用，越来越实用。

其次，这也让更多并未参与其中的创业公司获得加持，以极低的成本获得了大数据分析的能力。湾区的创业氛围因此变得无比美好，客观来说这样的合作确实促进了创业的发展。毕竟创业者更需要关注业务逻辑，而具体的系统实现可以利用开源社区的产品和架构来快速解决。

只是在很多时候，有钱能捡的话，就一定会有人去捡。随着这个生态圈的壮大，试图通过这个生态圈牟利的人和公司也越来越多，而这在很大程度上违背了雅虎、Facebook、Twitter和LinkedIn等公司最初的设想。

首先出现的当然是把Hadoop打包卖给其他企业的公司。Cloudera就是这样一家公司，MapR也是，Hortonworks也是，而最后这家公司干脆原本就是雅虎的Hadoop团队，他们看着别人捡钱心里不爽，所以特意从雅虎跳出来创建的。

然而，和当初抱团取暖时“难兄难弟们”的无私贡献相比，因为是带着明确的商业目的，这一类公司对于Hadoop的态度就多少有些不一样了。

不过，就算它们的目的是为了把东西卖出去，很多事情还是要做好的。相较来说，毕竟当时的Hadoop作为抱团取暖的产物，很多时候只算是一个可以用，却并不是最好用的东西。对于那些传统企业来说，Hadoop的方方面面都不符合他们的要求，比如安全问题、使用者的权限管理和监控、效率和资源的消耗等等方面都不尽如人意。

这样看来，我们必须说，Cloudera和Hortonworks对于Hadoop本身的发展是投入了大量资源的，对于Hadoop相关生态圈的模块也是投入了很多人力物力的。即便这些公司是打算靠这个赚钱的，它们也的确是为Hadoop生态圈的繁荣贡献了自己的力量。

不过，在Hadoop生态圈里面赚钱最多的显然不是这些公司。Hortonworks股票上市以后估值掉了50%，Cloudera在上市前自砍50%的估值血淋淋地上市，这两件事情都说明这个行当的利润并没有想象中那么高。这些公司虽然都活着，但是恐怕活得也是有些艰辛。

要是说哪家公司借着Hadoop生态圈的东风，迅速青云直上了？无疑是亚马逊。亚马逊的AWS之所以能如火如荼地开展起来，离不开Hadoop生态圈的贡献。亚马逊的Elastic MapReduce服务自推出以后就非常受欢迎，这个云上的Hadoop系统，给亚马逊带来了滚滚红利。

但是回头看一下亚马逊到底给这个生态圈做了什么贡献呢？几乎屈指可数。即使不能说是零，起码也可以说是无限接近于零了。虽然它也有一些代码提交，但主要还是为了解决Hadoop生态圈与亚马逊其他云服务如何打交道的能力。也就是说，亚马逊做出的最大贡献，是解决了Hadoop集群如何同亚马逊的云存储S3连接的问题。

一方面是赚到了很多的钱，一方面则是毫无贡献。这个只负责插管吸血的亚马逊，无疑在商业上获得了非常大的成功。而我们也很难去苛责亚马逊，毕竟开源系统拿过来用，回头要不要反哺开源系统，很多时候也只是公司自己决策的问题。

尤其是开源社区的授权方式本身就有很大的Bug。Hadoop社区通行的Apache授权方式，不要求商业公司必须公开修改后的源代码。即使是更严格的GPL授权方式，商业公司依然有无数的办法可以绕过去。所以最终来看，商业公司要不要反哺开源系统，基本上靠大家的自觉。

但是有一点是可以肯定的，如果每个公司都学习亚马逊的做法，那么Hadoop生态圈在一开始就不可能构建出来。毕竟如果没有很多互联网公司的开源，也就不可能有完善可用的生态圈。

所以，亚马逊这样的做法，实际上是有碍开源社区繁荣的。我想很多做大数据开源的人，肯定对亚马逊的做法颇有微词。

只是从开源社区来看，Apache基金会也没有什么行之有效的办法，去阻止别人像亚马逊一样使用这些开源软件，既然没有约束，那么亚马逊的做法则显得合理又合法，那么我们究竟应该用什么态度来看待这样的一家公司呢？

我个人对亚马逊的感情其实是很复杂的。首先，亚马从很多方面来看都是一家伟大的公司，它所推崇并遵循的亚马逊领导力准则，更是值得每一位有志于做出一番事业的互联网从业者认真学习了解，并深刻理解。这些简单而深刻的准则，我不敢说是普遍适用的真理，但是起码对我个人来说受益非常大。

但是从另外一个方面来看，亚马逊这个公司没有“取之于社区，用之于社区”的观念。亚马逊对客户是很好的，对社区就不一定了。一个只是不断从社区获取，却不愿意贡献给社区的公司，破坏的是整个社区的氛围和默契。

如果这个公司籍籍无名，也没有因此发家致富，那它的破坏力还不是那么强。而一个公司如果保持如此作风同时在大量地赚钱，那无疑是树立了一个坏的榜样，这种破坏力是极为巨大的。

开源社区发展到今天，已经度过了不成气候的阶段，现在也有了很多非常有影响力的项目。但是如果还是不能找到有效的管理方式来表彰贡献、控制索取，长久来看可能会出现越来越多对开源“插管吸血”的公司，这对开源社区来说显然会是一件极其不利的事情。


