《云计算核心技术剖析》,本书首先介绍了云计算理论方面的知识,接着剖析了多个顶尖云计算产品(比如Google App Engine和Salesforce Force.com)的实现,介绍了非常重要的系统虚拟化技术和安全方面的机制,然后以云的核心模块之一——分布式数据库为实践方向,并以 YunTable这个云时代的BigTable为例,来给大家演示如何手动编写和设计一个分布式数据库,最后对云计算的未来发展做了展望。
第一部分 理论篇
第1 章 云计算的概念2
1.1 什么是云计算2
1.1.1 云计算的优点 2
1.1.2 云计算的特点 3
1.2 云计算的由来4
1.2.1 思想演化4
1.2.2 技术支撑5
1.3 云计算的诞生7
1.3.1 SaaS 的诞生7
1.3.2 “IT 不再重要”的发表 7
1.3.3 Google 的三大核心技术 7
1.3.4 AWS 的推出 8
1.3.5 IBM 和Google 的合作 8
1.4 云计算的成长8
1.5 云计算的影响10
1.5.1 服务器供应商 10
1.5.2 软件开发商 11
1.5.3 云终端供应商 11
1.5.4 云供应商11
1.5.5 整个IT 产业 12
1.6 云计算的使用场景 12
1.6.1 IDC 云12
1.6.2 企业云12
1.6.3 云存储系统 12
1.6.4 虚拟桌面云 13
1.6.5 开发测试云 13
1.6.6 大规模数据处理云13
1.6.7 协作云13
1.6.8 游戏云14
1.6.9 HPC 云14
1.6.10 云杀毒14
第2 章 云计算的架构16
2.1 云的架构16
2.1.1 SaaS17
2.1.2 PaaS19
2.1.3 IaaS21
2.1.4 云管理层22
2.1.5 架构示例25
2.2 云的4 种模式27
2.21 公有云27
2.2.2 私有云29
2.2.3 混合云30
2.2.4 行业云31
第二部分 产品与技术篇
第3 章 Google App Engine 34
31 Google 的云计算产品 34
3.1.1 SaaS 层34
3.1.2 PaaS 层36
3.1.3 IaaS 层36
3.1.4 云客户端36
3.2 Google 的核心技术 39
3.2.1 分布式基础设施39
3.2.2 分布式大规模数据处理 42
3.2.3 分布式数据库技术43
3.2.4 数据中心优化技术45
3.3 Google 的设计思想和整体架构 46
3.3.1 设计思想46
3.3.2 整体架构48
3.4 Google App Engine 简介50
3.4.1 历史50
3.4.2 功能51
3.4.3 使用流程51
3.4.4 主要组成部分 51
3.4.5 编程模型54
3.4.6 限制和资费 55
3.5 Google App Engine 的使用56
3.5.1 例子56
3.5.2 搭建环境56
3.5.3 初始化项目 56
3.5.4 编写数据库代码58
3.5.5 添加Web 处理方法 59
3.5.6 测试和部署 60
3.6 Google App Engine 的架构62
3.6.1 设计理念62
3.6.2 架构62
3.6.3 流程63
3.6.4 Python 版和Java 版的区别 64
3.7 本地测试服务器的设计64
3.7.1 架构64
3.7.2 工作流程65
3.8 Datastore 的设计66
3.8.1 使用方面66
3.8.2 实现方面67
3.9 总结69
3.9.1 注意点69
3.9.2 最佳实践69
3.9.3 适用场景70
3.9.4 对未来的期望 70
第4 章 Salesforce Forcecom 72
4.1 Salesforce 简介72
4.1.1 公司历史72
4.1.2 Salesforce 的整体架构73
4.1.3 Forcecom73
4.2 多租户的介绍74
4.2.1 概念74
4.2.2 多租户技术的优缺点 75
4.2.3 常见的多租户模型75
4.3 Forcecom 的多租户架构(上)76
4.3.1 总体架构76
4.3.2 元数据驱动 77
4.3.3 应用服务器 77
4.3.4 共享数据库 78
4.4 Forcecom 的多租户架构(下)78
4.4.1 应用服务器的模块78
4.4.2 数据库表的设计79
4.4.3 Apex 80
4.5 总结81
4.5.1 设计理念81
4.5.2 经验教训81
第5 章 系统虚拟化83
5.1 系统虚拟化简介83
5.1.1 虚拟化的概念 83
5.1.2 系统虚拟化的概念83
5.1.3 系统虚拟化技术的分类 84
5.1.4 系统虚拟化的用处87
5.2 x86 虚拟化技术88
5.2.1 虚拟机的3 大特征88
5.2.2 为什么x86 架构很难被虚拟化 88
5.2.3 CPU 虚拟化89
5.2.4 内存虚拟化 89
5.2.5 I/O 虚拟化90
5.2.6 总结与预测 90
5.3 VMware vSphere 的简介 91
5.3.1 VMware 的思路 91
5.3.2 VMware vSphere92
5.4 VMware ESX 的架构95
5.4.1 Service Console 95
5.4.2 VMKernel96
5.5 虚拟网络99
5.5.1 简介99
5.5.2 虚拟网卡100
5.5.3 虚拟交换机 101
5.6 动态迁移背后的奥秘105
5.6.1 动态迁移的实现机制 105
5.6.2 动态迁移今后的挑战 106
5.7 虚拟器件107
5.7.1 虚拟器件的定义108
5.7.2 虚拟器件的主要组成部分108
5.7.3 虚拟器件的生命周期 109
5.7.4 虚拟器件的好处110
5.7.5 虚拟器件的不足之处 111
5.7.6 业界支持112
5.7.7 虚拟器件与云计算 112
5.8 OVF 协议112
5.8.1 OVF 信封113
5.8.2 OVF 环境文件 113
5.8.3 使用流程114
5.9 VMware 的云计算计划115
5.9.1 VMware vCloud Express 115
5.9.2 VMware vCloud Director 116
5.9.3 VMforce 119
5.10 Xen 的架构119
5.10.1 Xen 简介120
5.10.2 半虚拟化技术介绍120
5.10.3 Xen 的架构 121
5.11 Xen 的实现机制122
5.11.1 超级调用 122
5.11.2 vCPU 调度 123
5.11.3 中断虚拟化 123
5.11.4 内存管理 124
5.11.5 I/O 系统 124
5.11.6 信息传递 124
5.11.7 时间管理 125
5.12 Intel VT 技术125
5.12.1 VT-x126
5.12.2 EPT 129
5.12.3 VT-d130
5.12.4 VT-c131
5.13 最新的进展132
5.13.1 VMware vSphere 41 132
5.13.2 Xen 40133
5.13.3 Intel VT 的PLE 技术134
第6 章 Amazon EC2 135
6.1 AWS 的概况135
6.1.1 简介135
6.1.2 产品类别136
6.1.3 产品特点137
6.1.4 成功案例138
6.2 Amazon EC2 简介 138
6.3 Amazon EC2 的主要模块139
6.3.1 AMI139
6.3.2 实例140
6.3.3 存储140
6.3.4 安全方面141
6.3.5 可用区142
6.3.6 网络方面142
6.3.7 Web 管理界面142
6.3.8 API 143
6.4 Amazon EC2 的使用 143
6.4.1 准备账号143
6.4.2 创建实例144
6.4.3 启动服务148
6.5 Amazon EC2 的优缺点148
6.5.1 优点148
6.5.2 不足之处149
第7 章 Cisco UCS 151
7.1 什么是UCS 151
7.2 UCS 的架构151
7.2.1 Cisco UCS 6100 系列互联阵列 152
7.2.2 Cisco UCS 管理程序 152
7.2.3 Cisco UCS 2100 系列扩展模块 153
7.2.4 Cisco UCS 5100 系列刀片机箱 153
7.2.5 Cisco B 系列刀片服务器 153
7.2.6 Cisco UCS 网络适配器154
7.3 UCS 的核心技术之内存扩展 154
7.3.1 Xeon 5500 内存架构 154
7.3.2 思科的内存扩展技术 156
7.4 UCS 的核心技术之VN-Link 157
7.4.1 虚拟网络的难题157
7.4.2 Cisco Nexus 1000V 的方案 157
7.4.3 NIV 的方案 158
7.5 UCS 的核心技术之统一网络 159
7.5.1 数据中心的现状159
7.5.2 统一网络简介160
7.5.3 统一网络的基石160
7.5.4 不足之处162
7.6 为虚拟化而生162
7.6.1 虚拟化的目标163
7.6.2 服务器整合 163
7.6.3 简化系统管理163
7.6.4 加速应有部署164
第8 章 云计算的安全165
8.1 云计算安全的概念 165
8.1.1 新的挑战166
8.1.2 现有安全系统的不足 166
8.1.3 云计算的优势167
8.2 云计算安全的架构 167
8.2.1 云客户端168
8.2.2 云端168
8.2.3 第三方机构 170
8.3 Salesforce Forcecom 的安全机制 170
8.3.1 整体监管和合规性 170
8.3.2 用户管理171
8.3.3 数据管理171
8.3.4 系统和网络 171
8.3.5 物理设施171
8.4 AWS 的安全机制172
8.4.1 整体监管和合规性 172
8.4.2 用户管理172
8.4.3 数据管理172
8.4.4 应用保护173
8.4.5 系统与网络 173
8.4.6 物理设施174
8.5 为什么云计算更安全174
8.5.1 安全管理方面174
8.5.2 高可用性方面174
8.5.3 数据安全方面175
8.5.4 人才方面175
8.5.5 广域网方面 175
8.5.6 总结175
第三部分 实践篇
第9 章 深入分析BigTable 178
9.1 BigTable 简介178
9.2 BigTable 的架构178
9.3 BigTable 的数据模型和调用接口 179
9.3.1 数据模型180
9.3.2 调用接口181
9.4 BigTable 的存储模型 181
9.4.1 Tablet 的运行机制 182
9.4.2 SSTable 的介绍182
9.4.3 Compaction 机制183
9.5 BigTable 的分布式模型 183
9.5.1 综述184
9.5.2 Chubby 184
9.5.3 如何定位Tablet 185
9.5.4 如何分配Tablet 186
9.6 BigTable 的文件系统 187
9.6.1 GFS 简介187
9.6.2 GFS 的架构 188
9.6.3 GFS 与BigTable 的协作 191
9.7 BigTable 的优化技术 191
9.7.1 局部性群组 191
9.7.2 压缩192
9.7.3 通过缓存提高读操作的性能192
9.7.4 Bloom 过滤器192
9.7.5 提交日志的实现193
9.7.6 利用不变性 193
9.8 BigTable 的功能集194
9.8.1 论文中提到的特性 194
9.8.2 新特性195
第10 章 YunTable 概览197
10.1 为什么要开发YunTable 197
10.2 YunTable 的目标 198
10.2.1 02 版的主要目标 198
10.2.2 一些限制 199
10.3 YunTable 的数据模型199
10.4 YunTable 的命令行 199
10.4.1 Add 命令 200
10.4.2 Put 命令 200
10.4.3 Get 命令 200
10.5 YunTable 的架构 200
10.5.1 Master 节点201
10.5.2 Region 节点201
10.5.3 客户端202
10.6 工作流程202
10.6.1 流程1:启动Master 节点202
10.6.2 流程2:启动Region 节点203
10.6.3 流程3:启动客户端203
10.6.4 流程4:添加Master 节点203
10.6.5 流程5:添加Region 节点204
10.6.6 流程6:创建表格204
10.6.7 流程7:创建列组204
10.6.8 流程8:添加数据205
10.6.9 流程9:根据Row Key 查询205
10.7 YunTable 的使用 205
10.7.1 准备环境 205
10.7.2 测试用例 206
10.8 YunTable 的规划 207
第11 章 YunTable 的代码剖析209
11.1 基础知识209
11.1 编程规范 209
11.1.2 代码结构 209
11.1.3 开发环境 210
11.1.4 重要设定 211
11.2 基础部分211
11.2.1 Utils 212
11.2.2 List215
11.2.3 Item216
11.2.4 Conf219
11.2.5 RPC 220
11.3 Master 部分222
11.3.1 数据结构部分222
11.3.2 对外接口部分223
11.3.3 实现部分 223
11.4 Region 部分226
11.4.1 Region 227
11.4.2 WAL233
11.4.3 Tablet236
11.4.4 Memstore 242
11.4.5 YFile244
11.5 客户端部分251
11.5.1 数据结构部分251
11.5.2 实现部分 252
第四部分 展望篇
第12 章 云计算的未来 264
12.1 云计算的服务模式 264
12.1.1 比较264
12.1.2 未来的竞争265
12.2 云计算的商业模式 266
12.2.1 “超市”模式266
12.2.2 “电厂”模式267
12.2.3 “超市”模式和“电厂”模式的区别269
12.2.4 超市还是电厂269
12.3 云计算与中国270
12.3.1 现状270
12.3.2 对未来的期望271
12.4 云计算最新技术 272
12.4.1 Facebook 的Open Compute项目272
12.4.2 VMware 的开源PaaS CloudFoundry 273
12.4.3 YunEngine 273
12.5 聊聊科技产业的未来274
12.5.1 潜在的优势275
12.5.2 主要方向 275
12.5.3 驱动力276
结尾277
附录278
《可塑的我》内容简介:心理学发现,当我们遇到困难时,我们是有能力表现出截然不同的性格特征的,这便是我们每个人的可塑性。一个
计算机系统结构(第四版) 本书特色 《计算机系统结构》内容丰富,取材适当,每章均有大量例题和习题,书末附有主要习题的参考答案。《计算机系统结构》可作为计算机专业...
《神经网络模型及其MATLAB仿真程序设计》重点介绍了MATLAB6.5神经网络工具箱中各种神经网络模型及基本理论,以及各种神经网络模型
《水彩风景写生》内容简介:本书是作者黄华明近年来带学生外出写生实习,进行水彩风景写生教学与实践经验的总结。本书主要内容包括
ADINA流体与流固耦合功能的高级应用 本书特色 目前一些功能强大的商业软件已经提出了自己的流固耦合模拟方法,其中包括著名的adina软件系统。adina软件提...
《城市社会学评论·第一辑》内容简介:《城市社会学评论》是以当代中国和世界城市问题为研究对象,面向国内外学术界的社会科学类中
《无懈可击的Web设计(2):CSS深入应用》是一本介绍CSS应用技巧的书,主要讲解了在Web页面设计和制作过程中的各种细节的处理方法。
《思想的浮冰》内容简介:拥有儒家价值的范导,并不能保证我们的生活无懈可击,但失去儒家价值的范导,却注定了我们的生活会一无是
Python在Unix和Linux系统管理中的应用 本书特色 《Python在Unix和Linux系统管理中的应用(影印版)》为开明出版社出版发行。Python...
本书主要分为四部分,第一部分:网站界面设计原则。第二部分:网站交互设计。第三部分:视觉呈现设计。第四部分:网络广告设计。
《习惯养成有方法》内容简介:《习惯养成有方法》是“孙云晓教育研究前沿书系”的其中一本,是当代中国具有影响力的教育专家孙云晓
《锁相环:设计、仿真与应用》(第5版)(翻译版)第1章是简短的引言,介绍锁相环领域的情况。第2章安排涉及混合信号锁相环的理论,设
《10W+新媒体文案炼成记》内容简介:本书是一本新媒体文案专题训练实战手册,在微信、微商、电商、APP、头条号这5大文案写作最为火
所有伟大的设计,都是在艺术美、可靠性、安全性、易用性、成本和性能之间寻找平衡与和谐。《好用型设计》是设计学领域权威力作,
《共情:好的亲子关系胜过一切教育》内容简介:近几年青少年心理问题呈现越来越严重的趋势,怎样教育出一个心理健康的孩子,成为每
《安全之路:Web渗透技术及实战案例解析》是《Web渗透技术及实战案例解析》一书的第2版。《安全之路:Web渗透技术及实战案例解析
《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》内容简介:“Hadoop技术内幕”共两册,分别从源代码的角度对“Common+H
每个人都会面临这样的处境:进行企划提案时,要用什么方法来汇整资讯与发展点子?哪一种思考法能让你写出逻辑清楚、条理分明、容
单片机中级教程--原理与应用(第2 版) 内容简介 本书为普通高等教育“十一五”国家级规划教材,以80C51系列单片机为主线,系统地介绍了单片机的组成、工作原理...
《关羽:神化的《三国志》英雄》内容简介:《三国志》中的豪杰,为什么会被人们作为商业之神来崇拜呢?从史实到故事,再到信仰的对