微服务:灵活的软件架构
书籍作者:[德] 埃伯哈德·沃尔夫 |
ISBN:9787115521293 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:3464 |
创建日期:2021-02-14 |
发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
微服务具有模块性强、可替代性强、可持续开发、可独立伸缩、可持续交付等优点,近年来受到越来越多的开发者以及一些经验老到的架构师的青睐,采用微服务架构的公司也越来越多。本书围绕架构和团队的主题,详细介绍了微服务的各个方面,包括采用微服务的原因、微服务架构的基础知识、微服务的实际应用、如何克服相关的挑战,等等。本书还包含具体的实现示例,在代码层面详细介绍了微服务的技术实现。
作者简介
埃伯哈德·沃尔夫(Eberhard Wolff)
技术咨询公司innoQ的研究员,一位立足于业务和技术交汇点、拥有超过15年经验的架构师和咨询师。他曾在多个国际会议上发表过演讲和报告,担任多个会议的委员会成员,并撰写了100多篇文章及多本图书。他的技术关注点是现代架构,主要涉及云计算、持续交付、DevOps、微服务和NoSQL。
【译者简介】
莫树聪
计算机硕士,毕业于浙江大学,先后供职于网易、Yeahmobi,目前是一名运维开发工程师,关注容器、云计算、后端开发、机器学习等领域。
编辑推荐
微服务是一种实现软件模块化的方案,具有可替代性强、可持续开发、可独立伸缩、可持续交付等优点,克服了传统单体部署成本过高和不够灵活的缺点。使用微服务架构能鼓励开发团队采用不同于以往技术栈的新技术,并能有效地简化基础设施和运维工作。
本书围绕架构和组织的主题,详细介绍了微服务的各个方面,不仅告诉你什么是微服务、为何要使用微服务,而且还提供了基于Java、Spring Boot、Docker和Spring Cloud实现的详尽示例,通过实践来阐释微服务的理念。各章节的“动手实践”部分能帮助你加深对微服务的理解。无论是管理者、开发人员还是架构师,都能从阅读本书中受益。
本书可以帮助你:
● 掌握微服务的基本概念,并学习如何有效地将其整合到遗留应用中
● 学习微服务的系统架构、集成、通信、测试等实现技术,应用包括CQRS和事件溯源在内的高级架构技巧
● 学习如何*大化微服务的容错性和稳定性
● 采用Java、Spring Boot、Docker和Spring Cloud实现完整的示例应用
● 采用美亚 Lambda、OSGi、Java EE、Vert.x、Erlang和Seneca探索纳米服务
● 理解微服务对团队、技术领导者、产品负责人和相关业务人员的影响
目录
第 一部分 动机和基础知识
第 1章 预备知识 2
1.1 微服务概述 2
1.2 为什么采用微服务 3
1.3 挑战 5
1.4 总结 6
第 2章 微服务应用案例 7
2.1 遗留电商应用的技术更新 7
2.2 开发一个新的信号系统 13
2.3 总结 15
第二部分 微服务是什么,用还是不用
第3章 什么是微服务 18
3.1 微服务的大小 18
3.2 康威定律 24
3.3 领域驱动设计与限界上下文 27
3.4 为什么要远离标准数据模型 32
3.5 微服务要不要包含UI 34
3.6 总结 35
第4章 采用微服务的原因 37
4.1 技术优势 37
4.2 组织上的优势 42
4.3 业务方面的优势 44
4.4 总结 45
第5章 挑战 47
5.1 技术挑战 47
5.2 架构 50
5.3 基础设施与运维 52
5.4 总结 53
第6章 微服务与SOA 55
6.1 什么是SOA 55
6.2 SOA与微服务的区别 59
6.3 总结 62
第三部分 微服务的实现
第7章 微服务系统架构 68
7.1 领域架构 68
7.2 架构管理 71
7.3 调整架构的技术 75
7.4 增长的微服务系统 81
7.5 别错过出口:如何避免微服务的退化 84
7.6 微服务与遗留应用 86
7.7 潜在的依赖 91
7.8 事件驱动架构 92
7.9 技术架构 93
7.10 配置与协调 95
7.11 服务发现 97
7.12 负载均衡 99
7.13 可伸缩性 102
7.14 安全性 104
7.15 文档与元数据 109
7.16 总结 110
第8章 集成与通信 112
8.1 Web与UI 112
8.2 REST 121
8.3 SOAP与RPC 123
8.4 消息 124
8.5 数据复制 126
8.6 内部接口与外部接口 128
8.7 总结 130
第9章 单个微服务架构 133
9.1 领域架构 133
9.2 CQRS 134
9.3 事件溯源 136
9.4 六边形架构 138
9.5 容错性和稳定性 141
9.6 技术架构 144
9.7 总结 146
第 10章 微服务与微服务系统的测试 148
10.1 为什么需要测试 148
10.2 如何测试 149
10.3 降低部署的风险 153
10.4 系统整体的测试 154
10.5 遗留应用与微服务的测试 157
10.6 各个微服务的测试 159
10.7 消费者驱动的契约测试 160
10.8 技术标准的测试 163
10.9 总结 164
第 11章 微服务的运维及持续交付 165
11.1 微服务运维的挑战 165
11.2 日志 167
11.3 监控 171
11.4 部署 176
11.5 联合部署还是独立部署 179
11.6 控制 180
11.7 基础设施 180
11.8 总结 184
第 12章 微服务架构的组织效应 186
12.1 微服务的组织效益 186
12.2 康威定律的替代方案 189
12.3 微观架构与宏观架构 191
12.4 技术领导力 196
12.5 DevOps 197
12.6 当微服务遇上传统的IT组织 198
12.7 与客户的接洽 201
12.8 可复用代码 202
12.9 能否采用微服务而不改变组织 204
12.10 总结 206
第四部分 技术
第 13章 微服务架构示例 210
13.1 领域架构 210
13.2 基本技术 212
13.3 构建 216
13.4 使用Docker进行部署. 217
13.5 Vagrant 218
13.6 Docker Machine 222
13.7 Docker Compose 223
13.8 服务发现 226
13.9 通信 228
13.10 容错性 230
13.11 负载均衡 234
13.12 集成其他技术 235
13.13 测试 236
13.14 基于JVM的微服务在Amazon Cloud中运行的实践 237
13.15 总结 239
第 14章 纳米服务技术 241
14.1 为什么采用纳米服务 241
14.2 纳米服务:定义 243
14.3 Amazon Lambda 244
14.4 OSGi 245
14.5 Java EE 248
14.6 Vert.x 251
14.7 Erlang 252
14.8 Seneca 255
14.9 总结 257
第 15章 把微服务用起来 259
15.1 为什么选择微服务 259
15.2 微服务实践之路 260
15.3 微服务:能否落地 260
15.4 总结 261