第1章
概述
1.1.
简介
云计算(
Cloud Computing
)是网格计算(
Grid Computing
)、分布式计算(
Distributed Computing
)、并行计算(
Parallel Computing
)、效用计算(
Utility Computing
)、网络存储(
Network Storage Technologies
)、虚拟化(
Virtualization
)、负载均衡(
Load Balance
)等传统计算机技术和网络技术发展融合的产物。
云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。
1.2.
商业模式
1.2.1.
IaaS
IaaS
(
Infrastructure as a Service
)基础设施即服务,交付给用户的是基本的基础设施资源。用户无需购买、维护硬件设备和相关系统软件,就可以直接在基础设施即服务层上构建字节的平台和应用。基础设施向用户提供了虚拟化的计算资源、存储资源和网络资源。这些资源能够根据用户的需求进行动态分配。相对于软件即服务和平台即服务,基础设施即服务所提供的服务都比较偏底层,但使用也更灵活。
典型实例:
Amazon EC2
、
S3
。
1.2.2.
PaaS
PaaS
(
Platform as a Service
)平台即服务,交付给用户是丰富的“云中间件”资源,这些资源包括应用容器、数据库和消息处理等。因此,平台即服务面向的并不是普通的终端用户,而是软件开发人员,他们可以充分利用这些开放的资源来开发定制化的应用。
典型实例:
Google App Engine
。
1.2.3.
SaaS
SaaS
(
Software as a service
)软件即服务,交付给用户的是定制化的软件,即软件提供方根据用户的需求,将软件或应用通过租用的形式提供给用户使用。
典型实例:
Google Gmail
和
Docs
。
1.3.
Google
云
Google
的云计算技术包括:
Google
文件系统
GFS
、分布式计算编程模型
MapReduce
、分布式锁服务
Chubby
、分布式结构化数据存储系统
Bigtable
等。其中,
GFS
提供了海量数据的存储和访问的能力,
MapReduce
使得海量信息的并行处理变得简单易行,
Chubby
保证了分布式环境下并发操作的同步问题,
Bigtable
使得海量数据的管理和组织十分方便。
1.4.
亚马逊云
亚马逊凭借其在电子商务领域积累的大量基础性设施、先进的分布式计算技术和巨大的用户群体,早就进入了云计算领域,并在云计算、云存储等方面一直处于领先地位。在传统的云计算服务基础上亚马逊不断地进行技术创新,开发出了一系列新颖、实用的云计算服务。主要包括:弹性计算云
EC2
、简单存储服务
S3
、简单数据库服务
Simple DB
、简单队列服务
SQS
、弹性
MapReduce
服务、内容推送服务
CloudFront
、电子商务服务
DevPay
和
FPS
等。
1.5.
云体系结构
Lenk
划分
Youseff
划分
第2章
Hadoop
介绍
2.1.
背景
Hadoop
是最知名的云计算开源系统,它模仿实现了
Google
云计算的主要技术。
Hadoop
是
Apache
开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,旨在构建一个具有高可靠性和良好扩展性分布式系统。
官方网址:
http://hadoop.apache.org/
,
Hadoop
是一个存开源的项目,当前核心库最新版本为
0.21
,还没有商业化。
2.2.
组成
子项目 |
最新版本 |
描述 |
Hadoop Common |
0.21.0 |
Hadoop |
HDFS |
0.21.0 |
分布式文件系统 |
MapReduce |
0.21.0 |
大型数据的分布式处理模型 |
Avro |
1.4.1 |
RPC |
Chukwa |
0.4.0 |
大型分布式系统管理系统 |
HBase |
0.89.20100924 |
结构化数据存储的分布式文件系统 |
Hive |
0.5.0 |
数据摘要和查询功能的数据仓库 |
Mahout |
0.4 |
机器学习 |
Pig |
0.7.0 |
建立在 |
ZooKeeper |
3.3.2 |
分布式文件锁服务 |
2.3.
原理
基于
Google
的三大核心技术论文实现的云计算平台,三大核心技术分别为:
GFS
(
Google
分布式文件存储)、
MapReduce
(分布式计算模型)、
Bigtable
(结构化数据存储的分布式数据库)。
2.4.
架构
2.5.
实现
Hadoop
涉及语言为
C++
和
Java
,其中
C++
部分很少。
第3章
Eucalyptus
介绍
3.1.
背景
Eucalyptus
(
Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems
),直译为“桉树”。桉树是一种开源的软件基础结构,用来通过计算集群或工作站群实现弹性的、实用的云计算。
官方网站:
http://www.eucalyptus.com/
,
Eucalyptus
开源社区
http://open.eucalyptus.com/
。最初是美国加利福尼亚大学
Santa Barbara
计算机科学学院的一个研究项目,现在已经商业化,发展成为了
Eucalyptus Systems Inc
。
Eucalyptus
仍然按开源项目那样维护和开发。
Eucalyptus Systems
还在基于开源的
Eucalyptus
构建额外的产品;它还提供支持服务。
3.2.
组成
组件 |
描述 |
Cloud Controller (CLC) |
云控制器,负责管理整个系统,它是所有用户、管理员进入、客户机的窗口 |
Cluster Controller (CC) |
集群控制器,负责管理多个节点控制器 |
Node Controller (NC) |
节点控制器,负责管理一个物理节点 |
Walrus (W) |
管理对 |
Storage Controller (SC) |
将存储服务实现 |
3.3.
原理
可扩展性:采用高度模块化
(highly modular cooperative)
,扩展起来非常方便。
非入侵性:不要求实用这将所有的机器都用于
Eucalyptus
,不要求破坏性的修改本地软件配置,建立在
Xen
的基础之上。
开放式:采用公开标准的通信协议,
API
与
AWS
兼容
(SOAP & REST)
。
组件式:每个服务组件都提供了一个
well-formed
,语言无关的
WSDL
文档格式的
API
和数据结构,内部服务的安全认证采用标准的
WS-Security
机制。
3.4.
架构
3.5.
实现
Hadoop
涉及语言为
C++
和
Java
。
第4章
选型分析
4.1.
比较
项目 |
Hadoop |
Eucalyptus |
备注 |
对应的商业运营商 |
Google |
亚马逊的开源模拟 |
亚马逊在中国的市场还未打开 |
是否有商业化服务 |
无 |
是 |
Eucalyptus |
分布式 |
|