商业机密与开源精神的平衡
问:在企业的软件研发过程中,有一些内容是很机密的,这与开源精神显然存在矛盾。而且管理层和技术人员在对待哪些代码是机密信息这个问题上,也可能存在分歧。有什么办法可以解决这些矛盾?
百度王守彦:这个问题确实在国内表现得比较明显,也确实是一个矛盾。我的看法是,在有了互联网之后,一项计算机技术保持领先优势的时间不会超过1年,因为互联网传播知识的速度太快了,不到几个月就有其他公司也会做。所以说,对于那些对核心竞争力有价值的技术,我们可以采取这样的策略,即将上一个版本发布,并控制好与新版本之间的时间差,这样处理就能让商业价值与开源精神之间达到平衡。
另外,我们也要看到,开源其实反过来对企业开发也是有帮助的。比如百度这次把我们做的项目开放出来,就是希望有人可以给我们提建议,或许能帮助我们找到更优的方法。毕竟我们项目组只有几十个人,但全球社区有很多人,这些人可能不一定会去做,但一定会有想法让你借鉴。另外,从开源社区我们也能发现合适的人才。
总之,技术人员有责任去说服自己的老板。十年前,当知识传播速度不够快的时间,封闭会带来价值,但今天知识传播越来越快,封闭只会让路越走越短。现在许多企业管理层的思维模式还没有转变过来,但我相信迟早会转过来。
Facebook邵铮:说服老板除了讲道理,也可以摆事实,举一些例子。比如我们公司就是这样的例子,Facebook其实很早就开始支持开源软件。我们认为最大的核心竞争力是社区网,而底层的架构虽然能带来价值,但不一定是最核心的竞争力,所以我们必须和社区所有公司一起来做,而不是闭门造车,否则只会与业界差距越来越大。Facebook目前只有400个工程师,但在全球却有超过5亿的用户,即1:100万,为了维持这个比例,必须和社区合作。
当然,Facebook也不是把所有的代码都开放出来,也确实有一些机密的东西。我们知道,一般开源软件都会提供API接口,我们做HIVE开发时也是这样,这些API有一些特殊的实现,将特殊的逻辑放在单独的模块中,这些模块是机密的,但底层的HIVE是开放的。通过这些API接口,就可以把机密的逻辑与开源的部分隔离开。
关于Hadoop:
Hadoop主要提供了一套名为HDFS的分布式文件系统以及支持Map-Reduce的计算框架。此外,还提供构建在HDFS 和Map/Reduce之上的可扩展的数据仓库Hive,结构化数据库HBase,数据流高层语言Pig,高性能分布式协同服务ZooKeeper,以及面向大规模分布式系统的数据收集软件Chukwa等。
自2002年Apache设置相关项目以来,源于互联网的Hadoop也渐渐在互联网领域扎下了根。如Yahoo!使用4000节点的机群运行Hadoop,支持广告系统和 Web搜索的研究;Facebook使用1000节点的机群运行Hadoop,存储日志数据,支持其上的数据分析和机器学习;百度用Hadoop每天处理1PB的数据,进行搜索日志分析和网页数据挖掘工作;中移动研究院基于Hadoop开发了“大云”(Big Cloud)系统,不但用于相关数据分析,还对外提供服务;淘宝的Hadoop系统用于存储并处理电子商务的交易相关数据。
Hadoop技术除已经在互联网领域得到广泛应用之外,同时也受到了学术界的普遍关注。国内的高校和科研院所基于Hadoop在数据存储、资源管理、作业调度、 性能优化、系统高可用性和安全性方面进行研究,相关研究成果多以开源形式贡献给Hadoop社区。