百道网
 您现在的位置:图书 > 云计算核心技术剖析
云计算核心技术剖析


云计算核心技术剖析

作  者:吴朱华 编著

出 版 社:人民邮电出版社

出版时间:2011年05月

定  价:49.00

I S B N :9787115252197

所属分类: 专业科技  >  计算机/网络  >  计算机理论与研究    

标  签:计算机理论  计算机/网络  

[查看微博评论]

分享到:

TOP内容简介

  云计算是新一代IT计算模式,它运用先进的分布式计算及存储架构为用户提供方便的体验并降低使用成本。本书首先介绍了云计算理论方面的知识,接着剖析了多个顶尖云计算产品(比如GoogleApp Engine和SalesforceForce.com)的实现,介绍了非常重要的系统虚拟化技术和安全方面的机制,然后以云的核心模块之一——分布式数据库为实践方向,并以YunTable这个云时代的BigTable为例,来给大家演示如何手动编写和设计一个分布式数据库,最后对云计算的未来发展做了展望。

TOP作者简介

  吴朱华 曾在IBM中国研究院参与过多个云计算产品的开发工作,现在成立了人云科技信息有限公司http:\/\/peopleyun.com/a>),官方微博http:\/\/t.sina.com.cn\/peopleyun/a>,专注于YunTable和YunEngine研发。

TOP目录

第一部分  理论篇
 第1章  云计算的概念
  1.1  什么是云计算
   1.1.1  云计算的优点
   1.1.2  云计算的特点
  1.2  云计算的由来
   1.2.1  思想演化
   1.2.2  技术支撑
  1.3  云计算的诞生
   1.3.1  SaaS 的诞生
   1.3.2  “IT 不再重要”的发表
   1.3.3  Google 的三大核心技术
   1.3.4  AWS 的推出
   1.3.5  IBM 和Google 的合作
  1.4  云计算的成长
  1.5  云计算的影响
   1.5.1  服务器供应商
   1.5.2  软件开发商
   1.5.3  云终端供应商
   1.5.4  云供应商
   1.5.5  整个IT 产业
  1.6  云计算的使用场景
   1.6.1  IDC 云
   1.6.2  企业云
   1.6.3  云存储系统
   1.6.4  虚拟桌面云
   1.6.5  开发测试云
   1.6.6  大规模数据处理云
   1.6.7  协作云
   1.6.8  游戏云
   1.6.9  HPC 云
   1.6.10  云杀毒
 第2章  云计算的架构
  2.1  云的架构
   2.1.1  SaaS
   2.1.2  PaaS
   2.1.3  IaaS
   2.1.4  云管理层
   2.1.5  架构示例
  2.2  云的4 种模式
   2.21  公有云
   2.2.2  私有云
   2.2.3  混合云
   2.2.4  行业云
