第0章 引言 1
0.1 云计算是什么 1
0.2 云计算的革命 2
0.2.1 主机 2
0.2.2 PC革命 3
0.2.3 高速互联网 4
0.2.4 云 5
0.2.5 HTML5和本地存储 6
0.2.6 移动设备的黎明 7
0.3 线程化,并行处理,并行计算 7
0.4 基于云的开发过程与其他应用开发过程有何不同 9
0.5 应该避免什么 10
0.6 开始用云 11
0.6.1 选择一种云模式 12
0.6.2 实现一种云模式 12
第一部分 概念第1章 云服务的基础 16
1.1 云计算的起源 16
1.2 云服务是什么 17
1.2.1 计算 18
1.2.2 存储 18
1.2.3 联接 18
1.3 遗留模式 19
1.4 运行在云中的应用并不会自主扩展 20
1.5 失效是必然的 20
1.6 一致性,有效性,分区容错性 21
1.6.1 一致性 22
1.6.2 有效性 22
1.6.3 分区容错性 23
1.7 最终一致性 23
1.8 本章小结 24
第2章 把软件做成服务 25
2.1 本书中使用的工具 25
2.1.1 注册Amazon Web Services 26
2.1.2 安装boto 26
2.1.3 环境设置 27
2.1.4 测试 29
2.2 什么是应用程序所需要的 29
2.3 数据层 31
2.4 应用层 35
2.4.1 使用Elastic Load Balancing 36
2.4.2 向负载均衡器添加服务器 38
2.4.3 自动向负载均衡器注册实例 39
2.5 HTTP和REST 40
2.5.1 HTTP header 41
2.5.2 Body 43
2.5.3 方法 44
2.6 授权层 47
2.7 客户端层 49
2.7.1 基于浏览器的客户端 50
2.7.2 本地应用程序 51
2.8 本章小结 51
第3章 云服务提供商 53
3.1 Amazon Web Services 53
3.1.1 SimpleStorageService(S3) 54
3.1.2 CloudFront 60
3.1.3 Simple Queue Service(SQS) 62
3.1.4 Elastic Compute Cloud(EC2) 64
3.1.5 Elastic Block Storage(EBS) 69
3.1.6 Elastic Load Balancing(ELB) 71
3.1.7 SimpleDB 73
3.1.8 Relational Database Service(RDS) 75
3.1.9 Simple Notification Service(SNS) 81
3.1.10 Virtual Private Cloud(VPC) 84
3.2 Google云 86
3.2.1 AppEngine 87
3.2.2 Google Storage 88
3.3 Rackspace云 89
3.3.1 CloudFiles 90
3.3.2 CloudServers 90
3.3.3 CloudSites 90
3.4 本章小结 91
第二部分 模式第4章 设计镜像 94
4.1 预打包镜像 95
4.1.1 概要 95
4.1.2 使用动机 95
4.1.3 详述 95
4.1.4 实现 96
4.1.5 范例 98
4.1.6 总结 100
4.2 单例实例(Singleton Instance) 100
4.2.1 概要 100
4.2.2 使用动机 100
4.2.3 详述 101
4.2.4 实现 101
4.2.5 范例 101
4.2.6 总结 103
4.3 原型镜像 103
4.3.1 概要 103
4.3.2 使用动机 103
4.3.3 详述 104
4.3.4 实现 104
4.3.5 范例 105
4.3.6 总结 106
第5章 设计架构 107
5.1 适配器 108
5.1.1 概要 108
5.1.2 使用动机 108
5.1.3 详述 109
5.1.4 实现 109
5.1.5 范例 110
5.1.6 总结 114
5.2 门面模式 114
5.2.1 概要 114
5.2.2 使用动机 115
5.2.3 详述 115
5.2.4 实现 115
5.2.5 范例 116
5.2.6 总结 118
5.3 负载均衡代理 119
5.3.1 概要 119
5.3.2 使用动机 119
5.3.3 详述 120
5.3.4 实现 120
5.3.5 范例 120
5.3.6 总结 124
第6章 操作数据 125
6.1 队列(queuing)模式 125
6.1.1 概要 125
6.1.2 使用动机 126
6.1.3 详述 126
6.1.4 实现 127
6.1.5 范例 128
6.1.6 总结 133
6.2 命令模式 134
6.2.1 概要 134
6.2.2 使用动机 134
6.2.3 详述 135
6.2.4 实现 135
6.2.5 范例 135
6.2.6 总结 140
6.3 迭代器模式 140
6.3.1 概要 140
6.3.2 使用动机 141
6.3.3 详述 141
6.3.4 实现 141
6.3.5 范例 142
6.3.6 总结 144
6.4 观察者模式 144
6.4.1 概要 144
6.4.2 使用动机 145
6.4.3 详述 145
6.4.4 实现 146
6.4.5 范例 146
6.4.6 总结 148
第7章 集群系统 149
7.1 Web分层模式 149
7.1.1 概要 149
7.1.2 使用动机 150
7.1.3 详述 150
7.1.4 实现 151
7.1.5 范例 152
7.1.6 总结 162
7.2 信号和锁模式 162
7.2.1 概要 162
7.2.2 使用动机 162
7.2.3 详述 163
7.2.4 实现 163
7.2.5 范例 164
7.2.6 总结 169
7.3 map/reduce 169
7.3.1 概要 169
7.3.2 使用动机 170
7.3.3 详述 170
7.3.4 实现 170
7.3.5 范例 171
7.3.6 总结 175
第三部分 项目第8章 简单的博客系统 178
8.1 存储 178
8.1.1 创建SDB域 179
8.1.2 User对象 180
8.1.3 Post对象 182
8.1.4 Comment对象 185
8.2 应用逻辑层 188
8.2.1 WSGI的简单介绍 188
8.2.2 DB处理器 190
8.2.3 User、Post、Comment对象的处理器 194
8.2.4 处理垃圾评论 197
8.3 表现层 200
8.3.1 设置HTTP代理 200
8.3.2 博客文章(Post) 201
8.3.3 评论 212
8.4 部署 217
8.4.1 启动基础实例 217
8.4.2 安装软件 218
8.4.3 安装应用程序 220
8.4.4 安装Apache 221
8.4.5 打包镜像 222
8.4.6 创建代理 223
8.5 本章小结 223
第9章 使用Marajo开发博客系统 224
9.1 初始化开发环境 225
9.1.1 handlers 225
9.1.2 resources 225
9.1.3 static 226
9.1.4 templates 226
9.2 创建资源(Resource) 226
9.3 创建处理器 228
9.4 配置应用程序 229
9.5 运行应用程序 231
9.6 创建自定义模板 231
9.6.1 清单页面的模板 231
9.6.2 编辑博客的模板 233
9.7 本章小结 237
术语表 238