05-10-12
¥ 2 八五品
仅1件
作者王磊 著
出版社电子工业出版社
出版时间2015-11
版次1
装帧平装
货号05-10-12
上书时间2024-09-29
随着RESTful、云计算、DevOps、持续交付等概念的深入人心,微服务架构逐渐成为系统架构的一个代名词。本书首先从理论出发,介绍了微服务架构的概念、诞生背景、本质特征以及优缺点;然后基于实践,探讨了如何从零开始构建**个微服务,包括HelloWorldAPI、Docker映像构建与部署、日志聚合、监控告警、持续交付流水线等;最后,在进阶部分讨论了微服务的轻量级通信、消费者驱动的契约测试,并通过一个真实的案例描述了如何使用微服务架构改造遗留系统。全书内容丰富,条理清晰,通俗易懂,是一本理论结合实践的微服务架构的实用书籍。
本书不仅适合架构师、开发人员、测试人员以及运维人员阅读,也适合正在尝试使用微服务架构解耦历史遗留系统的团队或者个人参考,希望本书能在实际工作中对读者有所帮助。
ThoughtWorks的首席咨询师王磊是国内较早倡导和实践微服务的先行者。王磊是开源软件的爱好者和贡献者,社区活动的参与者,《RubyGems开发实战》(PracticalRubyGems)一书的译者,GDCR西安的组织者。他于2012年加入ThoughtWorks,为国内外诸多客户提供项目交付和咨询服务;在加入ThoughtWorks之前,曾就职过多家知名外企,具有丰富的敏捷项目实战经验。目前致力于微服务架构、高可用的Web应用以及DevOps的研究与实践。
第 1部分 基础篇
第 1章 单块架构及其面临的挑战 . 3
1.1三层应用架构 . 4
1.1.1三层应用架构的发展 4
1.1.2什么是三层架构 . 5
1.1.3三层架构的优势 . 6
1.2单块架构 . 6
1.2.1什么是单块架构 . 6
1.2.2单块架构的优势 . 7
1.2.3单块架构面临的挑战 8
1.3 小结 . 12
第 2章 微服务架构综述 13
2.1什么是微服务架构 . 13
2.1.1多微才够微 . 14
2.1.2 单一职责 . 17
2.1.3 轻量级通信 . 17
2.1.4 独立性 . 19
2.1.5 进程隔离 . 20
2.2 微服务的诞生背景 . 22
2.2.1 互联网行业的快速发展 23
2.2.2 敏捷、精益方法论的深入人心 23
2.2.3 单块架构系统面临的挑战 23
2.2.4 容器虚拟化技术 . 23
2.3 微服务架构与 SOA 24
2.3.1 SOA概述 24
2.3.2 微服务与 SOA 25
2.4 微服务的本质 . 26
2.4.1服务作为组件 . 27
2.4.2 围绕业务组织团队 . 28
2.4.3 关注产品而非项目 . 29
2.4.4 技术多样性 . 31
2.4.5 业务数据独立 . 32
2.4.6 基础设施自动化 . 33
2.4.7 演进式架构 . 33
2.5 微服务不是银弹 . 34
2.5.1 分布式系统的复杂度 35
2.5.2 运维成本 . 36
2.5.3 部署自动化 . 36
2.5.4 DevOps与组织架构 . 37
2.5.5 服务间的依赖测试 . 37
2.5.6 服务间的依赖管理 . 37
2.6 小结 . 38
第 2部分 实践篇
第 3章 构建第一个服务 41
3.1场景分析 . 41
3.2任务拆分 . 43
第 4章 Hello World API 45
4.1 API实现 45
4.1.1 开发语言 ――Ruby . 45
4.1.2 Web框架――Grape . 46
4.1.3 API的具体实现 47
4.2代码测试与静态检查 . 50
4.2.1代码测试 . 50
4.2.2测试覆盖率统计 . 53
4.2.3静态检查 . 54
4.2.4代码复杂度检查 . 57
第 5章 构建 Docker映像 . 61
5.1 定义 Dockerfile . 61
5.2 配置 Docker主机 63
5.3 构建 Docker映像 64
5.4 运行 Docker容器 64
5.5 发布 Docker映像 65
5.6 小结 . 69
第 6章 部署 Docker映像 . 71
6.1基础设施 AWS 71
6.2基础设施自动化 . 73
6.3 部署 Docker映像 80
6.4自动化部署 . 81
6.5 小结 . 84
第 7章 持续交付流水线 85
7.1持续集成环境 . 85
7.2提交阶段 . 87
7.3验证阶段 . 91
7.4构建阶段 . 91
7.5发布阶段 . 94
7.6 小结 . 96
第 8章 日志聚合 97
8.1 日志聚合工具简介 . 97
8.2 Splunk的核心 . 99
8.3 安装 Splunk索引器 100
8.4 安装 Splunk转发器 101
8.5日志查找 . 102
8.6告警设置 . 103
8.7 小结 . 104
第 9章 监控与告警 . 105
9.1 Nagios简介. 105
9.2 Nagios的工作原理 . 107
9.3 Nagios安装. 108
9.4 Nagios的配置 . 109
9.5 监控 products-service 111
9.6 告警 . 113
9.7 小结 . 114
第 10章 功能迭代 115
10.1定义模型 . 116
10.2持久化模型 . 117
10.3定义表现形式 . 119
10.4 实现 API 122
10.5服务描述文件 . 125
10.6 小结 . 127
第 3部分 进阶篇
第 11章 微服务与持续交付 131
11.1持续交付的核心 132
11.2微服务架构与持续交付 133
11.2.1 开发 . 133
11.2.2 测试 . 137
11.2.3持续集成 139
11.2.4 构建 . 139
11.2.5 部署 . 140
11.2.6 运维 . 143
11.3 小结 . 144
第 12章 微服务与轻量级通信机制 . 145
12.1同步通信与异步通信 . 145
12.1.1 概述 . 145
12.1.2同步通信与异步通信的选择 146
12.2远程调用 RPC . 147
12.2.1远程过程调用的核心 147
12.2.2远程方法调用 . 148
12.2.3远程过程调用的弊端 148
12.3 REST . 149
12.3.1 概述 . 149
12.3.2 REST的核心 . 150
12.3.3 REST的优势 . 152
12.3.4 REST的不足 . 152
12.3.5 本节小结 . 155
12.4 HAL . 155
12.4.1 概述 . 155
12.4.2 HAL的核心 156
12.4.3 HAL浏览器 160
12.5消息队列 . 161
12.5.1 核心部分 . 162
12.5.2 访问方式 . 163
12.5.3消息队列的优缺点 . 164
12.6后台任务处理系统 . 165
12.6.1 核心部分 . 165
12.6.2 服务回调 . 166
12.6.3 一个例子 . 167
12.6.4后台任务与微服务 . 169
12.7 小结 . 170
第 13章 微服务与测试 . 171
13.1微服务的结构 . 171
13.2微服务的测试策略 . 173
13.3微服务的单元测试 . 175
13.3.1单元测试综述 . 175
13.3.2单元测试的内容 . 176
13.4微服务的集成测试 . 179
13.4.1集成测试综述 . 179
13.4.2集成测试的实施方法 179
13.4.3集成测试的内容 . 180
13.5基于消费者驱动的契约测试 181
13.5.1集成测试存在的弊端 181
13.5.2什么是契约 . 183
13.5.3什么是契约测试 . 184
13.5.4契约测试的方法 . 185
13.5.5 Pact实现契约测试 187
13.5.6 一个例子 . 192
13.5.7 本节小结 . 205
13.6微服务的组件测试 . 205
13.6.1组件测试概述 . 205
13.6.2组件测试的方法 . 206
13.6.3 本节小结 . 207
13.7微服务的端到端测试 . 208
13.7.1端到端测试概述 . 208
13.7.2端到端测试的内容 . 208
13.7.3 本节小结 . 209
13.8 小结 . 210
第 14章 使用微服务架构改造遗留系统 211
14.1背景与挑战 . 211
14.2改造策略 . 212
14.2.1 昀小修改 . 212
14.2.2 功能剥离 . 212
14.2.3 数据解耦 . 213
14.2.4 数据同步 . 213
14.2.5 迭代替换 . 214
14.3快速开发实践 . 215
14.3.1快速开发模板 . 215
14.3.2代码生成工具 . 217
14.3.3持续集成模板 . 217
14.3.4一键部署工具 . 217
14.4微服务架构下的新系统 . 218
14.5 小结 . 220
— 没有更多了 —
以下为对购买帮助不大的评价