雲原生測試實戰

孫高飛

  • 出版商: 人民郵電
  • 出版日期: 2023-10-01
  • 售價: $479
  • 貴賓價: 9.5$455
  • 語言: 簡體中文
  • 頁數: 252
  • ISBN: 7115618739
  • ISBN-13: 9787115618733
  • 相關分類: DockerKubernetes雲端運算
  • 立即出貨

  • 雲原生測試實戰-preview-1
  • 雲原生測試實戰-preview-2
雲原生測試實戰-preview-1

買這商品的人也買了...

商品描述

本書用通俗易懂的語言介紹雲原生理論基礎,用豐富的實際案例還原雲原生測試場景,是一本專註於講述雲原生測試的實戰圖書。本書共 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