GOOGLE云计算与AMAZON云计算对比
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Amazon与Google云计算
1.Amazon
1.1.基础架构和服务
图1面向服务的Amazon平台架构
图1显示了Amazon平台的抽象架构,动态网页的内容是由页面呈现组件生成,该组件进而查询许多其他服务。一个服务可以使用不同的数据存储来管理其状态,这些数据存储仅在其服务范围才能访问。有些服务作为聚合器使用其他一些服务,可产生合成(composite)响应。通常情况下,聚合服务是无状态,虽然他们利用广泛的缓存。
从图1中可知,Dynamo是Amazon云计算平台中处于最底层的存储架构,不直接向公众提供服务,但是为整个平台及服务提供最基础的支持。S3就是建立在Dynamo之上,SimpleDB也极有可能使用或者借鉴了Dynamo技术。
Amazon以Web服务的形式将云计算产品提供给用户。Amazon Web Services
(AWS )是这些服务的总称。目前AWS 提供的服务产品如表1所示。产品分类
产品名称弹性计算云
EC2弹性MapReduce 内容推送服务
CloudFront 数据库服务
SimpleDB RDS 简单队列服务
SQS 支付服务
FPS DevPay 存储服务
S3EBS 1.2.EC2
Amazon EC2属于IaaS (基础设施即服务)。EC2使用Xen 虚拟化技术。每个虚拟机,又称作实例,能够运行小、大、极大三种能力的虚拟私有服务器。Amazon 利用EC2Compute Units 去分配硬件资源。使用Backup Snapshots to
使用
使用
SimpleDB
EBS
S3
EC2--AMI Reside on
EBS 存储
RDS EC2简言之。他完全是一部具有无限采集能力的虚拟计算机,用户能够用来执行一些处理任务。然而“无限”并不不意味“无边际”,相反,他是具有上限的。亚马逊的文献阐明,你能同时租用“上百,甚至数以万计”虚拟机。2.Google GAE
由于发布S3和EC2这两个优秀的云服务,使得Amazon 已经率先在云计算市场站稳了脚跟,而身为云计算这个浪潮的发起者之一的Google 肯定不甘示弱,并在2008年四月份推出了Google App Engine 这项PaaS 服务,虽然现在无法称其为一个革命性的产品,但肯定是现在市面上最成熟,并且功能最全面的PaaS
平台。
Google App Engine架构图
从图上看出,GAE架构可以分为三个部分:前端,Datastore和服务群:
1.前端(有四大模块)
1)Front End:既可以认为它是Load Balancer,也可以认为它是Proxy,它
主要负责负载均衡和将请求转发给App Server(应用服务器)或者Static
Files等工作。
2)Static Files:在概念上,比较类似于CDN(Content Delivery Network,内
容分发网络),用于存储和传送那些应用附带的静态文件,比如图片,
CSS和JS脚本等。
3)App Server:用于处理用户发来的请求,并根据请求的内容来调用后面的
Datastore和服务群。
4)App Master:是在应用服务器间调度应用,并将调度之后的情况通知Front
End。
2.Datastore
它是基于BigTable技术的分布式数据库,虽然其也可以被理解成为一个服务,但是由于其是整个App Engine唯一存储持久化数据的地方,所以其是App Engine中一个非常核心的模块。
3.服务群
整个服务群包括很多服务供App Server调用,比如Memcache,图形,用户,URL抓取和任务队列等。
Google App Engine给你一个完整的平台,包括完整的SDK(以及Eclipse插件)和服务,你可以构建和部署你自己的应用程序,但你不能很好地控制操作系统,硬件和存储,诸如写文件系统,使用线程等操作都有限制,这样设计的目的是为了确保平台不会被某个应用程序绑架。
GAE应该是利用Google自己的技术实现的,从现在的资料来看没发现Google使用了虚拟化技术。Google有一项技术叫Google WorkQueue,是负责资源调度的,不知道是不是这项技术实现了GAE的资源控制(Google还未公开Google WorkQueue的实现)。从功能上说,GAE实现了多租户的资源按买入量分配,甚至CPU使用时间精确到了每个文件,这恐怕不是一个WorkQueue就能完成的吧?WorkQueue似乎更适合完成计算密集型任务。对于GAE这样的互联网应用,如果等请求到来后在调度资源将web app装入内存,是不是有点来不及啊?
Google的GAE下面有没有可能就是一堆的物理机装上OS,然后再把它的PaaS的东西(GFS,Bigtable,MapReduce)装上就Ok了呢?因为在PaaS这个层面已经实现了数据与计算的动态分布,包括系统的流水一样的扩展性与可靠性,坏一台机器就坏吧,反正已经分布冗余了,那还有什么必要再去多加一层虚拟机的虚拟化白白去浪费资源的overhead?
3.EC2与GAE对比
区别选项GAE EC2
层次PaaS IaaS
底层技术GFS、BigTable、Chubby Lock
等
SimpleDB、S3、RDS、EBS等
提供服务(对于开发人员)服务都是现成的,可快速开
发
自己搭建基础设施,然后安装服
务,需耗费一定的时间
管理简单复杂抽象程度高低