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