第二部分  产品与技术篇
 第3章  Google App Engine
  3.1  Google 的云计算产品
   3.1.1  SaaS 层
   3.1.2  PaaS 层
   3.1.3  IaaS 层
   3.1.4  云客户端
  3.2  Google 的核心技术
   3.2.1  分布式基础设施
   3.2.2  分布式大规模数据处理
   3.2.3  分布式数据库技术
   3.2.4  数据中心优化技术
  3.3  Google 的设计思想和整体架构
   3.3.1  设计思想
   3.3.2  整体架构
  3.4  Google App Engine 简介
   3.4.1  历史
   3.4.2  功能
   3.4.3  使用流程
   3.4.4  主要组成部分
   3.4.5  编程模型
   3.4.6  限制和资费
  3.5  Google App Engine 的使用
   3.5.1  例子
   3.5.2  搭建环境
   3.5.3  初始化项目
   3.5.4  编写数据库代码
   3.5.5  添加Web 处理方法
   3.5.6  测试和部署
  3.6  Google App Engine 的架构
   3.6.1  设计理念
   3.6.2  架构
   3.6.3  流程
   3.6.4  Python 版和Java 版的区别
  3.7  本地测试服务器的设计
   3.7.1  架构
   3.7.2  工作流程
  3.8  Datastore 的设计
   3.8.1  使用方面
   3.8.2  实现方面
  3.9  总结
   3.9.1  注意点
   3.9.2  最佳实践
   3.9.3  适用场景
   3.9.4  对未来的期望
 第4章  Salesforce Forcecom
  4.1  Salesforce 简介
   4.1.1  公司历史
   4.1.2  Salesforce 的整体架构
   4.1.3  Forcecom
  4.2  多租户的介绍
   4.2.1  概念
   4.2.2  多租户技术的优缺点
   4.2.3  常见的多租户模型
  4.3  Forcecom 的多租户架构(上)
   4.3.1  总体架构
   4.3.2  元数据驱动
   4.3.3  应用服务器
   4.3.4  共享数据库
  4.4  Forcecom 的多租户架构(下)
   4.4.1  应用服务器的模块
   4.4.2  数据库表的设计
   4.4.3  Apex
  4.5  总结
   4.5.1  设计理念
   4.5.2  经验教训
 第5章  系统虚拟化
  5.1  系统虚拟化简介
   5.1.1  虚拟化的概念
   5.1.2  系统虚拟化的概念
   5.1.3  系统虚拟化技术的分类
   5.1.4  系统虚拟化的用处
  5.2  x86 虚拟化技术
   5.2.1  虚拟机的3 大特征
   5.2.2  为什么x86 架构很难被虚拟化
   5.2.3  CPU 虚拟化
   5.2.4  内存虚拟化
   5.2.5  I\/O 虚拟化
   5.2.6  总结与预测
  5.3  VMware vSphere 的简介
   5.3.1  VMware 的思路
   5.3.2  VMware vSphere
  5.4  VMware ESX 的架构
   5.4.1  Service Console
   5.4.2  VMKernel
  5.5  虚拟网络
   5.5.1  简介
   5.5.2  虚拟网卡
   5.5.3  虚拟交换机
  5.6  动态迁移背后的奥秘
   5.6.1  动态迁移的实现机制
   5.6.2  动态迁移今后的挑战
  5.7  虚拟器件
   5.7.1  虚拟器件的定义
   5.7.2  虚拟器件的主要组成部分
   5.7.3  虚拟器件的生命周期
   5.7.4  虚拟器件的好处
   5.7.5  虚拟器件的不足之处
   5.7.6  业界支持
   5.7.7  虚拟器件与云计算
  5.8  OVF 协议
   5.8.1  OVF 信封
   5.8.2  OVF 环境文件
   5.8.3  使用流程
  5.9  VMware 的云计算计划
   5.9.1  VMware vCloud Express
   5.9.2  VMware vCloud Director
   5.9.3  VMforce
  5.10  Xen 的架构
   5.10.1  Xen 简介
   5.10.2  半虚拟化技术介绍
   5.10.3  Xen 的架构
  5.11  Xen 的实现机制
   5.11.1  超级调用
   5.11.2  vCPU 调度
   5.11.3  中断虚拟化
   5.11.4  内存管理
   5.11.5  I\/O 系统
   5.11.6  信息传递
   5.11.7  时间管理
  5.12  Intel VT 技术
   5.12.1  VT-x
   5.12.2  EPT
   5.12.3  VT-d
   5.12.4  VT-c
  5.13  最新的进展
   5.13.1  VMware vSphere
   5.13.2  Xen
   5.13.3  Intel VT 的PLE 技术
 第6章  Amazon EC
  6.1  AWS 的概况
   6.1.1  简介
   6.1.2  产品类别
   6.1.3  产品特点
   6.1.4  成功案例
  6.2  Amazon EC2 简介
  6.3  Amazon EC2 的主要模块
   6.3.1  AMI
   6.3.2  实例
   6.3.3  存储
   6.3.4  安全方面
   6.3.5  可用区
   6.3.6  网络方面
   6.3.7  Web 管理界面
   6.3.8  API
  6.4  Amazon EC2 的使用
   6.4.1  准备账号
   6.4.2  创建实例
   6.4.3  启动服务
  6.5  Amazon EC2 的优缺点
   6.5.1  优点
   6.5.2  不足之处
 第7章  Cisco UCS
  7.1  什么是UCS
  7.2  UCS 的架构
   7.2.1  Cisco UCS 6100 系列互联阵列
   7.2.2  Cisco UCS 管理程序
   7.2.3  Cisco UCS 2100 系列扩展模块
   7.2.4  Cisco UCS 5100 系列刀片机箱
   7.2.5  Cisco B 系列刀片服务器
   7.2.6  Cisco UCS 网络适配器
  7.3  UCS 的核心技术之内存扩展
   7.3.1  Xeon 5500 内存架构
   7.3.2  思科的内存扩展技术
  7.4  UCS 的核心技术之VN-Link
   7.4.1  虚拟网络的难题
   7.4.2  Cisco Nexus 1000V 的方案
   7.4.3  NIV 的方案
  7.5  UCS 的核心技术之统一网络
   7.5.1  数据中心的现状
   7.5.2  统一网络简介
   7.5.3  统一网络的基石
   7.5.4  不足之处
  7.6  为虚拟化而生
   7.6.1  虚拟化的目标
   7.6.2  服务器整合
   7.6.3  简化系统管理
   7.6.4  加速应有部署
 第8章  云计算的安全
  8.1  云计算安全的概念
   8.1.1  新的挑战
   8.1.2  现有安全系统的不足
   8.1.3  云计算的优势
  8.2  云计算安全的架构
   8.2.1  云客户端
   8.2.2  云端
   8.2.3  第三方机构
  8.3  Salesforce Forcecom 的安全机制
   8.3.1  整体监管和合规性
   8.3.2  用户管理
   8.3.3  数据管理
   8.3.4  系统和网络
   8.3.5  物理设施
  8.4  AWS 的安全机制
   8.4.1  整体监管和合规性
   8.4.2  用户管理
   8.4.3  数据管理
   8.4.4  应用保护
   8.4.5  系统与网络
   8.4.6  物理设施
  8.5  为什么云计算更安全
   8.5.1  安全管理方面
   8.5.2  高可用性方面
   8.5.3  数据安全方面
   8.5.4  人才方面
   8.5.5  广域网方面
   8.5.6  总结
