开源就是不断的奉献自己,除非它将你的业务先毁掉。但是,有太多的人先入为主,将各种偏见灌输给你,诸如:开源有“毒”,开源根本无法赚钱之类的。这个时候,你只需要默默的,转身看看那些成功的利用开源的公司即可。
互联网的巨头,即使如 LinkenIn,也是开源的“专家”,让我们先过一遍 LinkedIn 的 GitHub 账户, 竟然是一家发布了 75 个开源项目的公司。而且其中有一些已经是获得巨大成功的项目了,有众多的开发者和公司参与开发和使用。是的,没错,这就是 LinkedIn,外表光鲜的互联网公司,主营的业务是招聘,标榜自己是“将全世界的专家联系起来,让他们更具生产力,并变得更加的成功。”
最近被各大公司释放开源项目的新闻刷屏,Google 刚刚开源了人工智能项目、FaceBook 开源机器学习项目 等等,几乎每周都有这些 IT “大鳄”们发布新的开源项目,令人目接不暇。 LinkedIn 也不甘示弱,近期又开源了其旗下项目 Amdry ,这是一款对象存储系统。其实,LinkedIn 已经悄然建立了一个世界级的开发者团队,和开源社区紧密联系,从开源中获益、也反馈给社区。近来 LinkedIn 的工程副总裁 Igor Perisic 接受了 InfoWorld 的 Matt Asay 的采访。让我们来了解下 LinkedIn 是如何让开源在公司中成功运转的。
将代码开放仅仅是个开始
任何人都可以将自己的代码开放,事实上,类似 Sourceforge 上的很多项目经年累月的都是只有很少的开发者,(80%的项目只有两个人或更少的开发者)若是有人加入的话,那真是让人兴奋不已。即使是某个项目有多个贡献者,但是绝大多数的项目有超过6个月的时间没有更新。
事实上,仅仅从 LinkedIn 开源了75个项目这个角度来说,并没有多大的意义,因为一个开源项目的意义在于能够在多大程度上引起社区的兴趣来,而这也是 LinkedIn 的开源故事的魅力所在。
正如 Perisic 所说:“数字通常只是表面的、虚的标杆,我们认为社区采用量才是成功的关键指标。” 举例来说,Pinot和 REST.li,前者是一个实时的分布式的 OLAP 数据存储,LinkedIn 用来交付可扩展的实时分析,后者是一 REST 的框架,在 GitHub 上都是超过一千个 Star 和 Fork 超过 200 的项目。
另外,一个开源项目最好的健康指标就是代码仓库的贡献者数量和最后的更新时间,这两个指标随着时间的推移,也会为项目带来更多的贡献者以及更加频繁的更新,形成一个正循环。但是对于社区来说,这还不够。能够得到业界标准的承认,才是 LinkedIn 的开源工作所取得的成绩,比如得到 Apache 基金会的承认。
LinkedIn 有多个项目被 Apache 基金会当选为其顶级项目,诸如Kafka、Samza、 以及 Helix 。还有其它项目,如分布式键值存储系统-Voldemort 正在变得流行起来。REST.li 就不用说了,已经是非常受欢迎的开发框架了。总体而言,LinkenIn 通过在开源的努力已经在开源项目上赢得了开发者的认同。
开源现在已经是一个被滥用的词汇了,举例来说,太多的公司所发布的代码是对自己有用的,然后希望出现大规模的社区围绕着它来进行,然后希望这个项目对自己的公司更加的有用处。其实,开源基金会也是遵循着同样的如此的以自我为中心的逻辑,所谓的开放治理其实是一种伪装,不过依然是由单一的厂商控制最终的产出罢了。
当然,LinkedIn 也不是第一天就明白成为开源社区的典范的美德的。正如 Perisic 所描述的那样:“从早期的失败中,我们学到的重要的一课就是你不可以将一个项目扔给社区,然后就不再创新了。还有另外重要的就是,一个开源项目的成功与否取决于你如何参与到社区中来。”
Perisic 进一步解释,这也就是意味着,最为艰难的工作是在将刚刚将代码开源后的那一段时间,举个例子来说,LinkedIn 现在所总结的获得社区的反馈非常的重要,以及确保项目的目标是容易理解的。这都是经历了很多才学到的。不过,只为重要的还是团队的决定,如果你没有准备好将正在进行的工作开源的话,最好是先不要将之开源了。
何苦呢?
这里就有很多人提出了疑问了,既然开放代码已经困难重重了,再加上来自社区增长的压力,何必这么折腾了呢?Perisic 进一步点出了其中的奥义,虽然开源对于 LinkedIn 来说有让价值在外部流动的好处,但是最重要的一个缘由还是开源社区能够影响到工程师。