第一部分 模型第1章 云计算定义 2
1.1 云属性 2
1.2 云服务 4
1.3 云交付模型 7
1.3.1 私有云 8
1.3.2 共同的本质 8
1.3.3 云统一体 9
1.3.4 伙伴云 9
1.3.5 社区云 10
1.3.6 混合或多源的交付 11
1.4 云成熟度 12
1.5 对于应用开发的影响 14
第2章 参考架构 16
2.1 云组件模型 16
2.2 平台 17
2.3 展示 18
2.4 身份认证 18
2.5 集成 19
2.6 信息 19
2.7 弹性 20
2.8 盈利 20
2.9 部署 21
2.10 运行维护 22
第3章 使用场景 23
3.1 采用IaaS存储的托管服务器 24
3.2 专用IaaS 24
3.3 采用IaaS扩展的私有应用 25
3.4 纯PaaS 26
3.5 采用IaaS存储和计算的PaaS应用 27
3.6 实用注意事项 29
第二部分 平台第4章 平台定义 32
4.1 组件 32
4.2 托管 35
4.2.1 内部部署 35
4.2.2 IaaS 36
4.2.3 Web托管 36
4.2.4 PaaS 37
4.3 选择标准 39
4.3.1 编程语言 39
4.3.2 开发环境 40
4.3.3 开发人员的偏好 40
4.3.4 其他因素 41
4.3.5 混合式组合 41
第5章 Google App Engine 43
5.1 编程语言 44
5.2 数据存储 45
5.3 沙箱 45
5.4 开发环境 48
5.5 实践注意事项 49
第6章 Microsoft Windows Azure 51
6.1 开发环境 51
6.2 Azure平台 53
6.3 Azure服务 55
6.4 实用注意事项 57
第7章 Amazon Web Services 59
7.1 计算 60
7.2 存储 61
7.2.1 简单存储服务 61
7.2.2 弹性块存储 61
7.2.3 简单DB 61
7.2.4 关系数据库服务 61
7.2.5 CloudFront 62
7.3 集成 62
7.3.1 弹性IP地址 62
7.3.2 简单队列服务 63
7.3.3 简单通知服务 63
7.3.4 虚拟私有云 63
7.3.5 VM导入 63
7.3.6 AWS导入/导出 64
7.4 可伸缩性 64
7.4.1 高性能计算 64
7.4.2 弹性负载均衡 65
7.4.3 自动伸缩 65
7.4.4 弹性MapReduce 65
7.5 管理 66
7.5.1 CloudFormation 66
7.5.2 CloudWatch 66
7.5.3 AWS生态系统 67
7.6 计费 67
7.6.1 灵活支付服务 67
7.6.2 DevPay 67
7.7 Elastic Beanstalk 68
7.8 实用注意事项 69
第8章 其他可选平台 70
8.1 私有云方案 71
8.1.1 VMware 71
8.1.2 Joyent 72
8.1.3 Nirvanix 73
8.1.4 Eucalyptus 73
8.1.5 Flexiscale 73
8.2 伙伴云方案 74
8.3 Rackspace Cloud 74
8.4 GoGrid 75
8.5 Engine Yard 76
8.6 Salesforce.com 78
8.6.1 外部编程访问 78
8.6.2 Apex 79
8.6.3 用户界面 81
8.7 Facebook 81
8.7.1 展示 81
8.7.2 应用逻辑 82
8.7.3 数据 82
8.8 Intuit 83
8.9 基于基础设施的平台 84
8.10 实用注意事项 84
第三部分 展示第9章 浏览器界面 87
9.1 浏览器支持 88
9.2 浏览器接口方式的类型 90
9.2.1 静态网站 90
9.2.2 富服务器端接口方式 91
9.2.3 富客户端 92
9.2.4 富客户端/服务器接口方式 94
9.3 实践建议 94
第10章 专用客户端 95
10.1 桌面应用 95
10.2 移动应用 97
10.3 常见的数据传输 104
10.4 实践建议 105
第11章 展示优化 106
11.1 测量展示层 107
11.1.1 Google Analytics 107
11.1.2 Pingdom 108
11.1.3 Chartbeat 110
11.1.4 A/B测试 112
11.1.5 服务器/客户机的性能测量 112
11.2 展示优化技术 114
11.2.1 减少网络请求次数 114
11.2.2 最小化下载内容 114
11.2.3 分发和缓存 114
11.2.4 优化网页元素顺序 115
11.2.5 调整应用逻辑 115
11.3 实践建议 116
第12章 实时网络 117
12.1 提供实时信息 118
12.1.1 Ajax/REST 118
12.1.2 Comet 119
12.1.3 WebSocket 121
12.1.4 Google Channel API 122
12.2 聚合实时信息 122
12.2.1 订阅源 122
12.2.2 社交网络 124
12.3 对外公布信息 124
12.4 实践建议 125
第四部分 身份认证第13章 身份认证 128
13.1 背景 128
13.1.1 目录同步 128
13.1.2 实时查找 129
13.2 联邦式Web身份识别解决方案 130
13.3 身份架构 132
13.3.1 消费者应用 132
13.3.2 企业应用 133
13.3.3 身份认证实践 134
13.4 OpenID 135
13.5 OAuth 136
13.6 SAML 139
13.7 微软 141
13.8 身份服务提供商 143
13.8.1 例子:myOneLogin 144
13.8.2 开通 145
13.9 访问控制 145
13.10 应用的公布 146
13.11 实践建议 147
第14章 个性化 148
14.1 易访问性 148
14.2 用户体验 149
14.2.1 效率 149
14.2.2 清晰 151
14.2.3 美观 152
14.3 定制内容 152
14.3.1 位置 153
14.3.2 社交图 154
14.3.3 其他服务 155
14.4 实践建议 155
第五部分 集成第15章 网络集成 158
15.1 网络的连接方式 158
15.1.1 所需的连接 158
15.1.2 连接需求 160
15.1.3 连接选项 161
15.1.4 连接方式配置 163
15.1.5 虚拟私有云 164
15.2 内容交付网络 166
15.3 实践建议 167
第16章 应用集成 168
16.1 遗留应用和外部应用 168
16.2 内部集成 171
16.3 数据层 172
16.3.1 数据订阅源 173
16.3.2 信息连接 176
16.4 应用集成服务 177
16.5 实践建议 178
第六部分 信息第17章 存储 180
17.1 存储需求 181
17.2 架构级选择 181
17.3 本地实现选项 183
17.3.1 内存 183
17.3.2 文件系统 185
17.4 外部接口 186
17.5 数据的生命周期管理 188
17.6 实践建议 189
第18章 关系型数据 190
18.1 可伸缩性与完整性 190
18.2 SQL 192
18.2.1 SQL未死 192
18.2.2 自管理SQL 193
18.2.3 SQL即服务 194
18.3 PseudoSQL(近SQL) 195
18.3.1 Amazon SimpleDB 196
18.3.2 Google App Engine数据存储 196
18.3.3 Microsoft Azure存储 196
18.4 NoSQL 197
18.4.1 横向可伸缩性 197
18.4.2 NoSQL的数据结构 198
18.5 实践建议 201
第19章 非关系型数据 202
19.1 文档数据库 202
19.2 图数据库 204
19.3 搜索 205
19.3.1 商品化企业级搜索 206
19.3.2 Lucene 206
19.3.3 Solr 206
19.3.4 Katta 207
19.3.5 Bobo Browse 207
19.4 语义数据的存储 208
19.5 分析 209
19.5.1 云基础设施方面的开源 209
19.5.2 Hadoop的分析:Hive、Pig、Cascading 210
19.5.3 按需商务智能 211
19.6 外部数据需求 211
19.6.1 实时Web内容 212
19.6.2 网络搜索 212
19.7 实践建议 213
第七部分 弹性第20章 可靠性 216
20.1 可用性 216
20.1.1 组件的可靠性 217
20.1.2 容错 218
20.1.3 降低复杂度/松耦合 219
20.1.4 快速恢复 220
20.2 可使用性 221
20.3 灾难 222
20.4 可恢复性/可逆性/回滚 224
20.4.1 备份 224
20.4.2 版本化 225
20.4.3 归档 226
20.5 实践建议 226
第21章 伸缩弹性 227
21.1 纵向伸缩 227
21.2 分片 229
21.3 高性能计算 231
21.4 MapReduce 232
21.4.1 它是什么 232
21.4.2 它有什么好处 233
21.4.3 为什么使用它 234
21.4.4 它能做什么 235
21.4.5 它的工作原理是什么 237
21.4.6 如何使用它 238
21.5 数据关联 240
21.6 资源分配/容量规划 241
21.6.1 私有云的规划 241
21.6.2 云爆发 242
21.7 实践建议 244
第八部分 盈利第22章 市场营销 247
22.1 广告 247
22.1.1 基于Web的横幅广告 248
22.1.2 按单击次数付费 249
22.1.3 搜索引擎 251
22.1.4 超越搜索 252
22.1.5 二线广告 253
22.1.6 实践注意事项 253
22.2 搜索引擎优化 255
22.2.1 黑帽SEO 256
22.2.2 白帽SEO 256
22.3 社交媒体营销 258
22.3.1 研究 258
22.3.2 广告 261
22.3.3 监控 262
22.4 实践建议 263
第23章 付款 264
23.1 估价模型 264
23.2 服务分级 265
23.3 直接收费 265
23.3.1 定价 266
23.3.2 计量 267
23.4 结算 268
23.4.1 直接信用卡计费 268
23.4.2 PayPal 269
23.4.3 Amazon Flexible Payments Service 270
23.4.4 Google Checkout 270
23.5 广告 270
23.6 专业服务 272
23.7 应用市场 273
23.8 实践建议 278
第九部分 部署第24章 开发阶段 281
24.1 编码 282
24.2 测试 285
24.2.1 Azure 286
24.2.2 App Engine 286
24.2.3 Amazon Web Services 287
24.3 实践建议 288
第25章 测试阶段 289
25.1 持续集成 289
25.2 云集成测试 291
25.3 实践建议 294
第26章 部署测试阶段 295
26.1 测试环境 295
26.1.1 用户验收测试 296
26.1.2 运行验收测试 296
26.2 部署测试等级 297
26.3 云部署测试 297
26.4 本地数据 297
26.5 负载测试工具 298
26.5.1 SOASTA 299
26.5.2 LoadStorm 300
26.5.3 HP LoadRunner 300
26.5.4 IBM Rational Performance Tester 300
26.6 实践建议 300
第27章 生产阶段 302
27.1 发布 302
27.2 数据迁移 303
27.2 数据迁移 303
27.3 发布周期 303
27.4 回滚 304
27.5 实践建议 304
第十部分 运行维护第28章 配置 308
28.1 CMDB 309
28.2 DevOps 310
28.2.1 Puppet 311
28.2.2 Chef 312
28.2.3 Capistrano 313
28.2.4 Fabric 313
28.2.5 选择标准 313
28.3 开通自动化 314
28.4 实践建议 315
第29章 管理 316
29.1 管理门户 316
29.2 IT运营管理 317
29.3 服务请求处理 318
29.4 变更管理 319
29.5 新发布管理 320
29.6 监测 320
29.7 容量管理 321
29.8 可用性管理 322
29.9 访问管理 323
29.10 实践建议 324
第30章 故障排查 325
30.1 事故管理 325
30.2 问题管理 326
30.3 事件管理 326
30.4 技术支持 327
30.4.1 文档 328
30.4.2 门户网站 329
30.4.3 服务台 329
30.4.4 支持的分级 330
30.4.5 服务知识管理系统 332
30.5 实践建议 333
第31章 精益求精 334
31.1 改进过程 334
31.2 商业环境 335
31.3 技术演进 335
31.4 持续服务改进 336
附录A 案例研究:TrendJammer 337
参考文献 347