云原生時代的可觀測系統(tǒng)最佳實戰(zhàn)
定 價:108 元
- 作者:羅夢婷
- 出版時間:2023/9/1
- ISBN:9787121460456
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP393.027
- 頁碼:320
- 紙張:
- 版次:01
- 開本:16開
在云原生時代,可觀測性覆蓋了應用的全生命周期,是云原生應用必備的工具之一。 本書基于筆者多年的云原生可觀測性實踐經驗,從可觀測系統(tǒng)的演進和基礎理論開始介紹,結合案例對可觀測系統(tǒng)的開源架構、日志、鏈路、監(jiān)控、事件和診斷等關鍵要素的系統(tǒng)設計方案及問題解決思路進行闡述,幫助讀者了解在業(yè)務實踐中可觀測性對云原生應用有哪些巨大助力。 本書適合云原生應用開發(fā)人員、架構師、運維人員、測試人員,以及云計算相關從業(yè)人員閱讀。
羅夢婷,畢業(yè)于廣東海洋大學電子信息工程專業(yè),先后任職于九聯、華潤、騰訊等大型企業(yè),參與騰訊云微服務平臺的核心研發(fā)工作,擔任可觀測系統(tǒng)技術負責人,在云原生、物聯網及AI等技術領域具有成熟的架構設計經驗,先后主導過多個大型產業(yè)數字化項目的落地。蒲實,畢業(yè)于復旦大學軟件學院,目前就職于騰訊,負責騰訊云微服務平臺TSF可觀測性相關產品功能的研發(fā),在可觀測性、微服務等技術領域具有豐富的實戰(zhàn)經驗,致力于打造高穩(wěn)定性、高可用性的云原生可觀測性產品。
第1章 可觀測性概述 1
1.1 可觀測系統(tǒng)的演進 1
1.1.1 系統(tǒng)架構的演進 1
1.1.2 可觀測性和監(jiān)控的關系 6
1.1.3 可觀測性技術的現狀 13
1.2 可觀測性數據 20
1.2.1 可觀測性數據的類型 20
1.2.2 實戰(zhàn)場景下運維人員觀測的數據 24
1.2.3 實戰(zhàn)場景下研發(fā)人員觀測的數據 27
1.3 可觀測性技術的價值 29
1.3.1 發(fā)現系統(tǒng)故障 30
1.3.2 預測系統(tǒng)故障和容量 31
1.3.3 提供事故分析報告 33
1.3.4 預測變更的影響 35
第2章 系統(tǒng)架構 38
2.1 架構設計的基本原則 38
2.1.1 統(tǒng)一的數據語義 39
2.1.2 統(tǒng)一的數據處理平臺 46
2.1.3 統(tǒng)一的可視化系統(tǒng) 48
2.2 平臺基礎架構設計實戰(zhàn) 53
2.2.1 實戰(zhàn)一:基于開源Grafana+Prometheus+Tempo+Loki的解決方案 53
2.2.2 實戰(zhàn)二:基于開源Elastic Stack的解決方案 71
2.2.3 實戰(zhàn)三:開源架構優(yōu)化之解決大規(guī)模數據計算問題 81
第3章 日志系統(tǒng)實戰(zhàn) 91
3.1 日志模型的設計 91
3.2 日志系統(tǒng)的選型實戰(zhàn) 95
3.2.1 全文檢索的首選:Elasticsearch實戰(zhàn) 95
3.2.2 新生代列式存儲:ClickHouse實戰(zhàn) 101
3.3 Elasticsearch調優(yōu)實戰(zhàn)指南 104
3.3.1 實戰(zhàn)一:Elasticsearch索引模塊及配置Index、Shard、Segment 105
3.3.2 實戰(zhàn)二:合理使用Elasticsearch數據字段,配置pipeline和mapping 113
3.3.3 實戰(zhàn)三:在大規(guī)模系統(tǒng)中選擇字段存儲方式 121
3.3.4 實戰(zhàn)四:PB級別數據量場景下的Elasticsearch調優(yōu) 126
3.3.5 實戰(zhàn)五:降本增效,預測Elasticsearch集群的規(guī)模并控制成本 130
第4章 鏈路追蹤系統(tǒng)實戰(zhàn) 135
4.1 設計鏈路追蹤模型 135
4.1.1 鏈路追蹤的發(fā)展歷程 135
4.1.2 Span語義規(guī)范 138
4.2 系統(tǒng)選型實戰(zhàn) 141
4.2.1 OpenTelemetry調用鏈實戰(zhàn) 141
4.2.2 Spring Cloud Sleuth實戰(zhàn) 157
4.2.3 Istio實戰(zhàn) 169
4.2.4 Filebeat采集方案實戰(zhàn) 172
4.2.5 Elasticsearch存儲實戰(zhàn) 176
4.3 鏈路追蹤系統(tǒng)實戰(zhàn)場景 181
4.3.1 實戰(zhàn)一:頭采、尾采、單元采樣的區(qū)別與技術難點 181
4.3.2 實戰(zhàn)二:在萬億級調用量下應如何自適應采樣 185
4.3.3 實戰(zhàn)三:陳舊系統(tǒng)如何接入全鏈路追蹤系統(tǒng) 188
第5章 指標系統(tǒng)實戰(zhàn) 193
5.1 指標采集模型的設計 193
5.1.1 指標數據的分類 193
5.1.2 指標數據的語義規(guī)范 197
5.2 系統(tǒng)選型實戰(zhàn) 200
5.2.1 OpenTelemetry指標監(jiān)控實戰(zhàn) 200
5.2.2 Spring Boot Actuator監(jiān)控實戰(zhàn) 216
5.2.3 自研指標監(jiān)控實戰(zhàn) 226
5.2.4 內核監(jiān)控之eBPF實戰(zhàn) 231
5.3 指標系統(tǒng)實戰(zhàn)場景 238
5.3.1 實戰(zhàn)一:如何保證海量數據上報的實時性和完整性 238
5.3.2 實戰(zhàn)二:當陷入告警風暴時應該如何實現告警降噪 240
5.3.3 實戰(zhàn)三:使用Filebeat采集指標數據,如何在服務端去重 244
第6章 事件中心實戰(zhàn) 251
6.1 事件中心的設計 251
6.1.1 事件驅動架構概述 251
6.1.2 事件模型的設計 254
6.1.3 事件中心的設計及實戰(zhàn) 256
6.2 高可用事件中心實戰(zhàn) 258
第7章 Profile診斷實戰(zhàn) 261
7.1 線上分析工具 261
7.1.1 JDK原生工具 261
7.1.2 Java線上診斷工具 266
7.1.3 網絡請求分析工具Wireshark 272
7.2 線上問題實時分析實戰(zhàn) 275
7.2.1 實戰(zhàn)一:當線上業(yè)務內存溢出時如何定位 276
7.2.2 實戰(zhàn)二:當線上業(yè)務CPU的使用率較高時如何定位 281
7.2.3 實戰(zhàn)三:當線上業(yè)務I/O異常時如何定位 283
7.2.4 實戰(zhàn)四:當接口請求響應變慢時應如何定位 285
7.3 線上問題處理流程實戰(zhàn) 286
第8章 可觀測性的探索 289
8.1 DevOps與可觀測性 289
8.1.1 服務依賴關系 289
8.1.2 了解新版本的變化 293
8.1.3 全鏈路壓力測試不可或缺的可觀測性 296
8.1.4 利用混沌工程及時發(fā)現問題 298
8.2 AIOps與可觀測性 302
8.2.1 如何選擇合適的數據和算法 303
8.2.2 企業(yè)級場景下AIOps落地的難點與經驗 306