Facebook 开发出了世界上最好的开源软件之一,其他公司纷纷“鼎力支持”。
本文作者简介:Matt Asay 是开源界的先驱,多家商业及初创公司副总;Canonical 首席运营官,前者开发了 Ubuntu;开放源代码促进会( OSI )名誉董事;斯坦福大学法学博士。本文来源于 ReadWrite。
毫无疑问,Facebook 现在已经成了世界上最大的开源公司。随着 Facebook 公开它的数据中心设计、数据库等,它或许早就应该成为引领世界开源潮流的一面旗帜。本周 Facebook 发行了一款开源网络交换机( Wedge )及基于该交换机设计的 Facebook 操作系统( FBOSS ),这二者的出现标志着 Facebook 已经成为互联网开源行业的领头羊。
但是它们会不会逼死其他开源公司呢?
毕竟,像 Facebook、Google(本周公开了 PDFium 的代码)、LinkedIn 之类的大公司都公开了开源代码,卖开源软件的其他公司还有赚钱空间吗?
新的软件工厂
开源支持者 Eric Raymond 在自己 2001 年的书 The Cathedral And The Bazaar 里曾有一句著名的评论:我们必须承认,大多数软件开发出来的初衷是为了让人们使用,而非买卖。然而我们的目光还是停留在软件商家那里,比如 Oracle、IBM、SAP、Microsoft 等等。看见它们反射性出现三个字:买买买!
这些都是资产十亿级别的软件公司,但是红帽公司副总 Michael Tiemann 曾在 2009 年强调过:开源社区开发出的软件价值总额,为这些公司提供防火墙的价值可是超万亿级别的。
尽管现在毫无远见的专利许可将各种软件的使用限制得死死的,但是这种情况即将有所改善。Facebook 和其他几家网络巨头已经意识到开放自家代码的重要性。最好的开发者一定希望和最好的代码为伴,而开源就是他们寻找的最佳代码。这也是为什么 Netflix 这家视频流媒体公司常常在公司总部举办开源工程日,在适当的时机发布软件以吸引开发者。之前有传言说 Netflix 将会停用其公共应用程序编程接口,该传言本周已被 Netflix 证实。
一切都进展顺利:越开源,越伟大。但对于所有的开源软件而言,无论正在开发或是已经发布的,它们缺少的是各方的支持。支持越多,就越容易吸引大公司投入开源的潮流中来。
承诺得漂亮
Apache Cassandra 项目(一套开源分布式数据库管理系统)就是一个很好的例子。该项目最初由 Facebook 开发,设计能支持 Facebook 新信息系统的数据库,该项目于 2008 年开源。2 年后,Facebook 改变了主意。公司反复测试信息系统的稳定性后,决定将数据库由 Cassandra 换成 HBase:
2008 年的时候,我们开放了 Cassandra 的代码。但是我们发现 Cassandra 在收件箱搜索时会造成键值存储的一致性延迟,影响产品体验。正因为我们的运营和数据库团队在管理 MySQL 上经验丰富,所以在采用或者取消某项重大技术时我们才格外慎重。我们不得不撤下开发 Cassandra 项目的资金,转而用来培训运营团队去熟悉一个更新、更大型的数据库系统。
我们花了几周时间测试评估了一系列数据库系统,包括:MySQL、Apache Cassandra、Apache HBase 等。最终决定采纳 HBase。事实证明,MySQL 处理不好长尾数据,索引和数据集越长,MySQL 表现就越糟糕。而 Cassandra 的最终一致性模型则无法适配 Facebook 新的信息系统。
换句话说,Facebook 不会因为自己开发了某项技术就会执着于那项技术,从而吊死在一棵树上。前 Facebook 工程师 Steven Grimm 就曾表示:“ Facebook 在技术方面非常实事求是,虽然 Cassandra 是 Facebook 自己人开发的数据库,但它没有近水楼台的优势。一切从网站新开发功能出发,从优化数据存储的角度决定数据库的选择。因为我们已经权衡过自己人的专业意见。”
Facebook 伟大之处就在这里,但这和采用了 Cassandra 做数据库的 Netflix 和 Cisco 没啥可比较之处,希望大家不要误解这几个数据库的优劣。因为对于主流大企业而言,他们更看重软件的稳定性,而这也是 Facebook 开源后做不到的,毕竟它不是一家依赖开源业务生存的公司。
需要更多开源公司加入这项事业
以上也是我们之所以才刚踏入“开源盛世”的原因,路还很长。正因为有了 Facebook 之类的公司能对外发布许许多多的开源项目,所以一定还会出现更多的公司维护和支持开源项目。
“每家公司都必须成为一家软件公司。”已然成了互联网领域的一句陈词滥调。但事实上,大多数公司离成为一家真正的软件公司还很远。甚至一些软件开发硬实力很强的公司,也无法保证自己有足够精力物力维护公司使用的每一个开源项目。所以,未来不仅仅会需要写开源代码的公司,对开源项目提供专业维护的公司需求也会很大。
还是用 Cassandra 做代表:在代码维护上,Cassandra 有 DataStax 公司为其提供商业支持及后续代码优化,资金则来源 Apache 软件基金。再举几个例子,像 Hadoop 的代码是 Yahoo! 初开发,现由 Hortonworks 和 Cloudera 两家公司维护;Lucene 是 Yahoo! 员工 Doug Cutting 开发的,现由 Elasticsearch、Lucidworks 等公司联合维护。
我们正迈入一个开源的黄金时代。开源将驱动未来互联网计算机的发展方向,无论是智能手机的移动操作系统,还是支撑企业应用的云架构、亦或是对数据狂热的大数据分析,无一不和开源挂钩。像现在这样,有这么多非专业软件公司牵头,将来一定会有更多商业软件公司加入开源的行列!