掌握分布式跟蹤:微服務(wù)和復(fù)雜系統(tǒng)性能分析
-
>
決戰(zhàn)行測5000題(言語理解與表達(dá))
-
>
軟件性能測試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈1DVD.含語音視頻教學(xué)+辦公模板+PDF電子書)
掌握分布式跟蹤:微服務(wù)和復(fù)雜系統(tǒng)性能分析 版權(quán)信息
- ISBN:9787121386824
- 條形碼:9787121386824 ; 978-7-121-38682-4
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
掌握分布式跟蹤:微服務(wù)和復(fù)雜系統(tǒng)性能分析 本書特色
適讀人群 :對分布式跟蹤知之甚少的初學(xué)者,希望擴(kuò)展知識并從其跟蹤平臺中獲取更多價(jià)值的積極實(shí)踐者。谷歌(Google)和亞馬遜(Amazon)等互聯(lián)網(wǎng)巨頭的崛起,開啟了分布式系統(tǒng)在多個(gè)數(shù)據(jù)中心的數(shù)千個(gè)節(jié)點(diǎn)上運(yùn)行的新時(shí)代。微服務(wù)則常常以指數(shù)級的規(guī)模增加了這種復(fù)雜性。調(diào)試這些系統(tǒng)、跟蹤故障、檢測瓶頸,甚至僅僅了解正在發(fā)生的事情都會變得更加困難。分布式跟蹤專注于解決復(fù)雜分布式系統(tǒng)的這些問題。如今,分布式跟蹤標(biāo)準(zhǔn)已經(jīng)建立起來,我們有了更快的系統(tǒng),使埋點(diǎn)變得不那么具有侵入性,數(shù)據(jù)變得更有價(jià)值。 Jaeger是一個(gè)流行的開源分布式跟蹤系統(tǒng),其創(chuàng)始人Yuri Shkuro在《掌握分布式跟蹤:微服務(wù)和復(fù)雜系統(tǒng)性能分析》這本書中對其進(jìn)行了全方位的講述,包括回顧分布式跟蹤的歷史和理論基礎(chǔ);通過使用OpenTracing、W3C Trace Context和OpenCensus等開放標(biāo)準(zhǔn)提供的代碼埋點(diǎn)技術(shù),解決數(shù)據(jù)收集問題,并討論了分布式跟蹤基礎(chǔ)設(shè)施的應(yīng)用及其對理解和分析復(fù)雜系統(tǒng)帶來的好處。 你將學(xué)到的東西: ■ 如何開始使用分布式跟蹤系統(tǒng) ■ 如何從端到端跟蹤中獲得極限價(jià)值 ■ 了解該領(lǐng)域的開放標(biāo)準(zhǔn) ■ 了解代碼埋點(diǎn)和操作跟蹤基礎(chǔ)設(shè)施 ■ 了解分布式跟蹤在何處適合作為微服務(wù)的核心功能
掌握分布式跟蹤:微服務(wù)和復(fù)雜系統(tǒng)性能分析 內(nèi)容簡介
本書是作者基于其在Uber跟蹤團(tuán)隊(duì)擔(dān)任技術(shù)主管時(shí)的個(gè)人經(jīng)歷而寫的。本書分4部分共14章,內(nèi)容包括:為什么需要分布式跟蹤、跟蹤一次HotROD之旅、分布式跟蹤基礎(chǔ)、OpenTracing的埋點(diǎn)基礎(chǔ)、異步應(yīng)用程序埋點(diǎn)、跟蹤標(biāo)準(zhǔn)與生態(tài)系統(tǒng)、使用服務(wù)網(wǎng)格進(jìn)行跟蹤、關(guān)于采樣、跟蹤的價(jià)值、分布式上下文傳播、集成指標(biāo)與日志、通過數(shù)據(jù)挖掘提煉洞見、在大型組織中實(shí)施跟蹤、分布式跟蹤系統(tǒng)的底層架構(gòu)。希望讀者能通過本書了解分布式跟蹤及其相關(guān)應(yīng)用的基本原則和設(shè)計(jì)思路,從而找到將其應(yīng)用到自己的項(xiàng)目和系統(tǒng)中的有效方法。本書的目標(biāo)讀者包括應(yīng)用程序開發(fā)人員、SRE工程師、DevOps工程師、框架和基礎(chǔ)設(shè)施開發(fā)人員、技術(shù)經(jīng)理和管理人員、跟蹤團(tuán)隊(duì)等。
掌握分布式跟蹤:微服務(wù)和復(fù)雜系統(tǒng)性能分析 目錄
I 引言 1
1 為什么需要分布式跟蹤 2
微服務(wù)與云原生應(yīng)用程序 3
什么是可觀測性 5
微服務(wù)的可觀測性挑戰(zhàn) 7
傳統(tǒng)的監(jiān)控工具 9
指標(biāo) 10
日志 11
分布式跟蹤 12
我在跟蹤領(lǐng)域的經(jīng)歷 14
為何編寫本書 17
總結(jié) 18
參考資料 19
2 跟蹤一次HotROD之旅 20
先決條件 21
從預(yù)打包的二進(jìn)制文件運(yùn)行 21
從Docker鏡像運(yùn)行 22
從源代碼運(yùn)行 22
啟動(dòng)Jaeger 24
初識HotROD 26
架構(gòu) 29
數(shù)據(jù)流 30
上下文日志 32
span標(biāo)記與日志 35
確定延遲的來源 37
資源使用屬性 50
總結(jié) 53
參考資料 54
3 分布式跟蹤基礎(chǔ) 55
想法 56
請求相關(guān)性 56
黑盒推理 57
特定于域的模式 57
元數(shù)據(jù)傳播 57
剖析分布式跟蹤 59
采樣 60
保留因果關(guān)系 60
請求間因果關(guān)系 62
跟蹤模型 63
事件模型 63
span模型 65
時(shí)鐘偏差調(diào)整 67
跟蹤分析 69
總結(jié) 70
參考資料 70
Ⅱ 數(shù)據(jù)收集問題 73
4 OpenTracing的埋點(diǎn)基礎(chǔ) 74
先決條件 76
項(xiàng)目源代碼 76
Go開發(fā)環(huán)境 77
Java開發(fā)環(huán)境 78
Python開發(fā)環(huán)境 78
MySQL數(shù)據(jù)庫 78
查詢工具(curl或wget) 79
跟蹤后端(Jaeger) 79
OpenTracing 80
練習(xí)1:Hello應(yīng)用程序 83
用Go語言實(shí)現(xiàn)Hello應(yīng)用程序 84
用Java語言實(shí)現(xiàn)Hello應(yīng)用程序 88
用Python語言實(shí)現(xiàn)Hello應(yīng)用程序 92
練習(xí)總結(jié) 94
練習(xí)2:**個(gè)跟蹤 94
步驟1:創(chuàng)建跟蹤器實(shí)例 94
步驟2:啟動(dòng)span 99
步驟3:注釋span 102
練習(xí)總結(jié) 107
練習(xí)3:跟蹤函數(shù)和傳遞上下文 108
步驟1:跟蹤單個(gè)函數(shù) 109
步驟2:將多個(gè)span合并為一個(gè)跟蹤 111
步驟3:傳播進(jìn)程內(nèi)上下文 115
練習(xí)總結(jié) 123
練習(xí)4:跟蹤RPC請求 124
步驟1:拆解單體 124
步驟2:在進(jìn)程之間傳遞上下文 127
步驟3:應(yīng)用OpenTracing推薦的標(biāo)記 136
練習(xí)總結(jié) 141
練習(xí)5:使用baggage 141
在Go中使用baggage 142
在Java中使用baggage 142
在Python中使用baggage 143
練習(xí)總結(jié) 143
練習(xí)6:自動(dòng)埋點(diǎn) 143
Go中的開源埋點(diǎn) 144
Java中的自動(dòng)埋點(diǎn) 146
Python中的自動(dòng)埋點(diǎn) 148
練習(xí)7:額外練習(xí) 151
總結(jié) 151
參考資料 152
5 異步應(yīng)用程序埋點(diǎn) 153
先決條件 154
項(xiàng)目源代碼 154
Java 開發(fā)環(huán)境 155
Kafka、ZooKeeper、Redis與Jaeger 155
Tracing Talk聊天應(yīng)用程序 156
實(shí)現(xiàn) 158
運(yùn)行應(yīng)用程序 162
觀察跟蹤 163
使用OpenTracing埋點(diǎn) 166
Spring埋點(diǎn) 167
tracer resolver 167
Redis埋點(diǎn) 168
Kafka埋點(diǎn) 170
埋點(diǎn)異步代碼 178
總結(jié) 183
參考資料 183
6 跟蹤標(biāo)準(zhǔn)與生態(tài)系統(tǒng) 184
埋點(diǎn)形式 185
分析跟蹤部署和互操作性 188
跟蹤的五種含義 190
了解受眾 192
生態(tài)系統(tǒng) 193
跟蹤系統(tǒng) 193
X-Ray、Stackdriver等 194
標(biāo)準(zhǔn)項(xiàng)目 194
總結(jié) 200
參考資料 201
7 使用服務(wù)網(wǎng)格進(jìn)行跟蹤 202
服務(wù)網(wǎng)格 203
服務(wù)網(wǎng)格的可觀測性 206
先決條件 207
項(xiàng)目源代碼 207
Java開發(fā)環(huán)境 208
Kubernetes 208
Istio 208
Hello應(yīng)用程序 210
使用Istio進(jìn)行分布式跟蹤 213
使用Istio生成服務(wù)圖 223
分布式上下文和路由 225
總結(jié) 228
參考資料 228
8 關(guān)于采樣 230
基于頭部的一致性采樣 231
概率采樣 231
速率限制采樣 232
保證吞吐量的概率采樣 234
自適應(yīng)采樣 235
上下文敏感的采樣 244
實(shí)時(shí)采樣或調(diào)試采樣 244
如何處理過采樣 247
基于尾部的一致性采樣 249
部分采樣 253
總結(jié) 253
參考資料 253
Ⅲ 從跟蹤中獲取價(jià)值 255
9 跟蹤的價(jià)值 256
作為知識庫的跟蹤 257
服務(wù)圖 257
深度,路徑感知服務(wù)圖 259
檢測架構(gòu)問題 262
性能分析 263
關(guān)鍵路徑分析 263
識別跟蹤模式 265
范例 269
延遲直方圖 271
長期性能分析 273
總結(jié) 273
參考資料 274
10 分布式上下文傳播 275
布朗跟蹤平面 276
Pivot Tracing 280
混沌工程 283
流量標(biāo)記 285
生產(chǎn)環(huán)境測試 286
生產(chǎn)環(huán)境調(diào)試 287
在生產(chǎn)環(huán)境中進(jìn)行開發(fā) 288
總結(jié) 289
參考資料 289
11 集成指標(biāo)與日志 291
可觀測性的三大支柱 292
先決條件 294
項(xiàng)目源代碼 294
Java開發(fā)環(huán)境 295
在Docker中運(yùn)行服務(wù)器 295
在Kibana中聲明索引模式 296
運(yùn)行客戶端 297
Hello應(yīng)用程序 298
與指標(biāo)集成 299
通過跟蹤埋點(diǎn)實(shí)現(xiàn)標(biāo)準(zhǔn)指標(biāo) 299
向標(biāo)準(zhǔn)指標(biāo)中添加上下文 303
上下文感知的指標(biāo)API 308
與日志集成 309
結(jié)構(gòu)化日志記錄 309
將日志與跟蹤上下文關(guān)聯(lián)起來 311
上下文感知的日志API 316
在跟蹤系統(tǒng)中捕獲日志 316
是否需要單獨(dú)的日志記錄和跟蹤后端 318
總結(jié) 319
參考資料 320
12 通過數(shù)據(jù)挖掘提煉洞見 321
特征提取 322
數(shù)據(jù)挖掘管道的組件 323
跟蹤后端 324
跟蹤完成觸發(fā)器 324
特征提取器 325
聚合器 326
特征提取練習(xí) 326
先決條件 328
項(xiàng)目源代碼 328
在Docker中運(yùn)行服務(wù)器 329
在Elasticsearch中定義索引映射 330
Java開發(fā)環(huán)境 331
微服務(wù)模擬器 331
在Kibana中定義索引模式 334
span計(jì)數(shù)作業(yè) 336
跟蹤完成觸發(fā)器 338
特征提取器 340
觀測趨勢 341
謹(jǐn)防推斷 349
歷史分析 350
實(shí)時(shí)分析 350
總結(jié) 353
參考資料 353
Ⅳ 部署和維護(hù)跟蹤基礎(chǔ)設(shè)施 355
13 在大型組織中實(shí)施跟蹤 356
為什么很難部署跟蹤埋點(diǎn) 357
減少采用障礙 358
標(biāo)準(zhǔn)框架 359
內(nèi)部適配器庫 360
默認(rèn)啟用跟蹤 361
monorepo 361
與現(xiàn)有的基礎(chǔ)設(shè)施集成 362
從哪里開始 362
構(gòu)建文化 364
解釋價(jià)值 364
與開發(fā)人員工作流集成 365
跟蹤質(zhì)量指標(biāo) 366
故障排除指南 369
跳出關(guān)鍵路徑 369
總結(jié) 369
參考資料 370
14 分布式跟蹤系統(tǒng)的底層架構(gòu) 371
為什么需要自己“造輪子” 372
定制和集成 372
帶寬成本 372
把控?cái)?shù)據(jù) 373
押注新興標(biāo)準(zhǔn) 373
架構(gòu)和部署模式 374
基本架構(gòu):代理+收集器+查詢服務(wù) 374
流式架構(gòu) 377
多租戶 378
安全 381
在多個(gè)數(shù)據(jù)中心運(yùn)行 382
監(jiān)控和故障診斷 384
彈性 386
過采樣 386
調(diào)試跟蹤 387
數(shù)據(jù)中心故障轉(zhuǎn)移導(dǎo)致的流量峰值 387
無休止的跟蹤 387
長跟蹤 388
總結(jié) 388
參考資料 388
后記 390
參考資料 393
掌握分布式跟蹤:微服務(wù)和復(fù)雜系統(tǒng)性能分析 作者簡介
Yuri Shkuro是Uber的軟件工程師,專注于分布式跟蹤、可觀察性、可靠性和性能領(lǐng)域的研究。他是Uber 跟蹤團(tuán)隊(duì)的技術(shù)負(fù)責(zé)人。在加入U(xiǎn)ber之前,Yuri曾在華爾街工作了15年,為頂級投資銀行、高盛、摩根大通和摩根士丹利的衍生業(yè)務(wù)構(gòu)建了交易和風(fēng)險(xiǎn)管理系統(tǒng)。Yuri在開源社區(qū)中的貢獻(xiàn)包括,成為OpenTracing項(xiàng)目的聯(lián)合創(chuàng)始人,以及Jaeger(Uber開發(fā)的分布式跟蹤平臺)的創(chuàng)建者和技術(shù)領(lǐng)導(dǎo)者。以上兩個(gè)項(xiàng)目都基于云原生技術(shù)基金會(CNCF,Cloud Native Computing Foundation)。Yuri也是W3C分布式跟蹤工作組的特邀專家。 馮文輝,現(xiàn)任ThoughtWorks中國區(qū)資深架構(gòu)咨詢師,具有十四年的軟件行業(yè)經(jīng)驗(yàn),曾服務(wù)于多個(gè)世界500強(qiáng)企業(yè),覆蓋銀行、保險(xiǎn)、通信、汽車、物流等行業(yè)。為客戶提供敏捷開發(fā)、DevOps、架構(gòu)設(shè)計(jì)與數(shù)字化轉(zhuǎn)型等咨詢服務(wù)。熱衷于探索更好的架構(gòu)設(shè)計(jì)方法,助力企業(yè)的數(shù)字化轉(zhuǎn)型。譯有《SRE生存指南:系統(tǒng)中斷響應(yīng)與正常運(yùn)行時(shí)間**化》。
- >
有舍有得是人生
- >
中國歷史的瞬間
- >
龍榆生:詞曲概論/大家小書
- >
煙與鏡
- >
回憶愛瑪儂
- >
自卑與超越
- >
月亮與六便士
- >
隨園食單