《2022年Google云计算与Amazon云计算对比 .pdf》由会员分享,可在线阅读,更多相关《2022年Google云计算与Amazon云计算对比 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Amazon 与 Google 云计算1. Amazon 1.1.基础架构和服务Amazon S3服务请求路由请求路由客户请求网页渲染组件,聚集服务服务Dynamo 实例其他数据存储图 1 面向服务的 Amazon 平台架构图 1 显示了 Amazon 平台的抽象架构, 动态网页的内容是由页面呈现组件生成,该组件进而查询许多其他服务。 一个服务可以使用不同的数据存储来管理其状态,这些数据存储仅在其服务范围才能访问。有些服务作为聚合器使用其他一些服务,可产生合成 (composite)响应。通常情况下,聚合服务是无状态,虽然他们利用广泛的缓存。从图 1 中可知, Dynamo 是 Amazon
2、云计算平台中处于最底层的存储架构,不直接向公众提供服务,但是为整个平台及服务提供最基础的支持。S3 就是建立在 Dynamo 之上, SimpleDB 也极有可能使用或者借鉴了Dynamo 技术。Amazon 以 Web服务的形式将云计算产品提供给用户。Amazon Web Services名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - (AWS)是这些服务的总称。目前AWS 提供的服务产品如表1 所示。产品分类产品名称弹性计算
3、云EC2 弹性 MapReduce 内容推送服务CloudFront 数据库服务SimpleDB RDS 简单队列服务SQS 支付服务FPS DevPay 存储服务S3 EBS 1.2. EC2 Amazon EC2 属于 IaaS(基础设施即服务)。EC2 使用 Xen 虚拟化技术。每个虚拟机,又称作实例,能够运行小、大、极大三种能力的虚拟私有服务器。Amazon 利用 EC2 Compute Units去分配硬件资源。EC2 简言之。他完全是一部具有无限采集能力的虚拟计算机,用户能够用来执行一些处理任务。然而“无限”并不不意味“无边际”,相反,他是具有上限的。亚马逊的文献阐明,你能同时租用
4、“上百,甚至数以万计”虚拟机。2. Google GAE 由于发布 S3 和 EC2 这两个优秀的云服务,使得Amazon 已经率先在云计算市场站稳了脚跟,而身为云计算这个浪潮的发起者之一的Google肯定不甘示弱,并在 2008 年四月份推出了 Google App Engine 这项 PaaS服务,虽然现在无法称其为一个革命性的产品,但肯定是现在市面上最成熟,并且功能最全面的PaaS使用Backup Snapshots to 使用使用SimpleDB EBS S3 EC2-AMI Reside on EBS 存储RDS 名师资料总结 - - -精品资料欢迎下载 - - - - - - -
5、- - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 平台。Google App Engine架构图从图上看出, GAE 架构可以分为三个部分:前端,Datastore和服务群:1. 前端(有四大模块)1) Front End:既可以认为它是Load Balancer,也可以认为它是Proxy,它主要负责负载均衡和将请求转发给App Server (应用服务器) 或者 Static Files 等工作。2) Static Files:在概念上,比较类似于CDN(Content Delivery Netw
6、ork,内容分发网络),用于存储和传送那些应用附带的静态文件,比如图片,CSS和 JS脚本等。3) App Server:用于处理用户发来的请求, 并根据请求的内容来调用后面的Datastore和服务群。4) App Master: 是在应用服务器间调度应用, 并将调度之后的情况通知Front End。2. Datastore 它是基于 BigTable 技术的分布式数据库,虽然其也可以被理解成为一个服务,但是由于其是整个App Engine唯一存储持久化数据的地方,所以其是App Engine中一个非常核心的模块。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
7、- - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 3. 服务群整个服务群包括很多服务供App Server调用,比如 Memcache,图形,用户,URL 抓取和任务队列等。Google App Engine给你一个完整的平台, 包括完整的 SDK(以及 Eclipse插件)和服务,你可以构建和部署你自己的应用程序,但你不能很好地控制操作系统, 硬件和存储,诸如写文件系统,使用线程等操作都有限制,这样设计的目的是为了确保平台不会被某个应用程序绑架。GAE 应该是利用Google 自己的技术实现的,从现在的资
8、料来看没发现Google使用了虚拟化技术。 Google有一项技术叫 Google WorkQueue ,是负责资源调度的,不知道是不是这项技术实现了GAE 的资源控制( Google 还未公开Google WorkQueue的实现) 。从功能上说,GAE 实现了多租户的资源按买入量分配,甚至 CPU 使用时间精确到了每个文件,这恐怕不是一个WorkQueue就能完成的吧? WorkQueue似乎更适合完成计算密集型任务。对于GAE 这样的互联网应用,如果等请求到来后在调度资源将web app 装入内存,是不是有点来不及啊?Google 的 GAE 下面有没有可能就是一堆的物理机装上OS,然后
9、再把它的PaaS的东西( GFS,Bigtable,MapReduce) 装上就 Ok 了呢?因为在 PaaS这个层面已经实现了数据与计算的动态分布,包括系统的流水一样的扩展性与可靠性,坏一台机器就坏吧, 反正已经分布冗余了, 那还有什么必要再去多加一层虚拟机的虚拟化白白去浪费资源的overhead? 3. EC2与 GAE 对比区别选项GAE EC2 层次PaaS IaaS 底层技术GFS、BigTable、 Chubby Lock等SimpleDB、S3、RDS、EBS 等提供服务(对于开发人员)服务都是现成的,可快速开发自己搭建基础设施,然后安装服务,需耗费一定的时间管理简单复杂抽象程度
10、高低名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 可靠性可靠,可以时刻查看GAE 的状态,是透明的可靠,从历史数据来看, EC2 正常运行时间比 GAE 要好可移植性可以更好的可移植性存储GAE 目前严重依赖 BigTable,不过Google 最近宣布将让GAE 支持传统的 SQL 数据库EC2 已经支持 SQL 数据库,你可以使用 Oracle, MySQL 等你所熟悉的关系数据库维护与升级容易复杂开发限制受平台的限制提供
11、了所有底层访问和控制权语言支持Java、Python C#,.NET,ASP.NET MVC/Visual Studio 等概括地说, Amazon EC2 是进入云计算的早期尝试者,它利用互联网标准和开放平台创建了一个非常灵活的云计算平台,Google 则利用了它在大型数据库方面的研究成果和它内部实现的一些技术创建了一个强大,但有更多限制的云计算环境。从核心技术来讲, Amazon EC2 允许你扩展任何计算器实例到多个实例,因此你拥有每个虚拟盒子的完全控制权,Google App Engine从操作系统抽象而来,没有计算器实例的概念,如果你的Web 应用程序不需要操作系统相关的功能,那么
12、Google App Engine 无疑是最好的选择,如果需要更好地控制你的系统环境,特别是操作系统相关的控制,那么最好选择Amazon EC2。4. 关于虚拟化的见解4.1.云计算与虚拟化云计算与虚拟化技术,没有必然的关系。实现云计算,根本不需要虚拟化。这里说的云计算就是分布式计算(如Google 利用 MapReduce实现) 。只有在云服务提供商对外提供服务的时候,才需要虚拟化技术, 用虚拟化技术的摸底是为了更好的管理。1) 当一台机器资源闲置的时候, 我可以通过虚拟化, 在上面跑多个 OS。这时云计算和虚拟化就有关系。2) 当一台机器无法满足计算的要求的时候,我们把多个机器并一起来完成
13、一项工作,这其实就是所谓的并行计算。但是这和虚拟化有啥关系呢?我一台机器的性能都不够用,难道我还在上面虚拟化,再跑一个OS,这样性能就更差。这其实是很困惑人的。那么我不用虚拟化, 来实现并行计算, 可以吗?这肯定是可以, 假如你这次名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 并行技术,需要的是linux,安装特定的软件,那么你就在100台机器进行安装,就可以实现并行计算。 我们一些固定的应用, 并行计算,其实根本不需要虚拟化
14、,现在那些高性能计算机,其实就是通过并行计算的原理来实现的。一个简单的例子, Google,他肯定是云,那么可以肯定一点,Google 肯定是没有用啥虚拟化的技术。他都是用普通的pc,进行大量的并行计算。4.2.什么情况需要通过虚拟化来提供云计算不同用户,实现并行计算的软件,OS 都是不一样的。如果我是对外提供服务,我就需要满足不同的需求。而且客户需要云计算的能力,是按需的,不是长期的。假设客户需要100 台服务器,运行 Linux10 个小时。马上又有客户提出,我需要 100 台 windows 的机器,跑一个小时。那么如何在在 100 台机器跑完 Linux ,又马上安装 window 给
15、客户提供服务呢?当你有 100 台物理的机器。 你如何可以实现统一的管理呢?远程控制卡,这是可以实现远程管理, 不过不是所有的机器都有远程控制卡,而且即使有远程控制卡,你如果希望同时在这些机器安装系统,软件呢?那么目前的技术条件,如何才能更低的成本来实现统一管理100 台服务器,甚至 1000 台呢?答案就是虚拟化。目前一台物理服务器上跑一个OS,和物理服务器上虚拟化,再跑一个OS,性能大概要损失5%,这是可以接受的。因为所有的机器实现虚拟化后,我们就可能实现统一的管理。虚拟化,物理服务器,其实也是需要你去安装系统,不过这是一次性的。实现虚拟化后,你在上面跑什么OS,什么软件,都是可管理的。你需要 100 台 Linux 的主机,我 1 分钟就克隆出来给你使用。这就是我们为啥看到云服务提供商,都是通过虚拟化来提供云计算。4.3.结论对于要解决 1 台机器的资源充分利用,那么云计算是需要虚拟化来实现。但是对于把多台机器并在一起完成一项工作,根本不需要虚拟化。如果你希望对外提供服务, 作为云计算的服务提供商, 那么你就需要采用虚拟化的技术,这样可以更好的服务客户。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -
限制150内