新书推荐
《 Service Mesh微服务架构设计 》
点击上图了解及购买
从设计与工程化视角分析Service Mesh微服务架构与实现,穿插大量一线实践真知灼见。
编辑推荐
资深架构师撰写,从设计与工程化视角分析Service Mesh,穿插大量一线实践真知灼见
涵盖微服务实施细则,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技术在云原生架构下的发展畅想。
作者简介
刘俊海好未来高级架构师,曾在滴滴、百度等知名互联网公司任职,超过8年C/C++开发和架构设计经验;精通服务框架和业务高可用技术,多年亿级流量环境下高并发和高可用实战经验,精通微服务架构和微服务基础设施,近期关注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.1Service Mesh基础 55
3.1.1什么是Service Mesh 55
3.1.2Service Mesh的基本模式 56
3.2Service Mesh的发展历程 58
3.3Service Mesh项目Linkerd 60
3.3.1Linkerd演进 60
3.3.2Linkerd路由机制 62
3.3.3Linkerd 2.0核心架构 63
3.4Service Mesh项目Istio 64
3.4.1Envoy 64
3.4.2Istio 66
3.5Service Mesh其他解决方案 67
3.5.1国外其他Service Mesh项目 67
3.5.2Service Mesh在中国的发展 68
3.6Service Mesh云上产品 69
3.6.1AWS App Mesh 69
3.6.2Azure Service Fabric Mesh 69
3.6.3Google Cloud Service Mesh 70
3.6.4SuperGloo 70
3.7Service Mesh标准化 71
3.8本章小结 71
第4章Envoy架构剖析 74
4.1Envoy整体架构 74
4.1.1关键设计约束 74
4.1.2设计原则 75
4.1.3整体架构 76
4.2Envoy网络模型 78
4.2.1Envoy事件调度模型 78
4.2.2Envoy线程模型 81
4.2.3线程本地存储机制 81
4.3Envoy扩展模型 84
4.3.1插件扩展机制 84
4.3.2网络相关插件 86
4.3.3其他扩展插件 88
4.4Envoy数据平面API 88
4.4.1XDS协议语义 88
4.4.2XDS协议通信 90
4.5Envoy启动管理 91
4.5.1正常启动 92
4.5.2热重启 94
4.6Envoy与Nginx架构层面的对比 95
4.6.1功能与定位 96
4.6.2网络模型 96
4.6.3连接处理 97
4.6.4插件机制 98
4.6.5配置管理 99
4.6.6内存管理 99
4.6.7部署与运维 100
4.6.8观测与诊断 100
4.7本章小结 100
第5章Istio架构剖析 101
5.1Istio整体架构 101
5.1.1数据平面组件 102
5.1.2控制平面组件 103
5.2Istio的Kubernetes基础 104
5.2.1Kubernetes综述 104
5.2.2Kubernetes网络访问模型 107
5.2.3Kubernetes API管理 110
5.2.4Istio与Kubernetes的相互关系 111
5.3Istio流量控制模型 112
5.3.1流量管理API 112
5.3.2Istio Mesh模型 116
5.4Mixer模型 118
5.4.1Mixer基本概念 119
5.4.2Mixer通用配置模型 119
5.4.3Mixer架构演进以及对性能的影响 121
5.5Istio安全 122
5.5.1Istio安全基础 122
5.5.2Istio认证架构 123
5.6Istio配置处理框架 124
5.6.1配置验证 125
5.6.2配置变更处理和分发 125
5.7本章小结 125
第6章Istio控制流设计 126
6.1Envoy生命周期管理 126
6.1.1Envoy注入 126
6.1.2Envoy启动管理 128
6.1.3Envoy配置和运行状态监控 131
6.2Istio配置变更管理 133
6.2.1通用模型和机制 133
6.2.2Kubernetes具体实现 137
6.3控制平面和数据平面的XDS交互 138
6.3.1控制平面的gRPC Server启动 139
6.3.2Envoy的XDS请求 140
6.3.3Istio XDS配置下发 140
6.3.4Envoy的XDS消息接收 143
6.4XDS配置生成 143
6.4.1可见性 143
6.4.2配置生成机制 145
6.4.3XDS配置生成实现 147
6.5XDS配置的Envoy处理 149
6.5.1XDS配置变更的判断 149
6.5.2CDS配置的延迟处理 150
6.5.3集群和节点配置处理 152
6.5.4路由配置处理 153
6.5.5监听器配置处理 153
6.6本章小结 155
第7章Istio数据流设计 156
7.1Iptables 156
7.1.1Iptables的基本原理 156
7.1.2Iptables在Istio中的使用 158
7.2监听管理 158
7.2.1监听器建立 158
7.2.2监听器和工作线程绑定 159
7.3连接管理 160
7.3.1监听器匹配 160
7.3.2协议过滤器匹配 161
7.3.3创建新连接 161
7.4网络I/O和缓冲区管理 162
7.4.1传输层数据读取 162
7.4.2插件处理 163
7.5Thrift协议处理 164
7.5.1Thrift插件的整体架构 164
7.5.2协议解析 165
7.5.3协议相关的插件机制 166
7.6HTTP请求处理 168
7.6.1HTTP请求处理流程 168
7.6.2协议解析 169
7.6.3路由管理 171
7.6.4HTTP过滤链处理 174
7.6.5负载均衡 176
7.6.6连接池实现 179
7.7本章小结 182
第8章Istio微服务治理 183
8.1链路稳定性治理 183
8.1.1超时机制 183
8.1.2重试机制和重试策略 185
8.1.3节点熔断和健康检查机制 188
8.1.4资源限制机制 189
8.1.5全局限流机制 190
8.2链路可观测性 190
8.2.1Envoy分布式跟踪支持 190
8.2.2Envoy Metric支持 194
8.2.3Envoy Log支持 198
8.3本章小结 200
第9章Service Mesh架构的工程化设计 201
9.1复用和解耦 201
9.2架构扩展机制 203
9.2.1服务注册中心插件机制 203
9.2.2Envoy Filter插件机制 203
9.3性能设计 204
9.3.1基于TLS的无锁设计 204
9.3.2多级缓存机制 205
9.3.3批量更新机制 205
9.4架构设计的权衡 206
9.5API和SDK设计 207
9.5.1声明式API设计 207
9.5.2代码自动生成机制 207
9.6配置管理 208
9.6.1基于Protobuf 3的配置Scheme描述 208
9.6.2配置动态加载机制 210
9.7本章小结 210
第10章Service Mesh与云原生架构 211
10.1Service Mesh和Serverless 211
10.1.1Serverless基础 211
10.1.2Knative 213
10.2东西向和南北向通信的统一 215
10.3云原生时代的Service Mesh 216
10.4Service Mesh现状和展望 217
10.5本章小结 218
附录Service Mesh迁移的要点与原则