自由及开源软件(FOSS)在Richard Stallman撰写GNU通用公共许可证(简称为GPL)的25年间已经在计算领域普及开来:现已存在在遍布在全球各地的很多企业中,如Linux、Apache HTTP服务器以及MySQL等。而现在云计算中开源也越来越多的被应用。
负责云业务产品、管理软件和Red Hat企业MRG(实时信息网格平台)的Red Hat产品管理总监Byran Che表示:“毫无疑问,开源在构建云计算方面是根基,对于传统数据中心,服务器领域的市场份额大约有70%运行在Windows平台上,而大约30%运行在Linux平台。而当你看看人们在云环境中建立应用程序所选择的操作系统时,你会发现这个数字完全反过来了。”
理由很简单,Che表示:对于云计算这样一个新的开始,企业需要从零构建出一个全新的架构,而开源毫无疑问为企业提供了最好的价值。
成本并不是开源模式在云领域占有一席之地的唯一原因,Che还指出,开源能够围绕一个项目建立一个社区,从而推动快速创新。
“这是开源真正的价值所在,”他表示,“亚马逊、谷歌、Facebook,以及建立所有这些云应用程序、基础设施和服务的所有人,都是使用开源来完成的。事实上,使用开源软件是实现他们所需要的创新水平的唯一出路。他们不可能等待其供应商走完整个开发周期。”
SaaS是否违反了自由软件原则?
但是开源究竟在云环境中发挥了什么作用?Stallman声称,云计算(特别是软件即服务SaaS)不能被定义为自由软件。
“SaaS和专有软件会导致相似的有害后果,但是其因果机制是不同的,”Stallman在《波士顿评论》上发表文章写道,“对于专有软件,原因是你拥有和使用的是难以更改或者无法更改的副本,而对于SaaS,原因是你使用的是你没有的副本。”
“很多自由软件支持者认为SaaS的问题将会通过为服务器开发自由软件而解决,”他补充说,“从服务器运营商的角度来看,服务器上的程序最好是自由的,因为如果这些软件属于专有软件,他们的所有者将有权控制其服务器。这对于运营商而言并不公平。但是如果服务器上的程序是自由的,从SaaS的影响来看,这也不能保护服务器的用户,因为自由使用权给了运营商,而不是给了用户。”
Stallman的论点扎根于自由软件和开源软件之间的哲学理念差异。Stallman表示,开源运动是一种注重让源代码可用的开发方法。而另一方面,自由软件则对用户应该如何与其软件进行交互提出了一个道德立场。
对于Stallman而言,自由软件必须为用户提供四项基本自由权:
1.按用户意愿运行程序的自由
2.根据需要学习和更改源代码的自由
3.重新分配精确副本的自由
4.重新分配用户修改后的副本的自由
虽然开源软件的定义和自由软件的定义几乎是相同的,但是当涉及到云计算时,它们似乎在接缝处各有不同。
“释放服务器软件源代码确实能够造福于社区:技术纯熟的用户可以设置类似的服务器,也许还可以改变软件,”Stallman写道,“但是这些服务器都不能让你获取对计算的控制权,除非它是你的服务器。其余的都将是SaaS。SaaS始终给予你服务器运营商的权利,对此唯一的补救办法是不要使用SaaS!不要使用别人的服务器对你提供的数据做自己的计算。”
与此同时,开源世界推出了各种服务:基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务以及数据存储即服务(DaaS)。
开放云的属性
Che表示Red Hat相信开放云,并表示开放云具有七个定义属性:
1.它是开源的,Che表示,“它是你建立程序依赖的基础。”
2.它是基于协作开发的,“围绕这个项目,需要有一个可行的独立的社区,”他表示,“必须具有这个动态社区,否则它就变成了发布其源代码的专有软件。”
3.它是基于没有绑定专有技术的开放标准和开放格式的。
4.它给予你自由使用你的知识产权的权利。
5.它为用户提供了基础设施选择,他们能够选择他们想要的基础设施供应商和云供应商。
6.它具有开放API,“它具有可插拔性和可扩展性,”Che表示,“它不能被限制。”
7.它能够一直到其他云,不能将用户锁定在一个特定供应商上。
“我们需要开放云的一个领域之一就是,给予用户在不同云之间具有互操作性和可移植性的能力,”Che表示,“这也就是说,我们将能够跨越所有这些不同的技术来管理一个混合云。”
开放云避免供应商锁定
朝互操作性和可移植性方向迈出的一大步就是Apache Deltacloud,这是Red Hat在2009年发起的一个项目,随后转交给了Apache软件基金会,该项目在2010年成为该基金会的顶级项目(TLP)。通过Deltacloud,Apache软件基金会正在试图为一个还没有形成的问题提供答案,这个问题在未来几年内可能会越来越突出:这就是“云锁定”。
“最大的挑战是云计算领域总是层出不穷地推出各种服务,用户都在忙于弄清楚如何最好地利用云,而云锁定目前还不是他们关注的焦点问题,”Red Hat主要软件工程师兼Apache Deltacloud项目主席David Lutterkort表示,“目前大家还没有意识到这个问题。”
Deltacloud是一个提取各种云之间的差异的API,使用单一API实现在不同基础设施即服务云中资源的管理。它基本上可以作为围绕大量云的包装,让用户摆脱处理各种云的API的繁琐。
标准机构也联合起来创建开放和互操作性标准。在2009年,领先的标准开发组织们(SDO)成立了云标准协调工作组,旨在协调不同标准开发组织开发云标准的工作。成员包括云安全联盟、云标准用户协会、分布式管理任务组(DMTF)、欧洲电信标准协会(ETSI)、美国国家标准和技术研究院(NIST)、开放网格论坛(OGF)、对象管理组织(OMG)、开放云联盟(OCC)、结构化信息标准促进组织(OASIS)、存储网络行业协会(SNIA)、国际开放标准组织、零售行业技术标准组织(ARTS)和TM论坛。
Lutterkort还是分布式管理任务组的董事会成员,分布式管理任务组正在创建一个名为云基础设施管理接口(CIMI)的标准,该标准将创建一种任何云都能够使用的标准API。
由Red Hat发起的Aeolus项目是另一个前瞻性开源项目,本质上旨在建立一个开源云经纪人。作为一个独立的项目,Aeolus提供一个单一的一致的工具来建立和管理跨各种云的虚拟机组,它包括以下工具:
● Aeolus Conductor,提供了一种为用户提供云资源、管理用户对这些云资源的访问权限以及使用情况、控制用户在云中的操作的方式。
● Aeolus Composer,提供了一种从通用模板建立云镜像使用户能够自由地使用兼容镜像来选择云的方式。
● Aeolus Orchestrator,提供了一种以有组织的方式管理各种实例的方式,使用户能够自动地对单一云或跨多个云带来不同实例,并进行配置,以及进行分辨。
● Aeolus HA Manage提供了一种在高度可用云中制造云实例或者实例组的方式。
在开放云领域,Red Hat并不是唯一的贡献者。Rackspace Cloud和美国宇航局也参与了Openstack IaaS云计算项目,还通过了Apache软件基金会。Openstack项目的目标是给予所有企业创建和提供云计算服务(在标准硬件上运行)的能力。