内容简介
随着RESTful、云计算、DevOps、持续交付等概念的深入人心,微服务架构逐渐成为系统架构的一个代名词。本书首先从理论出发,介绍了微服务架构的概念、诞生背景、本质特征以及优缺点;然后基于实践,探讨了如何从零开始构建**个微服务,包括Hello World API、Docker 映像构建与部署、日志聚合、监控告警、持续交付流水线等;最后,在进阶部分讨论了微服务的轻量级通信、消费者驱动的契约测试,并通过一个真实的案例描述了如何使用微服务架构改造遗留系统。全书内容丰富,条理清晰,通俗易懂,是一本理论结合实践的微服务架构的实用书籍。

本书不仅适合架构师、开发人员、测试人员以及运维人员阅读,也适合正在尝试使用微服务架构解耦历史遗留系统的团队或者个人参考,希望本书能在实际工作中对读者有所帮助。

作者简介
ThoughtWorks的首席咨询师王磊是国内较早倡导和实践微服务的先行者。王磊是开源软件的爱好者和贡献者,社区活动的参与者,《Ruby Gems开发实战》(Practical RubyGems)一书的译者,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.21 什么是单块架构 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

书籍-微服务架构与实践相关推荐

  1. 系统部署文档_惊喜!Alibaba架构师终于发布“微服务架构与实践”文档

    前言: 对于微服务架构的概念,相信大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒度且独立部署的 Res ...

  2. 微服务架构设计实践系列之五:架构准备阶段

    微服务架构设计实践系列之五:架构准备阶段 原文:微服务架构设计实践系列之五:架构准备阶段 版权声明: https://blog.csdn.net/beyondself_77/article/detai ...

  3. 微服务架构设计实践之七:业务架构

    微服务架构设计实践之七:业务架构 原文:微服务架构设计实践之七:业务架构 版权声明: https://blog.csdn.net/beyondself_77/article/details/79842 ...

  4. 微服务架构设计实践系列之九:应用架构

    微服务架构设计实践系列之九:应用架构 原文:微服务架构设计实践系列之九:应用架构 版权声明: https://blog.csdn.net/beyondself_77/article/details/7 ...

  5. 微服务架构设计实践系列之三:软件架构设计思想

    微服务架构设计实践 目    次 1 序言 2 微服务 3 软件架构设计思想 4 微服务架构设计实践 4.1 项目概述 4.2 架构准备阶段 4.3 概念架构阶段 4.4 细化架构阶段 4.4.1 业 ...

  6. 超全,看完这份微服务架构与实践文档,微服务不再难

    前言: 微服务近年来受到了极大的关注并成为趋势,不信的话可以查看 Google Trends. 可以看到从2014年开始人们对它产生了极大的兴趣,随着时间的推移,这一趋势仍在增长. 随着数字化转型的推 ...

  7. 现代化Web的微服务架构最佳实践全景

    原文地址:点击打开链接 作者丨Vinay Sahni 编辑丨Cindy "基于搭建微服务架构的实践,作者总结出一套适用于现代化Web和云技术的实战经验,并从微服务领域的先行者(如Netfli ...

  8. 《微服务 架构与实践》王磊 摘要

    <微服务 架构与实践>王磊 摘要 一.单块架构及面临的挑战 单块的挑战 维护成本增加 持续交付周期长 新人培养周期长 技术选型成本高 可扩展性差 二.微服务架构综述 2.1 什么是微服务架 ...

  9. dubbo k8s 服务发现_工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇

    作者 | 张远征来源|阿里巴巴云原生公众号 导读:Dubbo 作为分布式微服务框架,众多公司在实践中基于 Dubbo 进行分布式系统架构.重启开源后,我们不仅看到 Dubbo 3.0 最新的 Road ...

  10. 单体应用到微服务架构转型-实践过程总结

    点击上方"猿芯",选择"设为星标" 后台回复"1024",有份惊喜送给面试的你 原文 https://www.toutiao.com/art ...

最新文章

  1. Mysqli的批量CRUD数据
  2. 进击的 JavaScript(六) 之 this
  3. MongoDB中的分组
  4. 【OFDM系列1】OFDM调制原理、参数、循环前缀、采样偏差、频偏及估计详解
  5. 2 计算机网络性能指标
  6. Eclipse中文显示乱码问题
  7. ssis行计数变量_SSIS管道性能计数器指南
  8. 如何将Mac中的备忘录内容导出为 PDF文档?
  9. iOS自己定义返回button(不影响返回手势)
  10. Delphi使用reportmachine导出pdf蓝色解决方法
  11. 在线抢购平台_课程设计报告
  12. 2021 年的简单年终总结
  13. Unity Fingers Gesture手势插件教程(新)
  14. 可靠性(reliability)弱点度量
  15. 全自动与半自动手表的区别_机械表全自动好还是半自动好 有什么区别
  16. 南昌大学计算机学院夏令营,南昌大学关于举办2021年优秀大学生暑期夏令营活动的通知...
  17. 华米Amazfit GTS 2e用续航和高性价比征服外媒
  18. RX5600XT与RTX2060对比哪个好,哪款显卡性能更强?
  19. 虚拟内存技术的来龙去脉(上)
  20. 将AIR-CAP2702I-H-K9升级成胖AP

热门文章

  1. 匿名页反向映射得建立
  2. adb server is out of date killing
  3. 北京市土壤侵蚀强度空间分布数据
  4. LSTM VS RNN改进
  5. python中的列表推导与生成器
  6. ad系统安装配置指南(java-jndi-ldap),AD系统安装配置指南(JAVA-JNDI-LDAP-Exchange)
  7. 线性表的顺序表示---练习题(算法设计题
  8. 蓝桥杯第八届省赛本科B组C/C++第九题 分巧克力
  9. python中input的用法霍格沃_欢迎来到霍格沃茨—魔法01 Python 环境安装
  10. android studio中tabhost自定义,Android Studio——TabWiget组件实现(带图标签)