6月23日消息,不用再质疑了:Facebook俨然已成为全世界最大的开源公司。之前,Facebook已经通过数据中心、数据库和各种开源设计引领了一股风潮。本周,该公司又推出了两大开源项目:Wedge网络交换机及其采用的FBOSS操作系统。这使得Facebook站上了开源之巅。
但这是否也敲响了开源公司的丧钟?毕竟,随着Facebook、谷歌、LinkedIn等公司相继推出大量的开源代码,其他专门销售开源软件的公司还有生存空间吗?
透视新软件工厂
开源倡导者埃里克 雷蒙德(Erid Raymond)曾在2001年出版的《大教堂与市集》( The Cathedral And The Bazaar)一书中指出,多数软件都是拿来用的,而不是拿来卖的。然而,我们的多数注意力都集中在软件厂商身上,因为我们都在关注甲骨文与IBM,或者SAP与微软等厂商之间的争夺。
红帽开源事务总裁迈克尔 蒂曼(Michael Tiemann)曾在2009年指出,尽管这些都是十亿美元级别的软件公司,但开源社区贡献的软件,以及企业内部开发的软件,价值却高达数万亿美元。
尽管几乎所有软件都受到了短视的专有授权的限制,但这种趋势却开始改变。Facebook等网络巨头都已经意识到开放代码的巨大价值。一流的开发者希望使用一流的代码,而越来越多的一流代码都采用了开源模式。
所以,尽管Netflix从表面上看是一家流媒体视频公司,但它却定期在总部举办开源技术活动,通过开放源代码来吸引开发者。尽管如此,Netflix还是在本周宣布,该公司将撤下公共API(应用编程接口)项目。
这一切都值得称赞,毕竟,开源越多越好。但在这类企业开发和发布的所有开源软件中,却没有多少能够获得有效的支持,导致其迟迟未能在主流企业用户中普及。
缺乏持续支持
Apache Cassandra项目就是很好的例子,Facebook开发该项目后于2008年开放了它的源代码,以支持其消息系统。两年后,Facebook继续推进。随着该公司不断改进消息系统,他们已经从Cassandra转换到Hbase:
“2008年,我们开放了Cassandra的源代码,这是一套最终一致性键值存储方案,已经用于为Inbox Search提供流量服务。我们的运营和数据库团队在管理和运营MySQL方面拥有丰富的知识,所以放弃其中任何一项技术都需要慎重考虑。我们要么放弃Cassandra的投资,要么为我们的运营团队提供培训,以支持新的大型系统。”
“我们花了几周时间设计了一套测试框架,以评估MySQL、Apache Cassandra、Apache HBase和另外两套系统。我们最终选择了HBase。最终证明,MySQL也无法很好地处理长尾数据;随着索引和数据集的扩大,性能会下降。我们发现,Cassandra的最终一致性模式将难以与我们最新的Messages基础架构协调一致。”
换句话说,Facebook不会仅仅因为某项技术是它自己开发的,就坚定使用该技术。正如Facebook前工程师史蒂文 格里姆(Steven Grimm)所说:“Facebook在使用何种工具这个问题上很务实。Cassandra虽然是我们自主开发的,但在我们为网站的新功能选择数据存储方式时,这并不会为它带来太大帮助。只不过,在我们制定可维护性等其他问题的决策时,会考虑自主开发这一因素。”
|