在过去10到20当中,我们发现软件所开发的方式已经发生了变化,在此之前我们的软件一般是公司所持有的,它以颁发许可方式给所有人的,这些软件基本上由企业所控制的,就相当于让一部分人控制了我们在开发软件或者在使用软件的过程,而在这种情况之下你会感觉到不舒适,但是在开源的基础之上我们会摆脱这种被控制的感觉。我们可以自己去进行软件的分享和开发,因为我们知道软件是我们每个人所共享的。我们面临一个选择,开源还是商业所有,人们无疑选择了开源。
就我个人经历来说,我在一个项目中有非常切身的感受,Lucene是我90年代写的一个搜索的技术,在2000年的时候采用了开源方式开放给大家,当时可以说2000年最好的搜索技术了。自2000年以来,逐渐的变成了在全球最通用的引擎技术,而且也成了最强有力的搜索技术,并不是说在技术上它有先发优势,而是因为它是开源的,开源对于Revolution起了至关重要的作用。
现在我们到了一个阶段,如果我们希望一个技术成为行业所使用的基础技术,最基本的要求它要成为开源的。我们知道我们推出一项新技术的时候,人们越来越倾向的使用开源的方式了,这个也是市场的需求,所以我们把开源作为我们软件开发的一项重要的标准。现在我们新的革命就有三大要素,也是三大支柱包括:硬件、软件、还有刚才提到我们开发软件新的方式及开源。在2003年的时候我正在致力于基于Revolution开源的技术引擎,当时我们要把上百万份的网页数据进行整合进行数据的收集,在此之上开发一个搜索的引擎。所以我们知道我们必须在很多机械上面完成这些任务进行分发,所以我们利用现在越来越便宜的硬件,非常容易的实现可扩展性,但是令人遗撼得是,我们需要各种各样的菜单才能在五台机器上面同时运行,五台机器同时运行的话我们需要一个人全职做这个工作,如果20台机器的话我们需要5个人完成这个工作。怎么完成这个任务?我们找到了一个完美解决方案,让我们手工可操作的任务实现自动化。当硬盘的内存出现错误的时候数据不会丢失,而且也不会导致系统崩溃,而是系统会继续的运行下去,我们可以在上千台的服务器上面帮助我们让这个系统持续的运行下去。我们所用的第二个系统,我们做了一项竞赛,它也具有同样的性能,就是它可以实现自动化和可靠性。当出现任何失误的时候,出现任何错误的时候这个系统就不会崩溃,而是可以持续的运行下去,而且它可以帮助我们更好的实现可靠性的管理。
所以可以看到这其实是一种新的方式,它也让我们处理和存储的方式发生了革命。因为现在的商业软件它的性价比更高了,价格更低廉了,它可以帮助我们存储更多的数据,处理更多的数据,我们可以把数据进行转换,而且可以更方便的方式来进行识别,而我们在这个过程当中可以提高灵活性。此外我们还有一个通用的处理过程,我们可以采用多种多样的方法Hadoop可以帮助我们进行改善,我们把它称为Hadoop,Hadoop它帮我们能够进一步实现引擎的优惠,可以在2006年我们把刚才提到引擎的技术进行了优化,形成了我们今天所谓的Hadoop,谷歌他们有内部开发的技术,我们提供开源的技术,我们开源技术得到更多人的使用,所以2006年的时候我们有40到50个节点在进行运行。后来在雅虎的帮助之下,我们开发了一个可拓展性的系统,它可以在上千台上万台机器上运行,而且几周时间都可以非常顺利的运行,其实已经形成了新的计算的方式面向世界。