如何阅读本书
因为本书介绍的技术复杂度较高,所以建议对云原生及其基础技术了解较浅的读者先仔细阅读前3章的内容,已经对云原生及其基础技术有较深理解的读者可以跳过此部分内容。下面对每章具体的内容进行介绍。
第1章主要介绍云原生的概念,通过容器、声明式API等关键技术来讲解云原生架构与传统架构的区别,同时介绍在云原生架构中都有哪些重点的测试挑战。
第2章主要讲解容器技术的基础,着重介绍Linux名字空间对容器隔离起到的重要作用,并探讨Docker的底层原理。本书后续章节的内容以第2章的知识为基础。
第3章主要讲解Kubernetes的基础,从对集群搭建的讲解到对各个常用对象的详细介绍,再到对定制化开发内容的讲述,都为后续的测试场景打下坚实的基础。
第4章主要讲解在Kubernetes中实施混沌工程的内容,详细介绍高可用测试的理论知识和实践方法,讲解Chaos Mesh、jvm-sandbox等开源工具的原理和使用方法,并且演示如何通过Kubernetes客户端定制化开发故障工具。
第5章主要讲解在Kubernetes中实施性能测试与使用Prometheus搭建监控系统的相关内容,分别介绍根据PromQL(Prometheus提供的查询语言)定制化开发监控系统,通过虚拟节点测试Kubernetes集群自身性能,以及分布式压力测试工具JMeter,尤其详细地介绍容量测试在云原生领域的特殊之处。
第6章主要讲解在Kubernetes中实施稳定性测试的方法以及对应监控系统的开发,并且会介绍如何利用Kubernetes客户端开发一种与Prometheus完全不同的监控组件,该组件可以感知Kubernetes集群内的瞬时异常并抓取对应的错误信息。
第7章主要讲解Kubernetes与边缘计算相结合的测试场景,以开源项目SuperEdge为例详细讲解边缘计算的各种场景及其对应的测试方案。
第8章主要讲解Kubernetes与持续集成和持续部署相结合的各种测试场景,以Jenkins为例讲解各种场景的流水线设计。
第9章主要讲解Kubernetes与大数据技术相结合的测试场景,以Spark和Flink为例分别介绍批处理场景与流计算场景下的测试方案,并详细介绍如何开发一个支持多种数据源、数据规模、数据格式的大规模的造数工具。
本书的内容偏向场景实战而非理论研究,所以强烈建议大家阅读本书时,可以在一个真实的Kubernetes集群中反复练习,使用minikube(入门学习场景下的简易单节点集群)这类非标准Kubernetes集群可能会遇到不可预知的问题。