1)资深架构师撰写,从设计与工程化视角分析Service Mesh,穿插大量一线实践真知灼见
2)涵盖微服务实施细则,Istio/Envoy的架构设计与实现,Service Mesh工程化设计思想与发展趋势等
资深架构师撰写,从设计与工程化视角分析Service Mesh,穿插大量一线实践真知灼见,涵盖微服务实施细则、Istio/Envoy的架构设计与实现、Service Mesh工程化设计思想与发展趋势等。本书分为两篇,共计10章内容。
基础篇(第1~3章),着重讲解微服务架构和治理,以及Service Mesh技术当前的现状。
本篇帮读者厘清微服务架构的实施前准备,实施风险与痛点/难点问题,并引出应对微服务通信与服务治理问题的方案——Service Mesh,阐述Service Mesh生态的各个方面,包括Service Mesh的价值与企业需求的内在动因。
架构篇(第4~10章),深入剖析Service Mesh主流方案Istio/Envoy在架构设计层面的原理和实现,以及Service Mesh技术展望。其中第4~7章为重点章节,建议读者认真研读与实践。
第4章详细分析Envoy的整体架构,并就架构设计层面与Nginx进行全方位对比分析。
第5章分析Istio的整体架构以及各个组件的功能和设计。
第6~7章分别从控制流与数据流的角度,分析请求的处理策略与配置以及在整个Service Mesh中的流向和处理。
后续章节分别讨论Istio的服务治理(聚焦可观测性、链路治理),Service Mesh的架构思想的工程化应用,以及Service Mesh技术在云原生架构下的发展畅想。
前言
第一篇 基础篇
第1章 微服务架构 …… 2
1.1 为什么需要微服务 …… 2
1.1.1 传统单体服务的问题 …… 2
1.1.2 微服务的定义 …… 3
1.1.3 微服务与康威定律 …… 3
1.1.4 微服务的收益 …… 4
1.2 微服务架构的挑战 …… 4
1.2.1 服务拆分 …… 4
1.2.2 开发挑战 …… 5
1.2.3 测试挑战 …… 5
1.2.4 运维挑战 …… 6
1.3 微服务化的具体时机 …… 6
1.4 微服务化开展前的准备工作 …… 8
1.4.1 微服务开发框架 …… 8
1.4.2 微服务标准化 …… 15
1.4.3 持续集成与发布 …… 17
1.5 微服务实施 …… 17
1.5.1 微服务拆分 …… 17
1.5.2 微服务通信 …… 19
1.5.3 微服务稳定性保障 …… 20
1.6 本章小结 …… 25
第2章 微服务治理 …… 26
2.1 微服务治理基础 …… 26
2.1.1 服务治理由来 …… 26
2.1.2 服务治理的目标与愿景 …… 27
2.1.3 服务治理的工作范畴 …… 28
2.1.4 服务治理闭环体系 …… 29
2.2 正向服务治理 …… 29
2.2.1 效率治理 …… 30
2.2.2 稳定性治理 …… 31
2.3 效果治理 …… 34
2.4 可见可观测 …… 35
2.4.1 服务可见性 …… 35
2.4.2 变更可见性 …… 36
2.4.3 可观测性 …… 36
2.5 量化分析体系 …… 41
2.5.1 稳定性风险度量 …… 41
2.5.2 基于多维度监控的故障定位 …… 42
2.5.3 风险分析 …… 43
2.6 线上治理 …… 43
2.6.1 线上预案体系 …… 43
2.6.2 基于Metric的预案自动触发 …… 44
2.6.3 治理参数动态调整 …… 44
2.7 线下治理 …… 47
2.7.1 链路稳定性治理 …… 47
2.7.2 架构与资源治理 …… 50
2.8 服务治理演进 …… 50
2.8.1 远程Proxy方式 …… 51
2.8.2 基于智能客户端的服务框架 …… 52
2.8.3 本地Proxy …… 52
2.9 理想的服务治理架构 …… 53
2.10 本章小结 …… 54
第3章 下一代微服务框架Service Mesh概要 …… 55
3.1 Service Mesh基础 …… 55
3.1.1 什么是Service Mesh …… 55
3.1.2 Service Mesh的基本模式 …… 56
3.2 Service Mesh的发展历程 …… 58
3.3 Service Mesh项目Linkerd …… 60
3.3.1 Linkerd演进 …… 60
3.3.2 Linkerd路由机制 …… 62
3.3.3 Linkerd 2.0核心架构 …… 63
3.4 Service Mesh项目Istio …… 64
3.4.1 Envoy …… 64
3.4.2 Istio …… 66
3.5 Service Mesh其他解决方案 …… 67
3.5.1 国外其他Service Mesh项目 …… 67
3.5.2 Service Mesh在中国的发展 …… 68
3.6 Service Mesh云上产品 …… 69
3.6.1 AWS App Mesh …… 69
3.6.2 Azure Service Fabric Mesh …… 69
3.6.3 Google Cloud Service Mesh …… 70
3.6.4 SuperGloo …… 70
3.7 Service Mesh标准化 …… 71
3.8 本章小结 …… 71
第二篇 架 构 篇
第4章 Envoy架构剖析 …… 74
4.1 Envoy整体架构 …… 74
4.2 Envoy网络模型 …… 78
4.3 Envoy扩展模型 …… 84
4.4 Envoy数据平面API …… 88
4.5 Envoy启动管理 …… 91
4.6 Envoy与Nginx架构层面的对比 …… 95
4.7 本章小结 …… 100
第5章 Istio架构剖析 …… 101
5.1 Istio整体架构 …… 101
5.2 Istio的Kubernetes基础 …… 104
5.3 Istio流量控制模型 …… 112
5.4 Mixer模型 …… 118
5.5 Istio安全 …… 122
5.6 Istio配置处理框架 …… 124
5.7 本章小结 …… 125
第6章 Istio控制流设计 …… 126
6.1 Envoy生命周期管理 …… 126
6.2 Istio配置变更管理 …… 133
6.3 控制平面和数据平面的XDS交互 …… 138
6.4 XDS配置生成 …… 143
6.5 XDS配置的Envoy处理 …… 149
6.6 本章小结 …… 155
第7章 Istio数据流设计 …… 156
7.1 Iptables …… 156
7.2 监听管理 …… 158
7.3 连接管理 …… 160
7.4 网络I/O和缓冲区管理 …… 162
7.5 Thrift协议处理 …… 164
7.6 HTTP请求处理 …… 168
7.7 本章小结 …… 182
第8章 Istio微服务治理 …… 183
8.1 链路稳定性治理 …… 183
8.2 链路可观测性 …… 190
8.3 本章小结 …… 200
第9章 Service Mesh架构的工程化设计 …… 201
9.1 复用和解耦 …… 201
9.2 架构扩展机制 …… 203
9.3 性能设计 …… 204
9.4 架构设计的权衡 …… 206
9.5 API和SDK设计 …… 207
9.6 配置管理 …… 208
9.7 本章小结 …… 210
第10章 Service Mesh与云原生架构 …… 211
10.1 Service Mesh和Serverless …… 211
10.2 东西向和南北向通信的统一 …… 215
10.3 云原生时代的Service Mesh …… 216
10.4 Service Mesh现状和展望 …… 217
10.5 本章小结 …… 218
附录 Service Mesh迁移的要点与原则 …… 219