混沌工程是一种有意的实验实践,旨在发现系统性问题。在本书中,我们将探讨为什么、何时以及如何应用混沌工程来改善你的计算机系统。你将学习通过一系列模拟真实故障的测试来运行应用程序和基础设施。通过学习像混沌工程师一样思考,以及学习设计适当的实验来确保软件的可靠性,你将掌握混沌工程的理论与技术,并将其应用于实际的系统中。
第1章 进入混沌工程的世界 1
1.1 什么是混沌工程 2
1.2 混沌工程的动机 3
1.3 混沌工程的四个步骤 5
1.4 什么不是混沌工程 10
1.5 初识混沌工程 11
第2章 来碗混沌与爆炸半径 17
2.1 设置使用本书中的代码 17
2.2 场景 18
2.3 Linux取
2.4 个混沌实验 25
2.5 爆炸半径 31
2.6 深入挖掘 33
第3章 可观测性 38
3.1 应用程序运行缓慢 39
3.2 USE方法 39
3.3 资源 41
3.4 应用程序 67
3.5 自动化:使用时序数据库 71
3.6 延伸阅读 74
第4章 数据库故障和生产环境中的测试 76
4.1 我们在做WordPress 76
4.2 弱点 78
4.3 在生产环境中测试 88
第二部分 混沌工程实战
第5章 剖析Docker 93
5.1 我的(Docker化的)应用程序运行缓慢 94
5.2 Docker简史 95
5.3 Linux容器和Docker 99
5.4 Docker原理 102
5.5 实验2:终止其他PID命名空间中的进程 116
5.6 实验3:使用你能找到的所有CPU 126
5.7 实验4:使用过多内存 128
第 3 部分:cgroups 130
5.8 Docker和网络 133
5.9 Docker揭秘 140
5.10 修复我的(Docker化的)应用程序运行缓慢的问题 141
5.11 实验5:使用Pumba让容器的网络变慢 143
5.12 其他主题 147
第6章 你要调用谁?系统调用破坏者 150
6.1 场景:恭喜你升职了 150
6.2 简单回顾系统调用 153
6.3 如何观测进程的系统调用 158
6.4 为乐趣和收益阻塞系统调用
6.5 为乐趣和收益阻塞系统调用
第7章 JVM故障注入 178
7.1 场景 178
7.2 混沌工程和Java 180
7.3 已有的工具 196
7.4 延伸阅读 200
第8章 应用级故障注入 202
8.1 场景 202
8.2 实验1:Redis延迟 208
8.3 实验2:失败的请求 213
8.4 应用程序与基础设施 216
第9章 我的浏览器中有一只“猴子” 218
9.1 场景 218
9.2 实验1:增加延迟 222
9.3 实验2:添加故障 227
9.4 其他好知道的话题 229
第三部分 Kubernetes中的混沌工程
第10章 Kubernetes中的混沌 235
10.1 将东西移植到Kubernetes 236
10.2 Kubernetes是什么 238
10.3 搭建Kubernetes集群 241
10.4 测试运行在Kubernetes上的
第11章 自动化Kubernetes实验 268
11.1 使用PowerfulSeal自动化混沌 268
11.2 持续测试和服务水准目标 276
11.3 云层 282
第12章 Kubernetes底层工作原理 287
12.1 Kubernetes集群剖析以及如何破坏它 287
12.2 关键组件总结 304
第13章 混沌工程与人 305
13.1 混沌工程思维 305
13.2 获得支持 308
13.3 将团队当成分布式系统 310
附录
点击下载