目录
前言. ................................ xii
第 1章 微服务简介. .............. 1
从单体应用到微服务 ................................................ 1
微服务架构 ........... 7
微服务生态系统 .... 9
第 1层:硬件层 .............................................. 10
第 2层:通信层 .............................................. 11
第 3层:应用平台层 ....................................... 13
第 4层:微服务层 .......................................... 15
组织的挑战 ......... 16
反康威定律.. 17
技术蔓延 ..... 18
更多失效的可能性 .......................................... 18
资源竞争 ..... 19
第 2章 生产就绪............... 21
微服务标准化的挑战 .............................................. 21
可用性:标准化的目标 ........................................... 22
生产就绪标准 ..... 23
稳定性 ......... 24
可靠性 ......... 24
伸缩性 ......... 25
容错和灾备.. 26
高性能 ......... 28
监控 ............. 28
文档化 ......... 29
实现生产就绪标准 .................................................. 31
第 3章 稳定性和可靠性. ...... 33
微服务稳定性和可靠性的原则 ............................... 33
开发周期 ............. 34
部署管道 ............. 36
staging ......... 36
canary .......... 40
生产 ............. 41
让稳定可靠的部署成为强制措施 .................... 41
服务依赖 ............. 42
路由和服务发现 .. 44
服务和端点的解除 .................................................. 44
评估你的微服务 .. 45
开发周期 ..... 45
部署管道 ..... 46
服务依赖 ..... 46
路由和服务发现 .............................................. 46
服务和端点的解除 .......................................... 46
第 4章 伸缩性和高性能. ...... 47
关于微服务伸缩性和高性能的原则 ........................ 47
了解增长规模 ..... 48
质的增长规模 .................................................. 48
量的增长规模 .................................................. 50
资源的有效利用 .. 50
资源感知 ............. 51
资源需求 ..... 51
资源瓶颈 ..... 51
容量规划 ............. 52
依赖项的伸缩 ..... 53
流量管理 ............. 54
任务处理 ............. 55
编程语言的限制 .............................................. 55
高效地处理请求任务 ....................................... 56
可伸缩的数据存储 .................................................. 56
微服务生态系统的数据库选择 ........................ 57
微服务架构在数据库方面面临的挑战............. 57
评估你的微服务 .. 58
增长规模 ..... 58
资源的有效利用 .............................................. 58
资源感知 ..... 58
容量规划 ..... 59
依赖项的伸缩 .................................................. 59
流量管理 ..... 59
任务处理 ..... 59
可伸缩的数据存储 .......................................... 59
第 5章 容错和灾备............ 61
用于构建具有容错能力微服务的原则 .................... 61
避免单点故障 ..... 62
故障场景 ............. 63
常见的生态系统故障 ....................................... 64
硬件故障 ..... 65
通信层和应用平台层的故障 ........................... 66
依赖项故障.. 68
内部故障 ..... 69
弹性测试 ............. 70
代码测试 ..... 71
负载测试 ..... 72
混沌测试 ..... 74
故障检测和修复 .. 75
事故和中断.. 76
处理事故的 5个步骤 ....................................... 78
评估你的微服务 .. 80
避免故障点.. 80
故障场景 ..... 80
弹性测试 ..... 80
故障检测和修复 .............................................. 81
第 6章 监控..................... 83
用于微服务监控的原则........................................... 83
关键性度量指标 .. 84
日志 .................... 86
仪表盘 ................. 87
告警 .................... 88
设置有效的告警 .............................................. 89
处理告警 ..... 89
轮班待命 ............. 90
评估你的微服务 .. 91
关键性度量指标 .............................................. 91
日志 ............. 91
仪表盘 ......... 91
告警 ............. 91
轮班待命 ..... 92
第 7章 文档化和理解. ......... 93
微服务文档和理解的原则 ....................................... 93
微服务文档 ......... 95
描述 ................................................................. 96
架构图 ......... 96
轮班待命信息 .................................................. 97
链接 ............. 97
开发上手指南 .................................................. 97
请求消息流、端点和依赖项 ........................... 98
运行手册 ..... 98
问答章节 ..... 99
理解微服务 ......... 99
架构评审 ... 100
生产就绪审计 ................................................ 101
生产就绪路线图 ............................................ 101
生产就绪自动化 ............................................ 102
评估你的微服务 102
微服务文档 103
微服务理解 103
附录A 生产就绪检查列表.. 105
附录B 评估你的微服务..... 107
术语表............................. 113
索引. ............................... 119