第Ⅰ部分 OpenStack概述 3
第1章 OpenStack介绍 3
1.1 云计算介绍 3
1.1.1 云计算的类型 3
1.1.2 云基础设施部署模型 5
1.2 我关注OpenStack的原因 6
1.2.1 OpenStack简介 8
1.2.2 选择OpenStack的理由 10
1.3 了解OpenStack架构 12
1.3.1 软件架构 12
1.3.2 部署架构 13
1.3.3 优缺点 15
1.3.4 OpenStack版本 15
1.4 小结 17
第2章 了解OpenStack生态系统:核心项目 19
2.1 身份认证 20
2.1.1 使用令牌和重认证 21
2.1.2 OpenStack的各个部分如何相互通信 23
2.1.3 应用可否使用Keystone 24
2.2 计算 25
2.2.1 实例的各个部分 25
2.2.2 了解flavor 26
2.2.3 调度器 26
2.2.4 虚拟机管理程序的类型 28
2.3 存储 29
2.3.1 OpenStack Swift介绍 29
2.3.2 在Swift中存储第一个对象 31
2.3.3 临时Swift URL 32
2.3.4 公有容器和访问控制列表(ACL) 33
2.3.5 了解块存储 34
2.4 镜像 35
2.4.1 存储在何处 36
2.4.2 不同的镜像格式 37
2.5 仪表板 37
2.6 网络 38
2.6.1 Nova网络 39
2.6.2 Neutron网络 40
2.7 将所有内容组合在一起 45
2.8 小结 48
第3章 了解OpenStack生态系统:附加项目 49
3.1 OpenStack Heat 50
3.2 OpenStack数据库即服务:Trove 54
3.2.1 云数据库作为软件定义存储(SDS)的用例 54
3.2.2 OpenStack和Trove 55
3.2.3 OpenStack DBaaS详解 56
3.2.4 Trove架构 60
3.3 DNS即服务:Designate 61
3.3.1 了解Designate架构 62
3.3.2 使用Designate 63
3.4 MAGNUM 66
3.4.1 容器即服务 67
3.4.2 使用Flannel、Kubernetes和Docker构建 67
3.4.3 使用OpenStack构建 68
3.4.4 Bay、Pod、Node和Container 68
3.4.5 Magnum作为OpenStack的未来 69
3.5 应用即服务:Murano 69
3.5.1 Application Catalog 69
3.5.2 Application Publisher 70
3.5.3 Application Catalog管理员 70
3.5.4 Application Catalog终端用户 71
3.5.5 Murano架构 71
3.5.6 Murano使用示例 72
3.6 Ceilometer:计量即服务 73
3.6.1 Ceilometer架构 73
3.6.2 Ceilometer弹性伸缩 74
3.7 小结 75
第Ⅱ部分 使用OpenStack开发和部署应用 79
第4章 应用开发 79
4.1 将遗留应用转换为OpenStack应用 79
4.1.1 迁移到云的原因 80
4.1.2 迁移到云的方法 81
4.2 从头构建应用 82
4.2.1 OpenStack应用设计指南 82
4.2.2 云应用开发最佳实践 83
4.3 OpenStack应用描述和部署策略 86
4.3.1 云应用描述 86
4.3.2 网络部署策略 88
4.4 小结 90
第5章 改进应用 91
5.1 故障场景 92
5.1.1 硬件故障 92
5.1.2 网络故障 92
5.1.3 存储故障 93
5.1.4 软件故障 94
5.1.5 外部故障 95
5.2 主机名和IP地址分配 96
5.2.1 单一入口 96
5.2.2 DNS轮询 96
5.2.3 全局服务器负载均衡(GSLB) 97
5.2.4 固定IP地址和浮动IP地址 98
5.2.5 Neutron端口保留 99
5.2.6 永久IP地址 99
5.3 伸缩 100
5.3.1 应用剖析 100
5.3.2 多台实例 101
5.3.3 多位置 102
5.3.4 负载均衡 102
5.3.5 性能 104
5.3.6 数据存储 104
5.3.7 高可用性 105
5.4 应用改进 106
5.4.1 简单应用 107
5.4.2 复杂应用 107
5.4.3 改进Web UI组件 108
5.4.4 改进API组件 109
5.4.5 改进数据库组件 109
5.4.6 将所有内容组合在一起 112
5.4.7 多区域实例 113
5.5 小结 114
第6章 部署应用 115
6.1 裸机、虚拟机和容器 116
6.1.1 裸机 116
6.1.2 虚拟机 117
6.1.3 容器 118
6.1.4 裸机上的容器 120
6.1.5 为问题选择正确的技术 120
6.2 编排和配置管理 121
6.2.1 编排工具:Heat、Murano和Cloudify等 121
6.2.2 配置管理和云初始化 122
6.2.3 Puppet、Chef、Salt和Ansible 125
6.2.4 使用快照的方式和原因 128
6.3 监控和计量 129
6.4 弹性 130
6.4.1 确保需要弹性/可伸缩性 131
6.4.2 垂直扩展和水平扩展脚本的对比 132
6.4.3 再论负载均衡 133
6.4.4 使用Heat和ResourceGroups扩展 135
6.4.5 将Heat、Ceilometer和AutoScalingGroup组合在一起 136
6.5 更新和补丁 141
6.5.1 补丁更新选择 142
6.5.2 OpenStack持续集成/持续交付 142
6.6 小结 143
6.7 本节总结 144