什么是云计算:
l 说的明白一点:
• 云计算其实就更大限度的发挥网络的资源。
• 那为什么叫云,为什么不到互联网计算?Cloud
l 大多数计算的网络拓扑图都用一块“云”来表示互联网。于是就形成了云计算的说法
l 狭义:是指IT基础设施的交付和使用模式,是指通过网络以按需、易扩展的方式获取所需要的资源。提供资源的网络被称为“云”。云中的资源在使用者看来是可以无限扩展的,并且可以随时获取。
l 广义:是指服务的交付和使用模式,是指通过网络以按需、易扩展的方式获取所需要的服务。
一块网络通常用一块云来表示,所以习惯上,就把网络计算,称为云计算.
云计算相关概念
l 云计算
• 云计算是为用户提供无限计算资源的商业服务,是能够自我管理计算资源的系统平台,是应用服务按需定制、易于扩展的软件架构。
l --- XXX ---
l 计算资源包括:CPU运算资源、存储资源、网络带宽等
l 云计算是并行计算、分布式计算和网格计算的发展,是这些计算机科学概念的商业实现。
l 云计算是虚拟化(Virtualization)、效用计算(UtilityComputing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。
云计算的几大形式
l 云计算服务类形
• 基础设施即服务( IaaS) - 提供硬件设备
• app – engine
//比如用户自己弄了一个软件,就可以发布到谷歌的这个app– engine平台上,然后全世界就可以得到你的这个软件的服务了.
• 软件即服务( SaaS ) - WebService
//软件服务,就是说,自己的webservice可以为世界的其他用户提供服务
• 网络服务
• 平台即服务(PaaS) - hadoop(平台) ,Oracle(),MS,
//就是各种大型云服务,比如数据服务,存储服务等等.
• 管理服务提供商(MSP)
//给企业,提供相关的管理服务.
• 商业服务平台
//商业服务,比如给不同公司提供,自己的管理系统等等.
• 云安全
//云查杀等等..
l InfoWorld网站同数十家公司、分析家和IT用户讨论出了云计算的几大形式。
l --- XXX ---
l 下面将大体介绍每一种云计算形式
基础设施即服务 (实用计算、虚拟化)
l IaaS —— Infrastructure as a Service
• 是为IT行业创造虚拟的计算和数据中心,使得其能够把计算单元、存储器、I/O设备、带宽等计算机基础设施,集中起来成为一个虚拟的资源池来为整个网络提供服务。
• 用多少算多少
• Amazon WebServices,简作AWS
• 弹性计算云EC2 (ElasticCompute Cloud)——计算
• 简单存储服务S3 (SimpleStorage Service)—— 存储
• Google App Engine
l Amazon使用弹性计算云(EC2)和简单存储服务(S3)为企业提供计算和存储服务。
l 收费的服务项目包括存储服务器、带宽、CPU资源以及月租费。月租费与电话月租费类似,存储服务器、带宽按容量收费,CPU根据时长(小时)运算量收费。
l Amazon把云计算做成一个大生意没有花太长的时间:不到两年时间,Amazon上的注册开发人员达44万人,还有为数众多的企业级用户。
l 有第三方统计机构提供的数据显示,Amazon与云计算相关的业务收入已达1亿美元。云计算是Amazon增长最快的业务之一。
l S3:S3的基础窗口是桶,桶是存放文件的容器。S3给每个桶和桶中每个文件分配一个URI地址,因此你可以通过http或者https协议进行访问。(认证、权限控制)
l Google App Engine这种服务让开发人员可以编译基于Python的应用程序,并可免费使用谷歌的基础设施来进行托管(最高存储空间达500MB)。
l 对于超过此上限的存储空间,谷歌按“每CPU内核每小时”10至12美分及1GB空间15至18美分的标准进行收费。
网络服务
l 网络服务 WebService
• 提供API让开发者能够开发更多基于互联网的应用
• Google Earth
• Baidu Map
• 中移动的 FetionWeb Service
l 网络服务是一组组存在于互联网上的API,也就是一些具有URL的函数,给用户提供二次开发的能力
l 云计算服务的部署形式
隶属PaaS的Google云计算
Ø 属于部署在云端的应用执行环境
Ø 支持Python和Java两种语言
Ø 通过SDK调用Google的各种服务。如GoogleMap、Mail等
Ø 用户可快速、廉价(可免费使用限定的流量和存储)地部署自己开发的应用(如创新的网站、游戏等)
Ø 隶属SaaS的Google云计算
Google云计算平台技术架构
Ø 分布式文件系统Google Distributed File System
Ø 并行数据处理MapReduce
Ø 分布式锁 Chubby
Ø 结构化数据表BigTable
1. 注意,这里的GFS就是google file system.
也就是文件系统
和Windows下的NTFS,和linux下的FAT是一个意思.
2. GFS就是google filesystem.是一个分布式的系统,比如内部把这个系统装到了很多机器上,但是对于外界来说,这个系统就是一个整体.
3. 从外部上看,是一个整体,但是从内部看的话,其实是安装在很多系统上的.
4. MapReduce实际上是一种思想,比如和mvc相似.
MapReduce:例子:比如有一堆单词:
hello world credream
good
nice
hello world
world
统计每个单词出现的次数
这里用MapReduce解决问题:
首先进行Map(分组),分析空格和回车,指的是一个单词.通过这些分解
Hello 1
World 1
Credream 1
Good 1
Nice 1
Hello 1
Worl 1
World 1
然后在通过Reduce(合并)
Hello 2
World 3
Credream 1
Good 1
Nice 1
另外一个例子:
1,4,6,2,99,3,23,54,23 55
找出这里最大的一个数字,当数据十分庞大的时候,就需要用MapReduce
用MapReduce处理的话会这样处理:
他会把1,4,6,2,,交给机器A
把99,3,23交给B处理
把,54,23 55交给机器C处理
然后把三个机器得到结果进行对比,然后得出结果99
这里MapReduce的思想就是,把问题细化,交给很多机器同时处理
BigSql数据库就是一种NoSQL数据库:
以前用的那些比如mysql等等,是关系型数据库
而这里是NoSQL数据库,也就是说NOT only SQL,不仅仅是sql语句
这里的取名和Linux=Linux isnot unix相似.
NoSQL数据库:是专门用来存储海量数据的.
这就是google的云计算的架构.
1. GFS设计原则:
Ø 机器失效不能视为异常现象
Ø 能应付对大型/超大型文件处理
Ø 支持大量用户同时访问
2. GFS组成-
Ø GFS集群:一个的Master和多个ChunkServer(块服务器)组成,并可以多客户端Client访问
Ø GFS设计要点
Ø 每个文件拆成若干个64M文件块Chunk组成
Ø 每个Chunk都由Master根据其创建时间指定ChunkHandle(64)
Ø 文件块被保存在ChunkServer本地磁盘中
Ø缺省情况下3处热备份Chunk块文件
4. Client职责
Ø 包含文件系统的API
Ø 负责和ChunkServer和Master通信
Ø 代表应用程序进行读写操作
Ø Client和Master进行元数据操作
Ø Client和ChunkServer进行文件数据操作
5. Master职责
Ø 负责管理所有文件系统的元数据
Ø 元数据包括:命名空间,访问控制信息,文件到Chunk的映射信息等
Ø ChunkServer职责
Ø 负责存储chunk文件块
ØLinux文件系统
6. 采用中心服务器模式Master
Ø 可以方便地增加ChunkServer
Ø Master掌握系统内所有Chunk Server的情况,方便进行负载均衡
Ø 不存在元数据的一致性问题
Ø 不缓存数据
Ø 必要性:Client流式读取,非重复读写
Ø可行性:Master本身管理多个Server,很复杂
l 摩尔定律正在走向终结…
Ø 单芯片容纳晶体管的增加,对制造工艺提出要求
Ø CPU制造18nm技术,电子泄漏问题
Ø CPU主频已达3GHz时代,难以继续提高
ü 散热问题(发热太大,且难以驱散)
ü 功耗太高
l 摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔(Gordon Moore)提出来的。其内容为:当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18个月翻两倍以上。这一定律揭示了信息技术进步的速度。
单词计数 体现M/R算法