刘冬
1. 概述
云计算平台近年来炒得非常火热,要建设或选用相应的云计算平台就需要对目前业界已有的平台进行分析对比,本文就是对比了目前业界已有平台的情况综合分析形成结论报告。
众所周知,云计算分为三个层次:IaaS、PaaS、SaaS。 IaaS,Infrastructure as a Service,基础架构即服务 PaaS,Platform as a Service,平台即服务 SaaS,Software as a Service,软件即服务
由于我们在未来主要是为某一行业提供专业的软件服务,即实现SaaS服务,那么重点就要对IaaS和PaaS进行对比和分析。
2. IaaS平台分类介绍
2.1 Amazon AWS
亚马逊AWS将硬件设备等基础资源封装成服务供用户使用,主要提供了弹性计算云EC2和简单存储服务S3。
1 / 12
2.2 OpenStack
是一个美国国家航空航天局和Rackspace合作研发的,以Apache许可证授权,并且是一个自由软件和开放源代码项目。
OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。
OpenStack 是由 Rackspace 和 NASA 共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspack 开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack 是开源项目,除了有 Rackspace 和 NASA 的大力支持外,后面还有包括 Dell、Citrix、 Cisco、 Canonical 这些重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台 Eucalyptus 的态势。
OpenStack是IaaS(基础设施即服务)组件,让任何人都可以自
2 / 12
行建立和提供云端运算服务。
此外,OpenStack也用作建立防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。
Cisco WebEx 就采用了 OpenStack。
2.3 CloudStack
CloudStack是一个开源的具有高可用性及扩展性的云计算平台。目前Cloudstack支持管理大部分主流的hypervisors,如KVM,XenServer,VMware,Oracle VM,Xen等。
同时CloudStack是一个开源云计算解决方案。可以加速高伸缩性的公共和私有云(IaaS)的部署、管理、配置。使用CloudStack作为基础,数据中心操作者可以快速方便的通过现存基础架构创建云服务。
CloudStack是早期受Citrix资助,从OpenStack分离出来的,并由Citrix捐献给Apache Software Foundation。
2.4 Eucalyptus
Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是一种开源的软件基础结构,用来通过计算集群或工作站群实现弹性的、实用的云计算。它最初是美国加利福尼亚大学 Santa Barbara 计算机科学学院的一个研究项目,现在已经商业化,发展成为了 Eucalyptus Systems
3 / 12
Inc。不过,Eucalyptus 仍然按开源项目那样维护和开发。Eucalyptus Systems 还在基于开源的 Eucalyptus 构建额外的产品;它还提供支持服务。
其特点是:
1.与 EC2 和 S3 的接口兼容性(SOAP 接口和 REST 接口)。使用这些接口的几乎所有现有工具都将可以与基于 Eucalyptus 的云协作。
2.支持运行在 Xen hypervisor 或 KVM 之上的 VM 的运行。未来版本还有望支持其他类型的 VM,比如 VMware。
3.用来进行系统管理和用户结算的云管理工具。
4.能够将多个分别具有各自私有的内部网络地址的集群配置到一个云内。
2.5 OpenNebula
OpenNebula是Reservoir项目的一部分,是2005年欧洲研究学会发起的虚拟基础设备和云端运算计划的虚拟化管理层的开源实现。OpenNebula的核心部分是Front End,即ONE。从开发平台的角度来看,OpenNebula采用C++实现核心ONE,使用Ruby开发的各种Driver来实现具体的功能。整体系统只有一个核心部件,故在开发平台上做得很少。
OpenNebula是一款为云计算而打造的开源工具箱。它允许你与Xen,KVM或VMware ESX一起建立和管理私有云,同时还提供
4 / 12
Deltacloud适配器与Amazon EC2相配合来管理混合云。除了像Amazon一样的商业云服务提供商,在不同OpenNebula实例上运行私有云的Amazon合作伙伴也同样可以作为远程云服务供应商。
2.6 Rackspace
Rackspace (NYSE:RAX)全球三大云计算中心之一,1998年成立,是一家全球领先的托管服务提供商,在全球拥有10个以上数据中心,管理超过64000台服务器。
2.7 Terremark
Terremark公司是一家信息技术服务提供商。 Terremark公司在全球范围内,公司在美国,欧洲和拉丁美洲的庞大和多样化的网络连接和访问数据中心,为客户提供服务,其中包括主机托管,主机托管,灾难恢复,安全性,数据的存储和云计算服务(Terremark公司) 。Verizon计划收购Terremark,用于完善自己的云平台。
3. PaaS平台分类介绍
3.1 Cloud Foundry
CloudFoundry 是VMware主导使用Ruby开发的一款开源PaaS云计算平台,类似于Salesforce旗下的Heroku,遵从OpenStack云计算平台规范。接下来重点介绍。
5 / 12
3.2 Heroku
Heroku 是一个商业的Rails主机托管解决方案,提供的是“无需准备的部署服务”,因为操作和扩展都是自动的,无需任何系统管理。虽然相较于其它服务商而言Heroku目前的价格较高。
3.3 Google App Engine
Google App Engine 是一种让您可以在 Google 的基础架构上运行您的网络应用程序。Google App Engine 应用程序易于构建和维护,并可根据您的访问量和数据存储需要的增长轻松扩展。使用 Google App Engine,将不再需要维护服务器:您只需上传您的应用程序,它便可立即为您的用户提供服务。
3.4 OpenShift
OpenShift是一个面向开源开发人员开放的平台即服务(PaaS)。红帽OpenShift通过为开发人员提供在语言、框架和云上的更多的选择,使开发人员可以构建、测试、运行和管理他们的应用,从而重新定义了 PaaS市场。以红帽全面的JBoss专业知识为基础,OpenShift凭借创新的特性(包括CDI)领导PaaS市场,并支持Java EE 6,从而将PaaS的能力扩展到更丰富和更苛刻的应用。建立在红帽开源领导地位基础上的OpenShift旨在终结PaaS的厂商锁定,使用户可以选择自 己应用运行在哪个云提供商的云中。OpenShift将作为在线服务来提供。
6 / 12
3.5 Windows Azure
Windows Azure是微软基于云计算的操作系统,和Azure Services Platform一样,是微软“软件和服务”技术的名称。Windows Azure的主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web和PC上的应用程序。云计算的开发者能使用微软全球数据中心的储存、计算能力和网络基础服务。Azure服务平台包括了以下主要组件:Windows Azure;Microsoft SQL数据库服务,Microsoft .Net服务;用于分享、储存和同步文件的Live服务;针对商业的Microsoft SharePoint和Microsoft Dynamics CRM服务。
4. 平台对比分析
平台类型 平台名称 Amazon Web Services (AWS) OpenStack 是否开源 NO YES N/A Apache License V2.0 开源协议 支持公司 Amazon Cisco等 Citrix捐献给 Apache Software Foundation Eucalyptus Systems 未知 VMWare Salesforce Redhat 平台主要开发语言 不详 Python IaaS CloudStack YES GPL V3.0 Java,Python Eucalyptus OpenNebula Cloud Foundry PaaS Heroku OpenShift YES YES YES YES YES GPL V3.0 Apache License V2.0 Apache License V2.0 GPL V3.0 Apache License 7 / 12
C C/C++,Ruby Ruby C,ErLang Ruby
Google App Engine NO Windows Azure NO V2.0 N/A N/A Google Microsoft Python .Net 从对比可以看出在IaaS和PaaS两类平台上,都有开源的平台,并且由不同的商业公司在后面进行支持。
在开源代码的协议中主要采用Apache License V2.0和GPL V3.0两个主要的。
在平台的开发语言方面涉及有C/C++,Java,Python,Ruby等不同的开发语言。这些平台的开发语言方面可能并不是非常重要的,关键是平台所提供的上层应用的支持情况。
IaaS层主要是硬件的自动化管理,人与机器的解耦合,获得效率,牺牲性能。
PaaS层主要是应用的自动化管理,应用与OS的解耦合,获得弹性,牺牲控制。
还是开始所强调的,我们是要完成SaaS的构建,因此会更注重在PaaS的选择。接下来,我们就以Cloud Foundry为例进行详细的分析。
5. Cloud Foundry介绍
5.1 概述
在云计算的三个层次中,Cloud Foundry处于PaaS层。如下图:
8 / 12
与此同类的PaaS平台中最知名的当属Google App Engine(简称GAE)。与GAE相比,Cloud Foundry最大的特点还是开源、开放。
开源
Github上开放源码,并鼓励社区贡献和check-in;目前所有核心模块都已经开源;开放的开发平台和流程,VMware R&D与社区开发者采用相同的代码审核和签入流程;Apache 2开源许可协议。
开放
支持多种语言、框架、服务和底层IaaS基础平台;支持多种运维方式,公有,私有,CF.com。
下面这个图可以很清晰的表现出CloudFoundry开源、开放的特点。
9 / 12
一个三角形的三条边:
右下:封装了各种IaaS的封装,包括Amazon AWS、VMWare vSphere、OpenStack等多种商用、开源的IaaS平台。
左下:提供了对MySQL、Redis等多种服务的支持,在开发社区中也有人提供了对Oracle等企业级应用数据库的支持。为SaaS层提供服务支撑。
上边:提供了对多种开发语言平台的支持。而且还在不断增加,比如由开发社区的爱好者增加的GO语言。为SaaS提供开发语言运行平台和框架。
目前成功应用Cloud Foundry作为PaaS的成功案例包括:ActiveState、AppFog等国外知名SaaS服务平台,还包括新浪SAE Ruby平台、盛大云PaaS平台、莫怕网MoPaaS平台等国内的PaaS服务平台。
10 / 12
5.3 架构
下图是Cloud Foundry的实现架构,作为准备选用CF作为PaaS的开发者需要对此有一个详细的了解。
各个部分的功能在此不必再详细介绍。可以参考CF提供的详细资料。
6. 总结
从总体的对比来看IaaS平台类似现在计算机的BIOS的概念,PaaS平台类似现在的操作系统。可以将类似Cloud Foundry这样的平台称为云计算时代的“云操作系统”。
VMWare在做Cloud Foundry这个产品线方面,定位还是比较高的,应该是直接并没有看中眼前的利益,而是直指“云操作系统”
11 / 12
的行业标准。
据VMWare官方介绍,其在Cloud Foundry产品线的投入还是不小的(估计至少要上千万美金)。投入的专职开发人员有120人左右,其中美国有70%左右,中国(上海)有30%左右。
同类产品中Google App Engine,相比之下GAE会要求在源码中带有一些特定的(数据源等的)写法,而Cloud Foundry则没有这方面的强制要求。这样也就是说如果要使用GAE会在源码中产生对GAE平台的依赖代码,形成一种紧密的耦合,影响了上层应用的代码移植性。
Redhat公司的OpenShift产品是与Cloud Foundry同类的开源软件,由于还没有做深入的了解,因此也不好进行对比。据VMWare官方介绍,这应该是他们目前最强劲的竞争对手,但是起步相比晚了一些。VMware在Cloud Foundry的投入已经有两年了,而Redhat公司在OpenShift上的投入则整整晚一年。
12 / 12
因篇幅问题不能全部显示,请点此查看更多更全内容