如同所有的新技术一样,开源云计算软件也有着其优点和缺点。免费的理念对于希望实施云计算而又精打细算的IT部门是极具吸引力的,同时也不会有受限于供应商的顾虑。但是开源项目的DIY特性对于小型IT公司来说是一个主要缺点,因为他们缺乏专门的技术开发人员来建立和管理一个开源云计算架构。
SearchCloudComputing.com邀请行业分析师Bill Claybrook共同讨论市场趋势,当建立一个开源云计算时,各种规模的公司应当如何考虑,而目前哪一家供应商最具影响力。
使用开源云计算的优势何在?
Bill Claybrook:开源是一种生产软件和发布软件的方法。它只是一个执行的范例。开源意味着没有使用费用;只要在几个规则下,你就可以随意使用,其中包括的发布规则在开源使用说明中已有描述。
目前有很多开源云计算使用许可,其中每个通常都有若干关于你可如何使用开源代码的不同规则。如果你正在从事真正的开源项目,这就意味着你要下载并使用它,然后你还需要有能够真正支持开源代码的技术人员。
如果你并不拥有如上所述的资源,而你又希望使用开源代码,你可能必须向第三方支付费用以寻求支持。这样一来,你希望通过使用开源云计算而节省成本的目标就无法实现。
在其它情况下,如果你正在像eBay、Amazon、美洲银行以及其它大型金融机构那样部署大量的服务器(其规模为10,000至15,000台服务器),并拥有专业技术人才,那么开源项目就具有很重要的意义。如果你必须为那些服务器中的每一台购买专用云计算软件,那么相关使用许可总成本就相当庞大了。如果你有很多服务器,而你正试图通过服务器虚拟化创建一个云计算,那么开源项目将是一个很好的方法--尤其是使用管理程序。
此外,与闭源代码产品(如Oracle公司或尤其是微软公司)不同,其使用许可并不复杂。使用真正的开源代码,你可以得到使用许可证移动性,这意味着云计算使用许可中的一切。在云计算环境中--即使你只是在你的实验室中进行虚拟化--你需要把应用程序工作负载在不同服务器之间实现迁移,但如果你没有目标服务器的使用许可证,你就无法实现迁移。使用真正的开源,在云计算之间进行应用程序迁移时你会拥有更大的自由度。这是一个巨大的优势,能够为你节省不少金钱。
你还可以更为快速地开发一个系统。如果你正在使用可易于获取的开源软件,那么你就可以实施代码并进行测试而无需在使用许可上花费任何费用。你可以获得开源,下载并开发一个你需要测试的软件系统模型。
所以,你可以节省时间,这在另一方面也是节省了成本。开发和发布开源软件的方法允许你以一个更快捷的方法和更低的成本实施一个项目。
那么,开源的缺点是什么?
Claybrook:开源最大的缺点就是缺乏支持。你必须拥有技术人员来支持开源项目,并基于此进行开发。如果你正在使用开源代码创建一个系统或平台,你可能会需要整合大量其它开源项目的代码。如你选择所有的开源代码来构建一个私有云计算,那么你的团队中就需要有人来整合所有的组件并确保他们能够正常运行。
与之相反,如果我购买了VMware公司的产品,那么该公司就可能会向我提供一大堆价格不菲的产品,当然这些产品是能够在一起正常运行。但是,不久之后你就会发现你已受限于VMware的产品了。
还有些人可能会觉得开源软件的发布过于频繁,有时可能会觉得不堪其烦。而其它的开发人员则会认为这是一个优势,因为你总是能够更快地获得新功能。
拥有内部开发专业人士的成本是否低于商业云计算软件的使用许可成本?
Claybrook:如果你拥有很多服务器,那么你真的需要拥有能够支持开源项目的技术人员。大型金融机构往往更倾向于开源项目,这是因为他们可以轻松实现代码定制。有能力实现技术支持和修改源代码以支持他们自己定制需求的公司应当能够游刃有余地处理这个问题。例如,如果你正在基于五个开源项目来构建一个云计算,那么你真的需要拥有能够专门为这些项目进行开发和发布工作的技术人员。
这样,如果你有你希望实现的功能,那么你的技术人员就能够在开源项目团队的框架下正常工作,从而获得包含在主线代码中的那些功能。
如果你正在使用的代码源于一个大型开源项目,那么你可能就会在网上为这个项目搜索到大量的支持。但是,如果你在你的云计算项目中正在使用的是一个中小型的开源项目代码,那么你可能就很难找到相关的支持了。一个公司也可能会转而采用开源项目代码,因为它可以被用于满足某些特殊的业务需求。
如果你找到真正对你业务情况具有战略意义的开源软件,那么那就是做出选择的另一个原因了。例如,有开源软件公司的产品能够管理你所有的管理程序,因此你就可以从一个工作站同时管理公共云计算和私有云计算。
有那些主要的开源云计算供应商呢?
Claybrook:有几个。很多云计算供应商都是基于闭源的,但是也有其它一些供应商是基于开源的。Eucalyptus系统公司就是一个开源公司,其产品都是基于开源代码的。使用Eucalyptus release 3,整个平台是开源的。该公司通过销售包括商业插件和技术支持在内的年度使用来实现赢利。你可以建立一个私有云计算;
它支持很多Amazon弹性云计算(EC2)的应用程序编程接口(API)。如果你拥有一个全VMware的环境,你可以在VMware虚拟化服务器安装之上实施Eucalyptus的IaaS(基础设施即服务)并建立一个私有云计算。在去年,Eucalyptus公司已增加了一倍的雇员。
然后,如果你希望实施OpenStack这样一个项目,它就如同开源世界中的宠儿一般。即便OpenStack是开源的,但他也不是真正面向中小型企业用户的。它主要是适合于那些拥有技术能力处理产品的公司和服务供应商的。除非你希望从诸如Rackspace公司这样的合作伙伴购买OpenStack ,否则OpenStack是不提供支持的。你还可以从OpenStack项目成员那边获得一些帮助。再有就是Ubuntu,它是Canonical有限公司的开源操作系统,它已与Eucalyptus进行了捆绑。
另一个很酷的开源云计算供应商是Abiquo公司,它的管理型产品是一个单一的控制台,可以一并管理私有云计算和公共云计算。它与管理程序无关,它是一个非常酷的开源产品。
所有这些开源产品都为开源项目代码提供了商业版或商业版插件。通常来说,商业版闭源产品所提供的功能并不会在开源版产品中提供。如果出现了一个用户真正需要的新功能,有些厂商将会把这个功能整合在他们所发布的一个旧版开源软件中。
有关云计算互操作性的问题如何?
Claybrook:这个问题非常有趣。我对互操作性的定义是把应用程序从一个环境迁往另一个环境。大多数云计算环境--例如Terremark云计算、或Amazon云计算或Savvis云计算-所有这些云计算环境都是通过使用不同的管理程序、不同的操作系统、不同的数据库系统等而实施的。当你有一个应用程序希望把它从你的数据中心或你的私有云计算迁往公共云计算,如果不花费一番功夫,它就无法正常工作。
这个问题在于,首先如果你跨平台使用Microsoft产品,这就带来了互操作性问题,同时也使你受限于他们的软件产品。其次,如果你希望把一个应用程序从基于微软的云计算迁往别的环境,那么可供你选择的对象几乎只有另一个基于微软的云计算了,否则在迁移应用程序过程中将遇到其它众多的问题。眼下,互操作性几乎就是一个可望不可及的愿望。
那么,请您列举一些一个开源云计算产品的其他成本?
Claybrook:如果你要以一个合理的方式采用开源,你真的需要拥有一定的开发人员全职地从事这个项目。如果你希望从代码中实现某些功能,你可以通过你的开发人员来得到。增加的成本包括两到三个开发人员至少是兼职地从事该项目。
开源的另一个成本是你无法从一个地方得到所有的软件。如果你选择Eucalyptus公司,他们或许会给我所有我需要的软件。但是,如果我的开源软件产品像很多公司一样是拼凑的,那么必须有人能够整合所有这些东西,并确保它能够正常工作,测试它,等等。
如果你拥有专业人士能够完成这个整合工作,你还必须对其进行测试。因此,虽然你可能通过开源软件在使用许可免费、更好的可扩展性甚至性能等方面节省一些成本,但是你还是必须在开发人员方面花费金钱。
开源是好的,但你必须非常小心。你正要开始一个庞大的项目。如果你的公司内部并不具备真正的专业知识,你最好雇人来帮助你或者购买商业版。