第1章 服务及服务治理发展简介··· 1
1.1 IT治理与服务治理的关系··· 1
1.2 服务治理发展历史··· 2
1.2.1 单体架构及治理·· 2
1.2.2 企业SOA——EAI/ESB及治理·· 8
1.2.3 分布式服务及治理·· 17
1.2.4 微服务及治理·· 23
1.3 微服务治理的范畴··· 25
1.3.1 微服务是一种研发模式·· 25
1.3.2 微服务的架构模式及治理·· 26
1.3.3 研发治理·· 29
1.3.4 测试治理·· 32
1.3.5 运维治理·· 34
1.3.6 管理治理·· 38
第2章 微服务治理技术概述··· 44
2.1 微服务架构··· 44
2.1.1 代理模式·· 45
2.1.2 直连模式·· 46
2.1.3 边车模式·· 48
2.1.4 直连模式的架构特点·· 50
2.1.5 微服务全生命周期整体架构·· 54
2.2 服务度量··· 56
2.2.1 服务开发质量度量·· 56
2.2.2 服务测试质量度量·· 65
2.2.3 服务运维质量度量·· 68
2.2.4 服务线上性能度量·· 69
2.3 服务管控··· 79
2.3.1 微服务的内部管控·· 79
2.3.2 微服务生命周期管理·· 81
2.4 三位一体:通过度量、管控、管理实现微服务治理闭环··· 87
2.4.1 治理指标体系·· 87
2.4.2 治理度量与分析·· 91
2.4.3 通过管理将治理举措落地·· 99
2.4.4 微服务治理整体架构·· 100
第3章 通过服务度量提供治理依据··· 102
3.1 线上微服务度量核心指标及分析手段··· 102
3.1.1 点:单次请求指标采集·· 103
3.1.2 线:单服务一分钟指标叠加统计·· 104
3.1.3 面:单服务时间维度汇总统计·· 106
3.1.4 体:服务及资源指标聚合分析·· 106
3.2 服务关系维度··· 108
3.2.1 治理目标·· 108
3.2.2 服务基础视图·· 108
3.2.3 服务调用关系视图·· 111
3.3 应用关系维度··· 115
3.3.1 治理目标·· 115
3.3.2 应用调用关系视图·· 116
3.3.3 以应用为中心的运维统一视图·· 118
3.4 服务性能维度··· 119
3.4.1 治理目标·· 119
3.4.2 调用耗时分区分布统计·· 120
3.4.3 调用耗时分时分布统计·· 121
3.4.4 调用量/并发量分时分布统计·· 122
3.4.5 性能横比·· 123
3.4.6 性能纵比·· 126
3.4.7 综合性能分析·· 130
3.4.8 容量规划·· 131
3.4.9 动态阈值·· 136
3.4.10 趋势预测·· 138
3.5 服务异常维度··· 144
3.5.1 治理目标·· 145
3.5.2 实时异常报表·· 146
3.5.3 异常分布报表·· 146
3.5.4 异常列表及查询·· 149
3.5.5 故障定界定位·· 150
3.5.6 智能根因分析·· 152
3.5.7 业务异常分析·· 155
3.6 资源维度··· 157
3.6.1 治理目标·· 158
3.6.2 网络资源·· 158
3.6.3 数据库资源·· 159
3.6.4 其他资源·· 161
3.7 服务综合度量··· 161
3.7.1 服务重要性度量·· 162
3.7.2 服务健康度度量·· 163
第4章 通过服务管控实现治理闭环··· 166
4.1 分布式服务鲁棒性的架构保障··· 166
4.1.1 冗余·· 167
4.1.2 弹性伸缩·· 167
4.1.3 单点无状态·· 168
4.1.4 不可变基础设施·· 168
4.1.5 故障传导阻断·· 169
4.1.6 基础设施即代码·· 169
4.2 服务负载··· 170
4.2.1 随机策略·· 170
4.2.2 轮询策略·· 173
4.2.3 近少访问策略·· 176
4.2.4 黏滞策略·· 177
4.2.5 一致性Hash策略·· 178
4.2.6 组合策略·· 179
4.3 服务限流··· 179
4.3.1 概念·· 180
4.3.2 限流模式·· 181
4.3.3 限流的难点及注意事项·· 186
4.4 服务集群容错··· 187
4.4.1 服务集群容错的概念·· 187
4.4.2 快速失败·· 188
4.4.3 失败安全·· 189
4.4.4 失败转移·· 190
4.4.5 失败重试·· 192
4.4.6 聚合调用·· 194
4.4.7 广播调用·· 197
4.5 服务降级··· 198
4.5.1 概念·· 198
4.5.2 屏蔽降级·· 199
4.5.3 容错降级·· 200
4.5.4 Mock降级·· 202
4.5.5 熔断降级·· 203
4.5.6 延伸阅读:广义降级操作·· 206
4.6 服务授权··· 207
4.6.1 自主授权·· 207
4.6.2 注册中心授权·· 210
4.6.3 第三方服务授权·· 211
$ d& j- |) r/ p" j
4.7 服务线上生命周期管理··· 214
4.7.1 微服务的部署·· 214
4.7.2 蓝绿发布·· 219
4.7.3 灰度发布·· 220
4.8 服务线上稳定性保障··· 223
4.8.1 应急预案·· 223
4.8.2 故障演练·· 226
4.8.3 混沌工程·· 228
第5章 APM及调用链跟踪··· 236
5.1 APM及调用链发展史··· 236
5.2 调用链跟踪原理··· 238
5.2.1 Google Dapper 238
5.2.2 调用链跟踪的整体架构·· 241
5.2.3 Trace日志埋点·· 244
5.2.4 日志采集·· 248
5.2.5 日志收集·· 250
5.2.6 日志存储·· 251
5.2.7 告警·· 252
5.3 调用链跟踪实战··· 255
5.3.1 基于调用链跟踪的服务调用瓶颈分析·· 255
5.3.2 基于调用链跟踪的服务故障定界定位·· 256
5.3.3 从宏观到微观—APM的综合应用·· 258
5.3.4 调用链的聚合分析·· 261
5.3.5 深入挖掘调用链潜力:通过调用链监控业务的健康状态·· 262
5.4 APM及调用链落地策略··· 265
5.4.1 客户端插码策略·· 265
5.4.2 采样策略·· 266
5.4.3 产品选型策略·· 268
第6章 微服务架构体系的深度治理··· 270
6.1 架构治理··· 270
6.1.1 治理目标·· 271
6.1.2 微观架构治理·· 271
6.1.3 宏观架构治理·· 276
6.2 研发治理··· 284
6.2.1 治理目标·· 284
6.2.2 开发质量治理·· 284
6.2.3 测试质量治理·· 294
6.2.4 综合调测能力构建·· 300
6.3 运维治理··· 306
6.3.1 治理目标·· 307
6.3.2 多环境建设·· 307
6.3.3 通过DevOps为微服务架构提供工程能力保障·· 313
6.4 协同管理治理··· 329
6.4.1 治理目标·· 329
6.4.2 小步快跑,高频发布·· 330
6.4.3 通过数据驱动的精益看板优化协同管理·· 333
6.5 业务治理··· 345
6.5.1 治理目标·· 345
6.5.2 业务指标采集框架·· 346
6.5.3 业务指标实时监控及分析·· 347
6.5.4 风控及反欺诈·· 349
6.5.5 通过数据稽核发现分布式架构下的业务风险·· 350
第7章 构建轻量高效的指标采集能力··· 358
7.1 整体架构··· 358 java8.com
7.1.1 功能架构·· 358
7.1.2 系统架构·· 359
7.2 指标采集··· 360
7.2.1 使用API接口拦截器采集服务性能指标·· 360
7.2.2 使用DAO拦截器采集数据库访问性能日志·· 363
7.2.3 定时采集系统性能指标·· 365
7.2.4 自定义采集业务指标·· 367
7.3 日志预处理··· 371
7.3.1 日志缓存·· 371
7.3.2 指标预处理·· 373
7.3.3 定时指标发送·· 375
7.4 指标发送··· 376
7.4.1 基于Netty的NIO通道·· 376
7.4.2 消息发送·· 378
第8章 构建支持高并发的高效的指标收集及存储能力··· 379
8.1 整体架构··· 379
8.2 数据接收··· 381
8.2.1 NIO服务器·· 381
8.2.2 消息接收·· 384
8.2.3 消息处理·· 386
8.3 扩展能力··· 390
8.3.1 数据定期统计汇总·· 390
8.3.2 服务监控台·· 394
第9章 指标可视化及度量能力构建··· 395
9.1 系统架构··· 395
9.1.1 整体架构·· 395
9.1.2 技术选型·· 396
9.2 服务监控··· 399
9.2.1 服务错误TopN监控·· 399
9.2.2 业务错误TopN监控·· 401
9.2.3 性能差TopN监控·· 402
9.2.4 调用次数多TopN监控·· 404
9.2.5 总资源占用多TopN监控·· 405
9.2.6 服务调用时间纵比·· 406
9.3 DAO监控··· 408
9.3.1 错误多TopN监控·· 408
9.3.2 性能差TopN监控·· 409
9.3.3 调用次数多TopN监控·· 409
9.3.4 总资源占用TopN监控·· 410
9.4 系统监控··· 411
9.4.1 一小时系统负载变化曲线图·· 411
9.4.2 一小时JVM使用内存变化曲线图·· 412
9.4.3 系统时点指标监控·· 413
9.4.4 JVM垃圾收集统计·· 415
9.5 自定义业务监控··· 416
9.5.1 图表配置·· 416
9.5.2 图表展示 417