云计算比较: Google AppEngine vs. Amazon EC2/S3

09-06-04 banq
云计算定义:从两个方面去定义,一个是底层机制,一个是用户模型

Infrastructure底层机制:Cloud Cluster Grid;

用户角度分为:Utility Computing SaaS/SOA

Utility Computing代表是:Amazon EC2, Google AppEngine

SaaS代表是:一些online office 和在线CRM等等

主要谈谈Utility Computing,简称UC,提出面向资源ROA,和SOA面向服务不同,Hardware as a service (HaaS), Infrastructure as a service (IaaS), Platform as a Service (PaaS)

说白了,UC就是卖可伸缩性Scalable,UC是一个伸缩机,这是它的最大价值,你一个小应用,当初没想到能搞那么大,风险资金进来了,半年访问量翻100倍,而这些巨大访问是你当初小应用没有考虑到的;但是也不能让每个编程序的人都掌握架构师的知识:高伸缩性,就象我在jdon天天谈伸缩性,没几个人明白,明白了也不会站在这个高度来思考,所以,架构师知识少有的。Google APP Engine 都给你事先考虑好了,帮助无缝拓展,这是它的价值,也是云计算的一个核心价值。

降低费用也是UC的一个卖点,人人做一个web 2.0网站成本低,随着规模扩大,成本就降低.

AMAZON EC2特点:

租个VM实例运行您的软件。按照需求变化监测和增加/减少VM数。使用步骤:

1.创建一个Amazon Machine Image (AMI),可以是: applications, libraries, data a和其他设置

2.上传AMI到Amazon S3 (只是存储)

3. 用Amazon EC2 web service配置你自己的安全策略和网络。

4. 选择OS, 启动你的AMI

5. 通过Web界面或API监控

GOOGLE APPENGINE特点:

使用Python 或Java写你的应用,然后交给它,它就给你负责其余的事情,步骤:

1.下载 AppEngine SDK

2.本地开发你的应用程序

例如helloworld.py:

print 'Content-Type: text/plain' print '' print 'Hello, world!‘

3.python 要求, 输入: requested url, 输出: return message

配置app.yaml

application: helloworld

version: 1 

handlers:

- url: /.*

script: helloworld.py

存储持久化:分布式文件系统和用GQL等API操作数据库

4.本地调试

5.注册一个应用id,网址:http://application-id.appspot.com

6.将你的应用提交给Google:

appcfg.py update helloworld/

两者对比:

横向底层VM: Amazon EC2

带框架的丰富的VM: Google AppEngine

伸缩性:EC2缺省是不伸缩的

GAE是高度自动伸缩。

总结一下云计算:

Cloud Computing = SaaS + UC

p2p:不是使用云机制,每个终端得不到回报, 因此可靠性很低。

Grid Computing:无法分享,是一个私有云计算的概念。

云计算适合所有瘦客户端模型,是这些领域杀手级的架构,包括移动手机 有限电视机顶盒 上网本和普通浏览器等等。

Google AppEngine: http://code.google.com/appengine/

Amazon EC2: http://aws.amazon.com/ec2/

[该贴被banq于2009-06-04 14:50修改过]


                   

1
banq
2009-06-04 15:57
下面这篇PPT介绍云计算比较专业:

http://www.umiacs.umd.edu/~jimmylin/cloud-2008-Fall/Session1.ppt

http://www.umiacs.umd.edu/~jimmylin/cloud-2008-Fall/Session2.ppt

有几个观点很吸引人:

1. AJAX是前端云计算

2. 内存缓存模式:分享 分布 混合

3. 并行计算概念

[该贴被admin于2009-06-05 10:43修改过]

banq
2009-06-06 14:22
本周的JavaOne大会中有专门的云计算产品介绍,都是已经实现,并正常运行的,除了上面google app enginee和Ec2以外,还有更多:

Salesforce.com:Scalability 可伸缩性被内置它平台中。

Intuit Partner Platform(https://ipp.developer.intuit.com/):提供云计算服务:能让储存数据然后部署和整合你的应用程序。

Windows Azure:微软的云计算产品:2008年底赶趟才出来,基于Java应用的程序可以和Azure互动。

Sun Cloud:可以从一个Web界面管理虚拟的数据中心,这个中心可能是你自己的,只不过由SUN代管。你可以将Ubuntu, Windows, and LAMP 等服务器加入你的数据中心。甚至可以设置多层架构,如第一层服务器 负载平衡器 3个Web服务器和一个后端数据库之类可伸缩的scalable架构。

Cloud Computing: Show Me the Money:

http://java.sun.com/javaone/2009/articles/gen_cloudmoney.jsp

[该贴被banq于2009-06-06 15:14修改过]

banq
2009-06-06 15:10
很多人看了这么多云计算产品已经出来,如果自己的业务系统访问量非常庞大,也跃跃欲试一下云计算。

云计算引入的突破口在哪里?就是伸缩性Scalability,要让你的程序必须具备高Scalability,铁板一块的过程化程序怎么能够云计算呢?

而伸缩性的引入前提是你的程序是可拆分的,如果程序从头到尾都是相互依赖,不能分离,就没有伸缩性。

那么如何细分你的程序呢?方式很多,重要的一个实践就是引入对象缓存,具体见下面讨论:

http://www.jdon.com/jivejdon/forum/messageList.shtml?thread=36063&message=23123017#23123017

banq
2009-06-19 14:25
建设一个千兆级数据云计算的项目著名社区网站LinkedIn架构:Hadoop+Voldemort

文章地址:

http://project-voldemort.com/blog/2009/06/building-a-1-tb-data-cycle-at-linkedin-with-hadoop-and-project-voldemort/

猜你喜欢
2Go 1 2 下一页