当开源遇见云计算:历史潮流的汇合

开放源代码是一种利用群体智慧,在开放环境下进行软件开发的模式。云计算是一切皆服务的全新IT提供模式。当前,开源和云计算这两种分别代表着软件开发与IT服务模式变革的历史潮流汇合在一起,形成了推动云计算发展的强大动力。在几乎所有云计算专业会议上,开源总是绕不开的话题;反过来也一样,云计算也成为开源模式最热门的应用领域。

开源成为软件生产主流模式

开源软件早在商业软件作为一个独立产业诞生之前就已经存在了。甚至可以说,计算机软件生来就是开源和免费的。直到1976年2月3日,比尔·盖茨发表了著名的《Open Letter to Hobbyists》(致电脑业余爱好者的一封公开信),提出了软件“版权”(Copy Right)的概念,正式宣告进入商业软件时代。

随后,商业软件领域崛起了一个个巨无霸。开源软件也一直受到商业软件的强力压制。在微软鼎盛时期,大家对开源的命运一度非常悲观。但观察发现,几乎每一款成功的商业软件背后,总有一款比较成功的开源软件,如Linux之于Windows,MySQL之于Oracle等。因此,微软鲍尔默将开源与Google和苹果并称为微软的三大劲敌。

然而,随着软件日益互联网化,开源软件在一些领域开始超越商业软件。最新的统计显示,Web服务器有65%使用开源的Apache Web Server,远远超过微软IIS的12%;开源浏览器Firefox和Chrome合计占66%,是IE的两倍。在企业IT系统中,由于显著的成本优势,开源软件也逐渐占据越来越大的份额。2008年的一项调查表明,58%的企业都在采用Linux。开源作为一种软件开发模式,逐渐进入主流视野。

开源最大的贡献是孕育了互联网。雅虎、Google、亚马逊、Facebook等互联网新霸主,都大量采用免费的FreeBSD、Linux、Apache Web Server等开源软件搭建自己的系统,可以说都是在开源软件的“哺育”下崛起的。这些互联网公司与微软不同,骨子里就有开源的基因,软件销售不再是他们的收入来源。因此开源不但不会对他们构成威胁,而且有助于成本降低和技术水平提升。今天,互联网巨头反过来又成了推动开源的新力量,这也构成了开源发展的源头活水。

云计算与开源相互促进交汇发展

云计算的技术和服务模式诞生于互联网公司,开源基因也自然被遗传下来。

今天,云计算开源化的潮流浩浩荡荡。据Black Duck统计,2010年年底,平台型的开源云计算项目就达到470多项 ,2011年启动的开源项目中40%都是跟云计算相关(另外19%与移动相关,15%与企业应用相关) 。Open Stack作为最为火爆的IaaS开源平台,从NASA和Rackspace发起至今短短两年时间,已经吸引了183家企业参加,云计算领域的玩家悉数入场,包括HP、Dell、Intel、思科、VMWare等巨头。核心技术脱胎于谷歌,并由Yahoo最初发起的开源大数据平台Hadoop,已经建立了较为完善的生态链,应用遍及互联网、金融、传媒等各个领域,成为大数据分析的标配。

最近,就连昔日商业软件霸主微软也不得不用开源来包装自己的产品。2012年6月,微软一改以往只支持自有产品的惯常做法,宣布Azure平台上可支持开源的Ubuntu、CentOS、Python、PHP和MySQL等开源技术。微软还成立了专门负责开源事务的公司Microsoft Open Technologies。为了能够让其他开源将软件更好地运行在微软云平台上,微软也加大了对开源软件的贡献,如对Linux内核的贡献已达15万行代码,超过代码总量的1%,在公司贡献中排名前列。作为商业软件的旗帜,微软对待开源态度的变化,更进一步确认了开源成为云计算软件开发的主流方式。

云计算之所以与开源模式结合这么紧密,背后主要有两大动因。

一是开源云计算有助于打破亚马逊和谷歌等的技术垄断。云计算来袭,IT制造企业、软件企业和电信运营商都面临转型的严峻挑战。而亚马逊和谷歌等公司凭借先发优势,已经在技术上遥遥领先。任何一个企业独立开发一套完整的云计算解决方案都是十分困难的。因此,积极参与开源项目,成为这些公司掌握云计算技术、发展云计算服务的跳板。

二是开源云计算是形成事实标准的一个新途径。公有云、私有云和混合云长期共存,是大家对云计算部署场景的普遍预期。在这种情况下,在不同的云上迁移应用和数据是不可避免的。当前,云计算标准缺失,使用者最担心的问题就是被提供商技术锁定。因为在这种情况下,一旦采用某一家的公共云服务或购买私有云系统,就等于“上了贼船”。要把应用和数据迁移到其他平台上去,将会付出高昂的代价。虽然目前牵头制定标准的组织众多,但与写在纸上的标准相比,经过实践检验的事实标准将更有生命力。开源云计算平台提供了一个平等参与事实标准形成的机会,这符合产业界大部分人的利益。

基于上述两个原因,来自传统设备制造、软件、电信运营、芯片等领域各路人马为了一个共同的目标走在一起,形成了推动开源云计算的主力。

开源云计算面临隐忧

虽然前景乐观、动力充沛,但与其他任何开源项目一样,开源云计算同样也面临一些隐忧。

首先是开源云计算缺乏有力而持续的贡献。以OpenStack为例,有报道说,虽然有150多名核心开发人员和183家公司成员,但仅有三分之一的公司以某种形式贡献了代码,大部分还是抱着搭便车的心态。另外,从开源的发展历史看,一般都是先有专利产品,再有开源实现,开源一直走不出“山寨”的阴影。例如,Hadoop是Google云计算平台的翻版,但Hadoop反而受到业界追捧。而Google早在2009年就着手开发新一代的Dremel大数据平台。

其次是开源云计算缺乏强有力的控制机制。开源组织往往是松散的利益共同体,成员间的利益很难调和,容易导致版本分裂,例如同为Hadoop的发行版,Hortonworks 和Cloudera的发展方向出现了分歧。版本的分类将会造成互操作障碍,损害生态链的价值。这就像Andriod今天的版本碎片化一样,将给应用开发者造成极大的困扰。

最后是开源云计算缺乏完善的支持与服务。云计算平台是一个复杂的系统,往往要整合大量的产品和服务。而开源云计算平台在集成私有产品时,往往得不到足够的支持。例如有报道称,OpenStack虽然支持的虚拟机种类多,但仅支持简单的操作,如开启和关闭,很多深度功能私有厂家并未开放。此外,在售后服务方面,基于开源的私有云的提供商建立完善的服务体系还有很长的路要走。