第三部分  实践篇
 第9章  深入分析BigTable
  9.1  BigTable 简介
  9.2  BigTable 的架构
  9.3  BigTable 的数据模型和调用接口
   9.3.1  数据模型
   9.3.2  调用接口
  9.4  BigTable 的存储模型
   9.4.1  Tablet 的运行机制
   9.4.2  SSTable 的介绍
   9.4.3  Compaction 机制
  9.5  BigTable 的分布式模型
   9.5.1  综述
   9.5.2  Chubby
   9.5.3  如何定位Tablet
   9.5.4  如何分配Tablet
  9.6  BigTable 的文件系统
   9.6.1  GFS 简介
   9.6.2  GFS 的架构
   9.6.3  GFS 与BigTable 的协作
  9.7  BigTable 的优化技术
   9.7.1  局部性群组
   9.7.2  压缩
   9.7.3  通过缓存提高读操作的性能
   9.7.4  Bloom 过滤器
   9.7.5  提交日志的实现
   9.7.6  利用不变性
  9.8  BigTable 的功能集
   9.8.1  论文中提到的特性
   9.8.2  新特性
 第10章  YunTable 概览
  10.1  为什么要开发YunTable
  10.2  YunTable 的目标
   10.2.1  02 版的主要目标
   10.2.2  一些限制
  10.3  YunTable 的数据模型
  10.4  YunTable 的命令行
   10.4.1  Add 命令
   10.4.2  Put 命令
   10.4.3  Get 命令
  10.5  YunTable 的架构
   10.5.1  Master 节点
   10.5.2  Region 节点
   10.5.3  客户端
  10.6  工作流程
   10.6.1  流程1:启动Master 节点
   10.6.2  流程2:启动Region 节点
   10.6.3  流程3:启动客户端
   10.6.4  流程4:添加Master 节点
   10.6.5  流程5:添加Region 节点
   10.6.6  流程6:创建表格
   10.6.7  流程7:创建列组
   10.6.8  流程8:添加数据
   10.6.9  流程9:根据Row Key 查询
  10.7   YunTable 的使用
   10.7.1  准备环境
   10.7.2  测试用例
   10.8  YunTable 的规划
 第11章 YunTable 的代码剖析
  11.1  基础知识
   11.1  编程规范
   11.1.2  代码结构
   11.1.3  开发环境
   11.1.4  重要设定
  11.2  基础部分
   11.2.1  Utils
   11.2.2  List
   11.2.3  Item
   11.2.4  Conf
   11.2.5  RPC
  11.3  Master 部分
   11.3.1  数据结构部分
   11.3.2  对外接口部分
   11.3.3  实现部分
  11.4  Region 部分
   11.4.1  Region
   11.4.2  WAL
   11.4.3  Tablet
   11.4.4  Memstore
   11.4.5  YFile
  11.5  客户端部分
   11.5.1  数据结构部分
   11.5.2  实现部分
第四部分  展望篇
 第12 章  云计算的未来
  12.1  云计算的服务模式
   12.1.1  比较
   12.1.2  未来的竞争
  12.2  云计算的商业模式
   12.2.1  “超市”模式
   12.2.2  “电厂”模式
   12.2.3  “超市”模式和“电厂”模式的区别
   12.2.4  超市还是电厂
  12.3  云计算与中国
   12.3.1  现状
   12.3.2  对未来的期望
  12.4  云计算最新技术
   12.4.1   Facebook 的Open Compute项目
   12.4.2  VMware 的开源PaaS CloudFoundry
   12.4.3  YunEngine
  12.5  聊聊科技产业的未来
   12.5.1  潜在的优势
   12.5.2  主要方向
   12.5.3  驱动力
结尾
附录/p>

TOP书摘

