近年来,微服务因其良好的伸缩性和灵活性备受各大巨头科技公司的青睐,微服务俨然已成为技术社区的一个热门词汇。作者Susan Fowler从她在Uber成功实施微服务的经验出发,结合其他各大公司工程师的意见和建议,制订了一组生产就绪微服务的标准。作者在《生产微服务》中不仅对这组标准的各项细节展开了深入的讨论,还提供了一个检查清单,用于帮助读者了解自己的微服务生态系统是否符合生产就绪标准。
目录
- 前言. 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