云原生测试实战

云原生测试实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2023-10
版次: 1
ISBN: 9787115618733
定价: 79.80
装帧: 平装
页数: 252页
字数: 384千字
2人买过
  • 本书用通俗易懂的语言介绍云原生理论基础,用丰富的实际案例还原云原生测试场景,是一本专注于讲述云原生测试的实战图书。本书共 9 章,第 1 章至第 3 章主要介绍云原生基础,包括云原生的概念和相关测试挑战,Docker 的核心能力和测试场景,Kubernetes 的集群搭建、常用对象和定制化开发等内容;第 4 章至第 6 章主要介绍云原生测试场景,包括在 Kubernetes 中实施混沌工程、性能测试、稳定性测试,使用 Prometheus搭建监控系统等内容;第 7 章至第 9 章主要介绍云原生与其他领域的结合,包括边缘计算、CI/CD 和大数据技术与 Kubernetes 结合的测试场景及对应的测试方案。 孙高飞

    腾讯优图实验室资深测试开发工程师,专注人工智能与云原生领域的测试实践,曾就职于第四范式。TesterHome社区专栏作者,并作为社区管理员参与组织过多场中国互联网测试开发大会(MTSC),是MTSC2023技术委员会成员。 第 1 章 认识云原生                    1

    1.1 什么是云原生                   1

    1.2 云原生的测试挑战               3

    1.3 本章总结                       4

    第 2 章 容器技术基础                  5

    2.1 构建浏览器集群                 5

    2.1.1 Selenium Grid             5

    2.1.2 Docker 部署 Selenium Grid  6

    2.1.3 小结                    8

    2.2 容器隔离的原理                 9

    2.2.1 隔离                    9

    2.2.2 Linux 名字空间         10

    2.2.3 小结                   13

    2.3 网络模式                      13

    2.3.1 bridge 网络模式          13

    2.3.2 host 网络模式            16

    2.3.3 container 网络模式       17

    2.3.4 小结                   18

    2.4 容器镜像                      19

    2.4.1 镜像构建               19

    2.4.2 联合文件系统           23

    2.4.3 镜像分层的优势         25

    2.4.4 镜像扫描工具的开发     26

    2.4.5 小结                   28

    2.5 本章总结                      28

    第 3 章 Kubernetes 基础                29

    3.1 深入解析 Pod                 29

    3.1.1 Pod 的架构              29

    3.1.2 Pod 的调度              31

    3.1.3 Pod 的资源管理          34

    3.1.4 小结                   37

    3.2 服务高可用设计                37

    3.2.1 高可用的常见设计      38

    3.2.2 服务副本与水平扩展    38

    3.2.3 基于 Service 的负载均衡网络                   41

    3.2.4 基于探针的健康检查    43

    3.2.5 小结                   46

    3.3 再谈镜像扫描工具              50

    3.3.1 DaemonSet 定义         50

    3.3.2 DaemonSet 与 Headless Service          51

    3.3.3 在容器中调用 Docker      52

    3.3.4 小结                   52

    3.4 离线业务                      52

    3.4.1 Job                     52

    3.4.2 CronJob                 54

    3.4.3 小结                   54

    3.5 K8s 开发基础                55

    3.5.1 客户端的初始化        55

    3.5.2 基本 API 的使用        56

    3.5.3 资源回收工具的开发    58

    3.5.4 让工具在集群中运行-InCluster 模式和 RBAC   61

    3.5.5 解决容器时区问题      64

    3.5.6 小结                   65

    3.6 本章总结                      66

    第 4 章 混沌工程                     67

    4.1 什么是混沌工程                67

    4.2 高可用测试的理论              67

    4.2.1 幂等与重试             68

    4.2.2 状态管理               69

    4.2.3 CAP                    70

    4.2.4 BASE                 73

    4.2.5 监控告警               75

    4.2.6 小结                   75

    4.3 高可用扫描工具                75

    4.3.1 扫描规则               76

    4.3.2 代码实现               76

    4.3.3 小结                   80

    4.4 故障注入工具                  81

    4.4.1 故障注入工具的底层原理 81

    4.4.2 开源工具的选择         82

    4.4.3 Chaos Mesh 的架构        83

    4.4.4 K8s 的 Operator         84

    4.4.5 Chaos Dashboard        87

    4.4.6 chaosd-server           88

    4.4.7 sidecar 模式的故障注入  89

    4.4.8 jvm-sandbox              97

    4.4.9 故障注入的注意点      100

    4.4.10 小结                 100

    4.5 K8s 中的特殊故障           101

    4.5.1 Pod 无法被删除       101

    4.5.2 驱逐策略与抢占优先级  103

    4.5.3 K8s 核心组件故障       105

    4.5.4 小结                  107

    4.6 高可用的评估手段             107

    4.6.1 以模拟 SLA 为角度评估  107

    4.6.2 以故障场景为角度评估  109

    4.6.3 RPO 与 RTO            109

    4.6.4 小结                  110

    4.7 本章总结                     110

    第 5 章 性能测试与监控               111

    5.1 Prometheus 快速入门            112

    5.1.1 快速部署               112

    5.1.2 架构介绍               113

    5.1.3 可视化                 114

    5.1.4 小结                   116

    5.2 PromQL 详解                 116

    5.2.1 理解时间序列          117

    5.2.2 理解指标类型          117

    5.2.3 语法详解               119

    5.2.4 HTTP API              123

    5.2.5 小结                  126

    5.3 容量测试                     126

    5.3.1 超卖的风险            127

    5.3.2 资源的初步评估       128

    5.3.3 统计具体的资源       130

    5.3.4 小结                  134

    5.4 分布式压力测试工具 JMeter    134

    5.4.1 部署 JMeter 集群        135

    5.4.2 小结                  136

    5.5 测试 K8s 的性能              136

    5.5.1 测试方法              136

    5.5.2 Kubemark 简介         137

    5.5.3 Kubemark 部署         138

    5.5.4 小结                  143

    5.6 本章总结                     143

    第 6 章 稳定性测试与监控            144

    6.1 什么是稳定性测试             144

    6.2 List-Watch                  145

    6.2.1 K8s 的控制器模型       145

    6.2.2 List-Watch 简介          146

    6.2.3 小结                  148

    6.3 构建事件监控组件             149

    6.3.1 Pod 与容器的状态       149

    6.3.2 Pod 的 Condition 和 Phase 150

    6.3.3 获取异常容器          152

    6.3.4 获取异常信息          153

    6.3.5 NPD                  154

    6.3.6 小结                  157

    6.4 持续性观测                   157

    6.4.1 自定义 Exporter          157

    6.4.2 服务可用时间          164

    6.4.3 业务巡检与Pushgateway             167

    6.4.4 小结                  168

    6.5 Operator                     168

    6.5.1 什么是 Operator         169

    6.5.2 Prometheus Operator    170

    6.5.3 小结                  171

    6.6 本章总结                     171

    第 7 章 边缘计算                    172

    7.1 什么是边缘计算               172

    7.1.1 云计算的不足          172

    7.1.2 就近计算的设计        173

    7.1.3 小结                  174

    7.2 K8s 与边缘计算             174

    7.2.1 边缘自治              175

    7.2.2 分布式健康检查        176

    7.2.3 边缘调度              177

    7.2.4 就近计算              180

    7.2.5 边缘灰度              182

    7.2.6 边缘存储              184

    7.2.7 小结                  185

    7.3 核心测试场景                 185

    7.3.1 边缘计算的容量测试    186

    7.3.2 边缘计算的高可用测试  186

    7.3.3 数据通信测试          188

    7.3.4 调度测试              189

    7.3.5 小结                  190

    7.4 本章总结                     190

    第 8 章 持续集成和持续部署         191

    8.1 构建 CI/CD 系统的关键       191

    8.1.1 CI/CD 与流水线        191

    8.1.2 规模扩大带来的挑战   194

    8.1.3 高度自动化的工程能力 195

    8.1.4 小结                  196

    8.2 Jenkins 流水线               196

    8.2.1 流水线基础            197

    8.2.2 多分支流水线         200

    8.2.3 Jenkins 共享库          202

    8.2.4 小结                  207

    8.3 K8s 中的 CI/CD             207

    8.3.1 Jenkins 与 Docker       207

    8.3.2 Jenkins 与 K8s         208

    8.3.3 小结                  215

    8.4 环境治理                     215

    8.4.1 环境的隔离级别       215

    8.4.2 K8s 中的资源隔离       216

    8.4.3 在 K8s 中实现逻辑隔离 218

    8.4.4 Helm                   221

    8.4.5 小结                  223

    8.5 本章总结                     223

    第 9 章 云原生与大数据              224

    9.1 什么是大数据                 224

    9.1.1 大数据的 4 个特征     224

    9.1.2 分布式存储            225

    9.1.3 分布式计算            226

    9.1.4 批处理和流计算       226

    9.1.5 大数据生态            227

    9.1.6 小结                  228

    9.2 K8s 中的分布式计算         228

    9.2.1 K8s 中的存储           229

    9.2.2 Spark Operator         233

    9.2.3 小结                  235

    9.3 Spark 基础                   235

    9.3.1 搭建本地环境          236

    9.3.2 Spark 的运行机制      236

    9.3.3 RDD 基础              237

    9.3.4 小结                  239

    9.4 典型测试场景介绍             239

    9.4.1 shuffle 与数据倾斜      239

    9.4.2 分区对性能的影响      240

    9.4.3 多种数据源的对接      241

    9.4.4 功能测试与数据质量监控242

    9.4.5 流计算与数据一致性   243

    9.4.6 小结                  245

    9.5 造数工具                     245

    9.5.1 造数的难点与解决方案                  246

    9.5.2 代码实现              247

    9.5.3 非结构化数据的构建   250

    9.5.4 小结                  252

    9.6 本章总结                     252
  • 内容简介:
    本书用通俗易懂的语言介绍云原生理论基础,用丰富的实际案例还原云原生测试场景,是一本专注于讲述云原生测试的实战图书。本书共 9 章,第 1 章至第 3 章主要介绍云原生基础,包括云原生的概念和相关测试挑战,Docker 的核心能力和测试场景,Kubernetes 的集群搭建、常用对象和定制化开发等内容;第 4 章至第 6 章主要介绍云原生测试场景,包括在 Kubernetes 中实施混沌工程、性能测试、稳定性测试,使用 Prometheus搭建监控系统等内容;第 7 章至第 9 章主要介绍云原生与其他领域的结合,包括边缘计算、CI/CD 和大数据技术与 Kubernetes 结合的测试场景及对应的测试方案。
  • 作者简介:
    孙高飞

    腾讯优图实验室资深测试开发工程师,专注人工智能与云原生领域的测试实践,曾就职于第四范式。TesterHome社区专栏作者,并作为社区管理员参与组织过多场中国互联网测试开发大会(MTSC),是MTSC2023技术委员会成员。
  • 目录:
    第 1 章 认识云原生                    1

    1.1 什么是云原生                   1

    1.2 云原生的测试挑战               3

    1.3 本章总结                       4

    第 2 章 容器技术基础                  5

    2.1 构建浏览器集群                 5

    2.1.1 Selenium Grid             5

    2.1.2 Docker 部署 Selenium Grid  6

    2.1.3 小结                    8

    2.2 容器隔离的原理                 9

    2.2.1 隔离                    9

    2.2.2 Linux 名字空间         10

    2.2.3 小结                   13

    2.3 网络模式                      13

    2.3.1 bridge 网络模式          13

    2.3.2 host 网络模式            16

    2.3.3 container 网络模式       17

    2.3.4 小结                   18

    2.4 容器镜像                      19

    2.4.1 镜像构建               19

    2.4.2 联合文件系统           23

    2.4.3 镜像分层的优势         25

    2.4.4 镜像扫描工具的开发     26

    2.4.5 小结                   28

    2.5 本章总结                      28

    第 3 章 Kubernetes 基础                29

    3.1 深入解析 Pod                 29

    3.1.1 Pod 的架构              29

    3.1.2 Pod 的调度              31

    3.1.3 Pod 的资源管理          34

    3.1.4 小结                   37

    3.2 服务高可用设计                37

    3.2.1 高可用的常见设计      38

    3.2.2 服务副本与水平扩展    38

    3.2.3 基于 Service 的负载均衡网络                   41

    3.2.4 基于探针的健康检查    43

    3.2.5 小结                   46

    3.3 再谈镜像扫描工具              50

    3.3.1 DaemonSet 定义         50

    3.3.2 DaemonSet 与 Headless Service          51

    3.3.3 在容器中调用 Docker      52

    3.3.4 小结                   52

    3.4 离线业务                      52

    3.4.1 Job                     52

    3.4.2 CronJob                 54

    3.4.3 小结                   54

    3.5 K8s 开发基础                55

    3.5.1 客户端的初始化        55

    3.5.2 基本 API 的使用        56

    3.5.3 资源回收工具的开发    58

    3.5.4 让工具在集群中运行-InCluster 模式和 RBAC   61

    3.5.5 解决容器时区问题      64

    3.5.6 小结                   65

    3.6 本章总结                      66

    第 4 章 混沌工程                     67

    4.1 什么是混沌工程                67

    4.2 高可用测试的理论              67

    4.2.1 幂等与重试             68

    4.2.2 状态管理               69

    4.2.3 CAP                    70

    4.2.4 BASE                 73

    4.2.5 监控告警               75

    4.2.6 小结                   75

    4.3 高可用扫描工具                75

    4.3.1 扫描规则               76

    4.3.2 代码实现               76

    4.3.3 小结                   80

    4.4 故障注入工具                  81

    4.4.1 故障注入工具的底层原理 81

    4.4.2 开源工具的选择         82

    4.4.3 Chaos Mesh 的架构        83

    4.4.4 K8s 的 Operator         84

    4.4.5 Chaos Dashboard        87

    4.4.6 chaosd-server           88

    4.4.7 sidecar 模式的故障注入  89

    4.4.8 jvm-sandbox              97

    4.4.9 故障注入的注意点      100

    4.4.10 小结                 100

    4.5 K8s 中的特殊故障           101

    4.5.1 Pod 无法被删除       101

    4.5.2 驱逐策略与抢占优先级  103

    4.5.3 K8s 核心组件故障       105

    4.5.4 小结                  107

    4.6 高可用的评估手段             107

    4.6.1 以模拟 SLA 为角度评估  107

    4.6.2 以故障场景为角度评估  109

    4.6.3 RPO 与 RTO            109

    4.6.4 小结                  110

    4.7 本章总结                     110

    第 5 章 性能测试与监控               111

    5.1 Prometheus 快速入门            112

    5.1.1 快速部署               112

    5.1.2 架构介绍               113

    5.1.3 可视化                 114

    5.1.4 小结                   116

    5.2 PromQL 详解                 116

    5.2.1 理解时间序列          117

    5.2.2 理解指标类型          117

    5.2.3 语法详解               119

    5.2.4 HTTP API              123

    5.2.5 小结                  126

    5.3 容量测试                     126

    5.3.1 超卖的风险            127

    5.3.2 资源的初步评估       128

    5.3.3 统计具体的资源       130

    5.3.4 小结                  134

    5.4 分布式压力测试工具 JMeter    134

    5.4.1 部署 JMeter 集群        135

    5.4.2 小结                  136

    5.5 测试 K8s 的性能              136

    5.5.1 测试方法              136

    5.5.2 Kubemark 简介         137

    5.5.3 Kubemark 部署         138

    5.5.4 小结                  143

    5.6 本章总结                     143

    第 6 章 稳定性测试与监控            144

    6.1 什么是稳定性测试             144

    6.2 List-Watch                  145

    6.2.1 K8s 的控制器模型       145

    6.2.2 List-Watch 简介          146

    6.2.3 小结                  148

    6.3 构建事件监控组件             149

    6.3.1 Pod 与容器的状态       149

    6.3.2 Pod 的 Condition 和 Phase 150

    6.3.3 获取异常容器          152

    6.3.4 获取异常信息          153

    6.3.5 NPD                  154

    6.3.6 小结                  157

    6.4 持续性观测                   157

    6.4.1 自定义 Exporter          157

    6.4.2 服务可用时间          164

    6.4.3 业务巡检与Pushgateway             167

    6.4.4 小结                  168

    6.5 Operator                     168

    6.5.1 什么是 Operator         169

    6.5.2 Prometheus Operator    170

    6.5.3 小结                  171

    6.6 本章总结                     171

    第 7 章 边缘计算                    172

    7.1 什么是边缘计算               172

    7.1.1 云计算的不足          172

    7.1.2 就近计算的设计        173

    7.1.3 小结                  174

    7.2 K8s 与边缘计算             174

    7.2.1 边缘自治              175

    7.2.2 分布式健康检查        176

    7.2.3 边缘调度              177

    7.2.4 就近计算              180

    7.2.5 边缘灰度              182

    7.2.6 边缘存储              184

    7.2.7 小结                  185

    7.3 核心测试场景                 185

    7.3.1 边缘计算的容量测试    186

    7.3.2 边缘计算的高可用测试  186

    7.3.3 数据通信测试          188

    7.3.4 调度测试              189

    7.3.5 小结                  190

    7.4 本章总结                     190

    第 8 章 持续集成和持续部署         191

    8.1 构建 CI/CD 系统的关键       191

    8.1.1 CI/CD 与流水线        191

    8.1.2 规模扩大带来的挑战   194

    8.1.3 高度自动化的工程能力 195

    8.1.4 小结                  196

    8.2 Jenkins 流水线               196

    8.2.1 流水线基础            197

    8.2.2 多分支流水线         200

    8.2.3 Jenkins 共享库          202

    8.2.4 小结                  207

    8.3 K8s 中的 CI/CD             207

    8.3.1 Jenkins 与 Docker       207

    8.3.2 Jenkins 与 K8s         208

    8.3.3 小结                  215

    8.4 环境治理                     215

    8.4.1 环境的隔离级别       215

    8.4.2 K8s 中的资源隔离       216

    8.4.3 在 K8s 中实现逻辑隔离 218

    8.4.4 Helm                   221

    8.4.5 小结                  223

    8.5 本章总结                     223

    第 9 章 云原生与大数据              224

    9.1 什么是大数据                 224

    9.1.1 大数据的 4 个特征     224

    9.1.2 分布式存储            225

    9.1.3 分布式计算            226

    9.1.4 批处理和流计算       226

    9.1.5 大数据生态            227

    9.1.6 小结                  228

    9.2 K8s 中的分布式计算         228

    9.2.1 K8s 中的存储           229

    9.2.2 Spark Operator         233

    9.2.3 小结                  235

    9.3 Spark 基础                   235

    9.3.1 搭建本地环境          236

    9.3.2 Spark 的运行机制      236

    9.3.3 RDD 基础              237

    9.3.4 小结                  239

    9.4 典型测试场景介绍             239

    9.4.1 shuffle 与数据倾斜      239

    9.4.2 分区对性能的影响      240

    9.4.3 多种数据源的对接      241

    9.4.4 功能测试与数据质量监控242

    9.4.5 流计算与数据一致性   243

    9.4.6 小结                  245

    9.5 造数工具                     245

    9.5.1 造数的难点与解决方案                  246

    9.5.2 代码实现              247

    9.5.3 非结构化数据的构建   250

    9.5.4 小结                  252

    9.6 本章总结                     252
查看详情
12
相关图书 / 更多
云原生测试实战
云原生Kubernetes全栈架构师实战
杜宽
云原生测试实战
云原生安全技术实践指南
张福
云原生测试实战
云原生开发实践(计算机技术开发与应用丛书)
高尚衡 著
云原生测试实战
云原生安全
李学峰 编著
云原生测试实战
云原生时代的CoreDNS学习指南
[美]约翰·贝拉马里奇(John Belamaric);[美]克里凯特·刘(Cricket Liu)
云原生测试实战
云原生数据库:原理与实践
李飞飞 周烜 蔡鹏 张蓉 黄贵 著
云原生测试实战
云原生构建数字世界
丁振海 宋立桓
云原生测试实战
云原生构建:微服务、容器化与容器编排
邹炎;谢邵虎;朱明杰
云原生测试实战
云原生时代的可观测系统最佳实战
罗梦婷 蒲实 著
云原生测试实战
云原生技术中台:从分布式到云平台设计
陈涛 索海燕
云原生测试实战
云原生落地:企业级DevOps实践
应阔浩 李建宇 付天时 赵耀 著
云原生测试实战
云原生应用架构:微服务开发最佳实战
FreeWheel核心业务系统开发团队