序  一
  IBM作为全球云计算产业的开创者和领导者,不仅在国内推出了类似蓝云和盘古这样领先的云计算解决方案,而且在云计算方面培养了一批创新研发人才,本书作者吴朱华就是其中出色的一位。他曾在IBM中国研究院从事云计算研发,并且以工作勤奋著称,所以我很乐意为他写这本书的推荐。
  和现在大多数云计算图书主要关注理论和基础知识不同,本书注重市场领先的云计算技术,主要从Google AppEngine、Salesforce Force.com、Amazon EC2、CiscoUCS和系统虚拟化等出发点进行讲解,帮助读者理解云计算在各个层面的技术和应用。然后,以作者亲身实践的YunTable为例,详细剖析了一个云数据库的实现。总体来说,本书对于那些希望快速获知云计算核心技术的程序员非常有帮助。
  最后,我希望各位读者读完本书后有所收获,在工作中更上一层楼。
  
  陈滢
  IBM中国研究院首席云计算架构师
  
  
  序  二
  云计算是近年来非常热门的一个词,其含义已经跨越了学术和科技界,融入到了许多社会行业。但到底什么是云计算?是一个运营模式,还是一种技术产品,还是兼而有之?
  许多人对此感到很迷惑,吴朱华的这本书恰好很好地回答了上述问题。此外,这本书兼具学术研讨、工程应用和科技普及的价值。
  读过本书后,我觉得它对相关专业的大学高年级学生和研究生、研发公司相应产品线的技术人员和从事相关行业战略规划的人甚为有用,实为一本不可多得的好书。
  我是通过“弯曲评论”认识吴朱华的,非常佩服他在云计算和当代数据库趋势等各方面的知识积累和创新能力。
  他这种花费大量时间和精力把自己所学回馈给社会的精神值得我们肯定、学习并发扬光大。
  在未来10年,云计算一定会在社会各个层面开花结果,甚至会影响到人们生活的细微之处。
  希望本书能帮助读者开阔视野、增长知识、提升技能。
  
  
  
  陈怀临
  
  
  
  前  言
  “想要One Piece吗?那就去找吧,我的一切都在那里,在那伟大航道的尽头!”。
  ——海贼王,哥尔 ?D ?罗杰
  
  如果你不知道什么是“One Piece”,千万不要伤心,因为这只能说明你很成熟。“OnePiece”来自于一部非常经典的漫画《海贼王》,指“神秘的宝藏”,也就是海贼王哥尔 ?D?罗杰留下来的财富。这本书描述了男主角“草帽”蒙其?D?路飞为了得到“OnePiece”并当上“海贼王”,而与其伙伴共同踏上“伟大航道”(GrandLine)一起去冒险的经历。读到这里,读者肯定在心中充满了疑问:到底云计算和“OnePiece”有什么关系?且听我慢慢道来。
  我其实去年年中才开始接触已经被视为新“四大名著”之一的《海贼王》。刚开始的时候,我主要是为了欣赏传说中“女帝”的风采。但是随着剧情的发展,我慢慢地喜欢上了《海贼王》,也开始像很多朋友那样每天都期盼周日能早点到来,因为每周日会有最新一集的动画版《海贼王》。在《海贼王》中我们能看到很多令人感动的东西,比如小冯与路飞的真挚友情、艾斯那永不后退的性格和草帽海贼团生死与共的团队精神等。其中最让我感动的,莫过于有无数的海贼为了得到传说中的“OnePiece”,在严酷和危险的伟大航道上面不知疲倦地冒险和拼杀。每当看到此情此景,我都会联想到自己专注的云计算领域。为什么国外国内那么多IT工作者,都像我一样对云计算充满着热切的期望,并为之而不懈奋斗?什么是云计算的“OnePiece”?什么东西让我们如此着迷于云计算,如此坚信云计算必将改变这个世界,并推动整个世界的发展?
  要回答这些问题,不得不提到一本书,就是这本书使我对云计算的看法从过去的不屑转变为现在的坚信,这本书就是尼古拉斯?卡尔所著的《大转变:重新认识世界——从爱迪生到Google》。这本书描述了整个IT产业正在经历一个类似电力从发电机发电到电厂供电的巨大转变。这本书不仅改变了我的人生,更是开创了IT领域的“大海贼时代(云计算时代)”。我个人认为这本书在历史上的地位完全可以同托马斯?弗里德曼的名著《世界是平的》相媲美,堪称“云计算的圣经”。这本书最关键和核心的部分,就是开头关于电力发展史的介绍。由于电力的出现,使大型工业水车这些低效率的动力设备成为了历史,并使发电机成为各个工厂核心设备,同时世界历史上最伟大的发明家爱迪生,在这段时间也因为其通用电气公司而赚足了钱。就在那个发电机为王的时代,爱迪生的徒弟兼私人秘书塞缪尔?英萨尔却发现了集中供电在成本和使用这两方面巨大的优越性,这使其产生了成立电厂的想法。当然这些想法在爱迪生看来肯定是很愚蠢的,因为在他眼中发电机已经足够强大了。但是随着能长距离传输的交流电技术不断成熟,英萨尔的电厂想法在技术上有了非常坚实的基础,只是在安全性方面交流电和传统的直流电技术相比略有欠缺。之后英萨尔就带领自己的团队开始在美国的芝加哥实践他关于电厂的想法。在实践过程中,不仅技术上遇到了很多挑战,而且商业上也面临着用户的不解,同时更受到早已被人们奉若神明的爱迪生的嘲讽。但是最后由于电厂的规模效益不断增大,电力的价格也随之降低,而且用户使用起来更方便,无需维护和购买任何发电设备。最终,导致电厂几乎成为了唯一的供电方式,而发电机则成为只有少数企业才使用的“奢侈品”。
  仔细想来,电力技术的发展和IT技术的发展是何等相似。大型工业水车不由使人们联想起当年IBM的穿孔卡片设备。现在的企业数据中心则是过去每个工厂必备的发电机的翻版,能让电力长距离传输的交流电技术就好比现在让信息四通八达的互联网,而将来的云计算中心则和现在的电厂像是一个模子刻出来的。虽然历史不会简单地重复,但是通过这些对比,应该能让我们对云计算的未来充满信心,并一起去追求云计算的“OnePiece”,那就是使用信息和应用就像用电一样便捷,而且成本低廉。比如,能随时随地通过小型和廉价的终端(比如手机和平板电脑)来接入网络,并能通过网络使用各种功能强大的应用和访问海量的信息,而且按需使用,也没有昂贵的前期投入。还有,企业也可以通过将其整个IT基础设施外包来降低其运营成本,专注其主营业务。
  本书将引导大家进入云计算这个绚烂的新世界。全书分为四部分:第一部分为理论篇,主要介绍云计算理论方面的知识;第二部分为产品与技术篇,将深入剖析多个顶尖云计算产品的实现,来帮助大家理解云计算是如何设计和实现的,并介绍云计算中非常重要的系统虚拟化技术和安全机制;第三部分为实践篇,将选择云的核心模块之一——分布式数据库作为实践的方向,并以YunTable这个云时代的BigTable为例,来给大家演示如何手工编写和设计一个分布式数据库;最后一部分为展望篇,让我们来猜想和预测一下云计算和整个IT产业未来的发展。
  
  第一章 云计算的概念
  孟子云:“不以规矩,无以成方圆。”也就是说,“方圆”再怎么精彩和美丽,都离不开“规矩”的积淀和约束,这个道理对云计算也同样适用。如果读者对云计算本身有一定的认知和理解,那么就非常有助于今后对其相关技术和产品的学习,而本章就专注于云计算本身。在本章开始,我们将介绍云计算的定义和特点,接着将从思想和技术这两个方面来分析云计算的由来,然后讲述一下云计算的诞生与成长,最后将重点介绍云计算对整个IT产业的影响和主要的应用场景。
  1.1 什么是云计算
  云计算到底是什么呢?
  在这个问题上,可谓众说纷纭。比如,维基百科上的定义是“云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备”;著名IT咨询机构Gartner对云计算的定义为“云计算是利用互联网技术将庞大且可伸缩的IT能力集合起来作为服务提供给多个客户的技术”;而IBM则认为“云计算是一种新型的计算模式,把IT资源、数据和应用作为服务通过互联网提供给用户”。
  虽然这几个定义都有一定的道理,但是我认为云计算应该如图1-1所示,即云计算是新一代IT模式,它能在后端庞大的云计算中心的支撑下为用户提供更方便的体验并降低使用成本。
  具体而言,由于后端有规模庞大、非常自动化和高可靠性的云计算中心存在,人们只要接入互联网,就能非常方便地访问各种基于云的应用和信息,并免去了安装和维护等烦琐的操作。同时企业和个人也能以低廉的价格来使用这些由云计算中心提供的服务或者在云中直接搭建其所需的信息服务。在收费模式上,云计算和水电等公用事业非常类似,用户只需为其所使用的部分付费。对云计算的使用者(主要是个人用户和企业)来讲,云计算将会在用户体验和成本这两方面给他们带来很多非常实在的好处。
  1. 用户体验
  对个人用户而言,在云计算时代会出现越来越多的基于互联网的服务,这些服务丰富多样、功能强大、随时随地接入,无需购买、下载和安装任何客户端,只需使用浏览器就能轻松访问,也无须为软件的升级和病毒的感染操心。还有,人们可以将文档等数据放在云中来共享和协作,比如共同编辑同一篇文章,而且通过严格的权限管理机制来确保协作是在安全的环境下进行的。对企业用户而言,可以利用云技术来优化其现有的IT服务,使现有的IT服务更可靠、更自动化,更可以将企业的IT服务整体迁移到云上,使企业卸下维护IT服务的重担,从而更专注于其主营业务。
  2. 成本
  对个人用户而言,由于他们所使用的服务运行在云端,本地计算需求比较少,所以无须像过去那样不断地升级电脑的配置或者购买昂贵的新电脑,只需一个廉价的可以上网的智能终端即可,比如手机和上网本等。同时由于互联网服务是按需使用的,所以无须在初期购置价格不菲的软件客户端。对企业用户而言,除了可以利用先进的云技术来降低企业IT初期的投资成本和后期的维护成本之外,还可以通过将IT服务外包或者整体迁移到外部的云中来削减IT部门的规模,使公司成本的结构更完善。
  上面提到的一些云计算的优点都源自云计算自身的特点。
  云计算的特点
  云计算除了常见的超大规模、高可扩展性和按需服务的特点之外,还有自动化和节能环保等特点,可以从10个方面来看。
  ?超大规模。大多数云计算中心都具有相当的规模,比如Google云计算中心已经拥有几百万台服务器,而Amazon、IBM、微软、Yahoo等企业所掌控的云计算规模也毫不逊色,并且云计算中心能通过整合和管理这些数目庞大的计算机集群来赋予用户前所未有的计算和存储能力。
  ?抽象化。云计算支持用户在任意位置使用各种终端获取应用服务,所请求的资源都来自“云”,而不是固定的有形实体。应用在“云”中某处运行,但实际上用户无须了解也不用担心应用运行的具体位置,这样能有效地简化应用的使用。
  ?高可靠性。云计算中心在软硬件层面采用了诸如数据多副本容错、心跳检测和计算节点同构可互换等措施来保障服务的高可靠性,还在设施层面上的能源、制冷和网络连接等方面采用了冗余设计来进一步确保服务的可靠性。
  ?通用性。云计算中心很少为特定的应用存在,但它有效支持业界大多数的主流应用,并且一个“云”可以支撑多个不同类型的应用同时运行,并保证这些服务的运行质量。
  ?高可扩展性。用户所使用的“云”资源可以根据其应用的需要进行调整和动态伸缩,并且再加上前面所提到的云计算中心本身的超大规模,“云”能够有效地满足应用和用户大规模增长的需要。
  ?按需服务。“云”是一个庞大的资源池,用户可以按需购买,就像自来水、电和煤气等公用事业那样根据用户的使用量计费,无需任何软硬件和设施等方面的前期投入。
  ?廉价。云计算中心本身规模巨大会带来经济性和提升资源利用率,并且“云”大都采用廉价和通用的x86节点来构建,因此用户可以充分享受云计算所带来的低成本优势,经常只要花费几百美元就能完成以前需要数万美元才能完成的任务。
  ?自动化。在云中,不论是应用、服务和资源的部署,还是软硬件的管理,主要通过自动化的方式来执行和管理,也极大地降低了整个云计算中心的人力成本。
  ?节能环保。云计算技术能将许许多多分散在低利用率服务器上的工作负载整合到云中,来提升资源的使用效率,而且云由专业管理团队运维,所以其PUE(PowerUsageEffectiveness,电源使用效率)值比普通企业的数据中心出色很多,比如Google数据中心的PUE值在1.2左右,即每一块钱的电力花在计算资源上,只需再花两角钱的电力在制冷等设备上,而常见的PUE在2和3之间。并且还能将云建设在水电厂等洁净资源旁边,这样既能进一步节省能源方面的开支,又能保护环境。
  ?完善的运维机制。在“云”的另一端,有全世界最专业的团队来帮用户管理信息,有全世界最先进的数据中心来帮用户保存数据。同时,严格的权限管理策略可以保证这些数据的安全。这样,用户无需花费重金就可以享受到最专业的服务。
  这些特点使得云计算能为用户提供更方便的体验,同时还能降低使用成本,正因为如此,云计算才能脱颖而出并且被业界推崇。那么,云计算是怎么诞生的呢?
  1.2 云计算的由来
  虽然很多伟大的发明和技术在我们看来都是些突发奇想的产物,但真正探究起来,这些东西大多是通过一代人甚至于几代人的积累演变而成的。其中最明显的例子莫过于计算机本身。早在2000多年前,我们中国人就发明了算盘这一强大的计算工具。1642年,法国数学家帕斯卡在英国数学家奥特雷得所制作的“计算尺”的基础上,制成了能进行八位计算的“加法器”。1673年,德国数学家莱布尼茨在巴黎制造了一个能进行加、减、乘、除及开方运算的计算机,名为“乘法器”。1820年,英国人查尔斯?巴贝奇构想和设计了世界上第一台完全可编程的计算机,可惜由于当时技术条件和经费的限制,这台计算机未能在他有生之年问世。到了20世纪,艾伦?图灵的图灵机思想和新兴的电子技术都对最后ENIAC的问世起到了非常关键的作用。还有,我们耳熟能详但晦涩难懂的相对论也同样如此。如果没有麦克斯韦尔、迈克尔逊和洛仑兹等大师的积淀,恐怕爱因斯坦很难创立相对论。
  当我们谈到云计算时,难道它就是突发奇想,就是特例吗?云计算这个名词虽然只是Google CEO 埃里克?施密特博士当年在SUN担任CTO时偶然想到的,但是其概念本身不仅和前言中提到的过去电力的发展密不可分,而且更是整个IT产业自然发展和演化的必然结果。这些发展和演化不仅表现在思想方面,更涉及技术方面的进步。
  1.2.1 思想演化
  云计算在思想方面主要经历了4个阶段才发展到现在这样比较成熟的水平,这4个阶段依次是电厂模式、效用计算、网格计算和云计算,如图1-2所示。
  1. 电厂模式
  由于IT行业本身是一个比较新的行业,所以从其他行业取经是其发展不可或缺的一步,从建筑行业引入“模式”这个概念。虽然在IT界,电厂这个概念不像“模式”那样炙手可热,但其影响是深远的,而且有许许多多的IT人在不断地实践着这个理念。电厂模式的意思是利用电厂的规模效应来降低电力的价格,并让用户使用起来更方便,且无须维护和购买任何发电设备。
  2. 效用计算
  在1960年左右,当时计算设备的价格是非常高昂的,远非普通企业、学校和机构所能承受,所以很多人产生了共享计算资源的想法。特别是在1961年,人工智能之父麦肯锡在一次会议上提出了“效用计算”(UtilityComputing)这个概念,其核心借鉴了上面所提到的电厂模式,具体目标是整合分散在各地的服务器、存储系统以及应用程序来共享给多个用户,让用户能够像把灯泡插入座一样来使用计算机资源,并且根据其所使用的量来付费。接着,在1966年,D.F.Parkhill在其经典著作《计算机效用事业的挑战》中也提出了类似的观点,但由于当时整个IT产业还处于发展初期,很多强大的技术还未诞生,比如互联网等,所以虽然这个想法一直都为人称道,但是总体而言“叫好不叫座”。
  3. 网格计算
  主要由于翻译的问题,国内的技术人员无法领会网格计算(GridComputing)的精髓和真谛。网格计算中的网格,也就是“Grid”,其英文原意并不是我们所认为的网格,而是电力的网格,所以其核心与上面的效用计算非常接近,但是它的侧重点略有不同。网格计算研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多低性能的计算机来处理,最后把这些计算结果综合起来攻克大问题。可惜的是,由于网格计算在商业模式、技术和安全性方面的不足,使得其并没有在工程界和商业界取得预期的成功。但在学术界,它还是有一定的应用,比如用于寻找外星人的“SETI”计划等。
  4. 云计算
  云计算的核心与前面的效用计算和与网格计算非常类似,也是希望IT技术能像使用电力那样方便,并且成本低廉。但与效用计算和网格计算不同的是,现在在需求方面已经有了一定的规模,同时在技术方面也已经基本成熟了。因此,与效用计算和网格计算相比,云计算的发展。
  1.2.2 技术支持
  如果没有强大的技术做支撑的话,云计算也会像先前的效用计算和网格计算那样只能局限于学术界。如图1-3所示,云计算主要有5大类技术的支持,就是由于这些技术所提供的强大动力,云计算不再是空中楼阁。
  
  图1-3 技术方面的支持
  1. 摩尔定律
  随着摩尔定律依旧推动着整个硬件产业的发展,芯片、内存和硬盘等硬件设备在性能和容量方面也得到了极大的提升。在这方面,最明显的例子莫过于芯片。虽然在单线程性能方面,它并没有像奔腾时代那样突飞猛进,但是已经非常强悍了。再加上多核配置,整体性能达到了前所未有的水平。比如,最新的x86芯片在性能上已经是30年前8086的一千倍,而现在用于手机等低能耗移动设备的ARM芯片在性能上比过去的大型主机上的芯片都强大得多,同时这些硬件设备的价格也比过去更便宜。还有,诸如SSD和GPU等新兴技术的出现都极大地推动着IT产业的发展。可以说,摩尔定律为云计算提供了充足的“动力”。
  2. 网络设施
  由于ADSL宽带和光纤入户的不断普及,现在的网络带宽已经从过去平均50Kb\/s增长至平均1Mb\/s以上,基本满足了大多数服务的需求,其中包括视频等多媒体服务。再加上无线网络和移动通信的不断发展,人们在任何时间、任何地点都能利用互联网。可以说,现在互联网不再像过去那样是一种奢侈品,而是社会的基础设施,并使得终端和云紧紧地连在了一起。
  3. Web技术
  Web技术经过20世纪90年代的“混沌期”和21世纪初的“阵痛期”,已经进入“快速发展期”。随着类似AJAX、jQuery、Flash、Silverlight和HTML5等Web技术的不断发展,Chrome、Firefox和Safari等性能出色、功能强大的浏览器的不断涌现,Web已经不再是简单的页面。在用户体验方面,Web已经越来越接近桌面应用,这样用户只要通过互联网和云连上,就能通过浏览器使用各种功能强大的Web应用。
  4. 系统虚拟化
  虽然x86芯片的性能已经非常强大了,但每台x86服务器的利用率还非常低,可以说,在能源和购置成本等方面的浪费极大。但随着VMware的vSphere和开源的Xen等基于x86架构的系统虚拟化技术的发展,一台服务器能整合过去多台服务器的负载,从而有效地提升硬件的利用率,并降低能源的浪费和硬件的购置成本。更重要的是,这些技术有效地提升了数据中心自动化管理的程度,从而极大地减少在管理方面的投入,使云计算中心的管理更智能。
  5. 移动设备
  随着苹果的iOS和Google的Android这类智能手机系统的不断发展和普及,诸如手机这样的移动设备已经不仅仅是一个移动电话而已,更是一个完善的信息终端。通过它们,可以轻松访问互联网上的信息和应用。由于其整体功能也越来越接近台式机,通过这些移动设备能够随时随地访问云中的服务。
  就像上文所提到的那样,云计算并不是突发奇想,而是在思想和技术这两方面不断成熟和发展的产物。
  1.3 云计算的诞生
  虽然云计算诞生在一块“肥沃”的土壤之上,但是如果没有非常好的契机,云计算的发展只会像小的溪流那样慢慢流淌,而不会像今天这样如长江之水般滚滚而来,并推动整个IT产业的发展。我认为有5个非常重要的契机一步步地促使了云计算的诞生。
  1.3.1 SaaS的诞生
  在1999年,桌面应用还是唯一主流的时候,当时Oracle的高管MarcBenioff看准了Web应用将取代桌面应用这一大趋势,创建了Salesforce这家以销售在线CRM(CustomerRelationship Management,客户关系管理)系统为主的互联网公司,并定义了SaaS(Software as aService,软件即服务)这个概念。SaaS的意思是软件将会以在线服务的形式提供给用户,而且避免了安装和运维等烦琐的步骤。Salesforce的在线CRM一经推出,不仅受到技术界的好评和用户支持,而且越来越多的软件选择了SaaS这种模式来发布。总地来说,由于SaaS的诞生和不断发展,人们开始相信类似云计算的产品不论在技术上还是在商业上都是可行的。
  1.3.2 “IT不再重要”的发表
  2003年,在《哈佛商业评论》上发表的一篇非常具有轰动性的文章“IT不再重要”中,尼古拉斯?卡尔犀利地提出IT技术已经日用品化了。虽然这样能使大多数的企业从IT中获益,但是IT已经很难给企业带来一定的竞争优势。此文受到了包括当时英特尔董事长克瑞格?贝瑞特在内整个IT界的斥责,并导致尼古拉斯?卡尔甚至自称为IT界的“全民公敌”。但是,今天看来,此文不仅促使了广大的IT从业者不断反思,而且推动了IT产业的变革,因为IT技术的日用品化并不是IT界的末日,而是下一次创新和发展的起点。
  1.3.3 Google的三大核心技术
  Google在2003年的SOSP大会上发表了有关GFS(Google FileSystem,Google文件系统)分布式存储系统的论文,在2004年的OSDI大会上发表了有关MapReduce分布式处理技术的论文,在2006年的OSDI大会上发表了关于BigTable分布式数据库的论文。这3篇重量级论文的发表,不仅使大家了解Google搜索引擎背后强大的技术支撑,而且克隆这3个技术的开源产品如雨后春笋般涌现,比如使用MapReduce的产品有Hadoop,使用GFS的产品有HDFS,而使用BigTable的产品则有Hbase、Hypertable和Cassandra等。这3篇论文和相关的开源技术极大地普及了云计算中非常核心的分布式技术。
  1.3.4 AWS的推出
  Amazon的B2C业务有点类似中国移动的短信业务,平时的流量就很大,但是到每年特定的时刻(比如圣诞节),流量更是迅速攀升。在这种情况下,Amazon需要购置远超其平常使用量的硬件资源以应对更大的流量。显然这会浪费很多资源,所以Amazon想出租借硬件资源给公众,以减少浪费的想法,这也是其推出AWS(AmazonWeb Service)的最主要的原因。在2006年初,Amazon推出了AWS的第一款产品S3(Simple StorageService,简单存储服务)云存储服务,在2006年8月推出了另一款AWS产品EC2(Elastic ComputeCloud,弹性计算)云基础设施服务,之后还推出了包括SimpleDB、Simple QueueService和CloudFront等近20种云服务。AWS的推出标志着云计算相关的产品已经出现,并基本可用,虽然那时还没有云计算这个说法。
  1.3.5 IBM和Google的合作
  一位名叫克里斯托夫?比希利亚的Google高级工程师为了推广Google的一些新技术,利用他20%的时间在其母校华盛顿大学开了一门名叫“Google101”的课程,通过这门课程指导学生学习一些常用于Google内部的分布式技术,比如MapReduce等。接着,这个项目也得到IBM的支援。在合作过程中,IBM和Google都意识到这些分布式技术在商业和科研方面的巨大潜力,并最终在2007年10月8日共同宣布了一项“大规模分布式计算”推进计划。两家公司将投资建立一个大型的数据中心,学生可以通过互联网远程访问该数据中心,并进行远程研究。这个项目也称为“云计算”的推进计划,这就是云计算的诞生。  
  ……
    /p>

TOP 其它信息

装  帧:平装

页  数:288

开  本:16开

纸  张:胶版纸

加载页面用时:196.7758