數(shù)據(jù)庫(kù)可靠性工程 數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)與運(yùn)維指南
定 價(jià):89 元
- 作者:[美] 萊恩·坎貝爾(Laine Campbell),[美] 夏麗蒂·梅杰斯(Charity Majors)
- 出版時(shí)間:2020/11/1
- ISBN:9787115548863
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.13
- 頁(yè)碼:194
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
數(shù)據(jù)是當(dāng)今企業(yè)的寶貴資產(chǎn),設(shè)計(jì)、構(gòu)建并維護(hù)數(shù)據(jù)存儲(chǔ)的重要性不言而喻,而技術(shù)的快速迭代給數(shù)據(jù)庫(kù)可靠性帶來(lái)了更多挑戰(zhàn),也向數(shù)據(jù)庫(kù)管理員提出了更高要求。本書(shū)從可靠性這一視角就數(shù)據(jù)庫(kù)的構(gòu)建和運(yùn)維展開(kāi)細(xì)致討論。全書(shū)內(nèi)容分為兩大部分:前一部分介紹運(yùn)維基礎(chǔ)知識(shí),包括行為準(zhǔn)則、服務(wù)等級(jí)管理、風(fēng)險(xiǎn)管理和運(yùn)維可見(jiàn)性;后一部分深入研究數(shù)據(jù)本身,包括基礎(chǔ)設(shè)施、備份和恢復(fù)、安全、存儲(chǔ)和復(fù)制、架構(gòu)等。
1.從實(shí)踐角度介紹如何將網(wǎng)站可靠性工程的實(shí)踐應(yīng)用于數(shù)據(jù)庫(kù)架構(gòu)和運(yùn)維,為想成為數(shù)據(jù)庫(kù)可靠性工程師的專業(yè)人士提供一個(gè)指導(dǎo)框架,開(kāi)發(fā)人員、系統(tǒng)管理員和初中級(jí)數(shù)據(jù)庫(kù)管理員等都能從中受益。
2.首先介紹數(shù)據(jù)庫(kù)可靠性工程師需要掌握的核心運(yùn)維概念,然后介紹各種數(shù)據(jù)庫(kù)持久性選項(xiàng),包括如何利用關(guān)鍵技術(shù)提供有彈性、可擴(kuò)展、高性能的數(shù)據(jù)存儲(chǔ)和檢索。有了數(shù)據(jù)庫(kù)可靠性工程的堅(jiān)實(shí)基礎(chǔ),讀者便能深入研究任何現(xiàn)代數(shù)據(jù)庫(kù)的架構(gòu)和運(yùn)維。
-服務(wù)等級(jí)要求和風(fēng)險(xiǎn)管理
-構(gòu)建并演進(jìn)具有運(yùn)維可見(jiàn)性的架構(gòu)
-基礎(chǔ)設(shè)施工程和基礎(chǔ)設(shè)施管理
-如何推動(dòng)發(fā)布管理流程
-數(shù)據(jù)存儲(chǔ)、索引和復(fù)制
-明確數(shù)據(jù)存儲(chǔ)的特性和用例
-數(shù)據(jù)存儲(chǔ)架構(gòu)組件和數(shù)據(jù)驅(qū)動(dòng)的架構(gòu)
萊恩·坎貝爾(Laine Campbell)是Facebook生產(chǎn)工程總監(jiān),曾任Fastly生產(chǎn)工程高級(jí)總監(jiān),PalominoDB/Blackbird創(chuàng)始人、前CEO,為眾多公司提供數(shù)據(jù)庫(kù)需求咨詢服務(wù),在運(yùn)行大型數(shù)據(jù)庫(kù)和分布式系統(tǒng)方面有近20年經(jīng)驗(yàn)。
夏麗蒂·梅杰斯(Charity Majors)是Honeycomb公司聯(lián)合創(chuàng)始人和CTO,曾任Facebook生產(chǎn)工程經(jīng)理,是一位有15年以上經(jīng)驗(yàn)的高級(jí)系統(tǒng)工程師。
序 xii
前言 xiii
第 1章 數(shù)據(jù)庫(kù)可靠性工程介紹 1
1.1 數(shù)據(jù)庫(kù)可靠性工程師的指導(dǎo)原則 2
1.1.1 保護(hù)數(shù)據(jù) 2
1.1.2 大量自助服務(wù) 3
1.1.3 消除瑣事 3
1.1.4 數(shù)據(jù)庫(kù)并不特殊 4
1.1.5 消除軟件和運(yùn)維之間的障礙 4
1.2 運(yùn)維核心概述 5
1.3 需求層次 6
1.3.1 生存和安全 . 6
1.3.2 愛(ài)和歸屬感 7
1.3.3 尊重 7
1.3.4 自我實(shí)現(xiàn) 8
1.4 小結(jié) 9
第 2章 服務(wù)等級(jí)管理 10
2.1 為何需要SLO 10
2.2 服務(wù)等級(jí)指標(biāo) 12
2.2.1 延時(shí) 12
2.2.2 可用性 12
2.2.3 吞吐量 12
2.2.4 持久性 13
2.2.5 成本或效率 13
2.3 定義服務(wù)目標(biāo) 13
2.3.1 延時(shí)指標(biāo) 13
2.3.2 可用性指標(biāo) 16
2.3.3 吞吐量指標(biāo) 18
2.4 SLO的監(jiān)控和報(bào)告 19
2.4.1 可用性監(jiān)控 20
2.4.2 延時(shí)監(jiān)控 21
2.4.3 吞吐量監(jiān)控 22
2.4.4 監(jiān)控成本和效率 22
2.5 小結(jié) 23
第3章 風(fēng)險(xiǎn)管理 24
3.1 風(fēng)險(xiǎn)考量因素 25
3.1.1 未知因素和復(fù)雜性 25
3.1.2 可用資源 25
3.1.3 人為因素 25
3.1.4 團(tuán)隊(duì)因素 26
3.2 可以做什么 27
3.3 不可以做什么 27
3.4 工作流程:初始版本 28
3.4.1 服務(wù)風(fēng)險(xiǎn)評(píng)估 29
3.4.2 架構(gòu)清單 30
3.4.3 優(yōu)先級(jí) 31
3.4.4 風(fēng)險(xiǎn)控制和決策制定 34
3.5 持續(xù)迭代 36
3.6 小結(jié) 37
第 4 章 操作可見(jiàn)性 38
4.1 操作可見(jiàn)性的新規(guī)則 40
4.1.1 把操作可見(jiàn)性視為商業(yè)智能系統(tǒng) 40
4.1.2 分布式易失環(huán)境成為趨勢(shì) 40
4.1.3 高頻存儲(chǔ)關(guān)鍵度量值 42
4.1.4 保持架構(gòu)簡(jiǎn)潔 43
4.2 操作可見(jiàn)性框架 44
4.3 數(shù)據(jù)輸入 45
4.3.1 遙測(cè)/度量值 46
4.3.2 事件 47
4.3.3 日志 47
4.4 數(shù)據(jù)輸出 47
4.5 監(jiān)控的初始版本 48
4.5.1 數(shù)據(jù)安全嗎 49
4.5.2 服務(wù)運(yùn)行正常嗎 50
4.5.3 用戶受影響了嗎 51
4.6 度量應(yīng)用程序 51
4.6.1 分布式追蹤 52
4.6.2 事件與日志 53
4.7 度量服務(wù)器或?qū)嵗?3
4.8 度量數(shù)據(jù)存儲(chǔ) 55
4.9 數(shù)據(jù)存儲(chǔ)連接層 56
4.9.1 利用率 56
4.9.2 飽和度 56
4.9.3 錯(cuò)誤 57
4.10 數(shù)據(jù)庫(kù)內(nèi)部可見(jiàn)性 58
4.10.1 吞吐量和延時(shí)度量值 58
4.10.2 提交、重做和日志 58
4.10.3 復(fù)制狀態(tài) 59
4.10.4 內(nèi)存結(jié)構(gòu) 60
4.10.5 鎖與并發(fā) 60
4.11 數(shù)據(jù)庫(kù)對(duì)象 62
4.12 數(shù)據(jù)庫(kù)查詢 62
4.13 數(shù)據(jù)庫(kù)報(bào)警和事件 62
4.14 小結(jié) 63
第5章 基礎(chǔ)設(shè)施工程 64
5.1 主機(jī) 64
5.1.1 物理服務(wù)器 64
5.1.2 系統(tǒng)或內(nèi)核的運(yùn)維 65
5.1.3 存儲(chǔ)區(qū)域網(wǎng)絡(luò) 72
5.1.4 物理服務(wù)器的優(yōu)點(diǎn) 73
5.1.5 物理服務(wù)器的缺點(diǎn) 73
5.2 虛擬化 73
5.2.1 虛擬機(jī)管理程序 74
5.2.2 并發(fā) 74
5.2.3 存儲(chǔ) 74
5.2.4 用例 74
5.3 容器 75
5.4 DaaS 75
5.4.1 DaaS面臨的挑戰(zhàn) 76
5.4.2 數(shù)據(jù)庫(kù)可靠性工程師與DaaS 76
5.5 小結(jié) 77
第6章 基礎(chǔ)設(shè)施管理 78
6.1 版本控制 79
6.2 配置定義 79
6.3 基于配置的構(gòu)建 81
6.4 維護(hù)配置 82
6.5 基礎(chǔ)設(shè)施定義和編排 83
6.5.1 單一基礎(chǔ)設(shè)施定義 83
6.5.2 垂直拆分 84
6.5.3 分層(水平定義) 85
6.6 驗(yàn)收測(cè)試和合規(guī)性 86
6.7 服務(wù)目錄 86
6.8 完成拼圖 87
6.9 開(kāi)發(fā)環(huán)境 88
6.10 小結(jié) 88
第7章 備份和恢復(fù) 89
7.1 核心概念 90
7.1.1 物理與邏輯 90
7.1.2 在線與離線 90
7.1.3 全量、增量和差量 90
7.2 恢復(fù)的考量 91
7.3 恢復(fù)場(chǎng)景 91
7.3.1 計(jì)劃內(nèi)的恢復(fù)場(chǎng)景 92
7.3.2 計(jì)劃外的場(chǎng)景 93
7.3.3 場(chǎng)景的范圍 95
7.3.4 不同場(chǎng)景的影響 95
7.4 恢復(fù)策略分解 96
7.4.1 策略第 1步:檢測(cè) 96
7.4.2 策略第 2步:分層存儲(chǔ) 98
7.4.3 策略第3步:多樣的工具集 98
7.4.4 策略第4步:測(cè)試 100
7.5 既定恢復(fù)策略 100
7.5.1 在線快速存儲(chǔ)的全量備份和增量備份 100
7.5.2 在線慢速存儲(chǔ)的全量備份和增量備份 101
7.5.3 離線存儲(chǔ) 102
7.5.4 對(duì)象存儲(chǔ) 103
7.6 小結(jié) 103
第8章 發(fā)布管理 104
8.1 培訓(xùn)與合作 104
8.1.1 收集并分享相關(guān)資訊 105
8.1.2 促進(jìn)對(duì)話 105
8.1.3 特定領(lǐng)域知識(shí) 105
8.1.4 協(xié)作 108
8.2 集成 108
8.3 測(cè)試 111
8.3.1 測(cè)試友好的開(kāi)發(fā)實(shí)踐 111
8.3.2 變更簽入后的測(cè)試 112
8.3.3 完整的數(shù)據(jù)集測(cè)試 112
8.3.4 下游測(cè)試 113
8.3.5 操作測(cè)試 114
8.4 部署 114
8.4.1 遷移和版本 114
8.4.2 影響分析 115
8.4.3 變更模式 115
8.4.4 手動(dòng)或自動(dòng)化 118
8.5 小結(jié) 118
第9章 安全 119
9.1 安全的目標(biāo) 119
9.1.1 防止數(shù)據(jù)被竊 119
9.1.2 防止故意破壞 120
9.1.3 防止意外損壞 120
9.1.4 保護(hù)數(shù)據(jù)免于泄露 120
9.1.5 合規(guī)與審計(jì)標(biāo)準(zhǔn) 120
9.2 數(shù)據(jù)庫(kù)安全即功能 121
9.2.1 培訓(xùn)與合作 121
9.2.2 自助服務(wù) 122
9.2.3 集成和測(cè)試 122
9.2.4 操作可見(jiàn)性 123
9.3 漏洞和漏洞利用 124
9.3.1 STRIDE 125
9.3.2 DREAD 125
9.3.3 基本防御措施 126
9.3.4 DoS攻擊 127
9.3.5 SQL注入 129
9.3.6 網(wǎng)絡(luò)和身份驗(yàn)證協(xié)議 131
9.4 數(shù)據(jù)加密 131
9.4.1 財(cái)務(wù)數(shù)據(jù) 132
9.4.2 個(gè)人健康數(shù)據(jù) 132
9.4.3 個(gè)人隱私數(shù)據(jù) 132
9.4.4 軍事數(shù)據(jù)或政府?dāng)?shù)據(jù) 132
9.4.5 機(jī)密或敏感的業(yè)務(wù)數(shù)據(jù) 132
9.4.6 傳輸中的數(shù)據(jù) 133
9.4.7 數(shù)據(jù)庫(kù)中的數(shù)據(jù) 136
9.4.8 文件系統(tǒng)中的數(shù)據(jù) 138
9.5 小結(jié) 139
第 10章 數(shù)據(jù)存儲(chǔ)、索引和復(fù)制 141
10.1 數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 141
10.1.1 數(shù)據(jù)庫(kù)行的存儲(chǔ) 141
10.1.2 SSTable和LSM樹(shù) 144
10.1.3 索引 146
10.1.4 日志和數(shù)據(jù)庫(kù) 147
10.2 數(shù)據(jù)復(fù)制 148
10.2.1 單leader復(fù)制 148
10.2.2 多l(xiāng)eader復(fù)制 158
10.3 小結(jié) 163
第 11章 數(shù)據(jù)存儲(chǔ)領(lǐng)域指南 164
11.1 數(shù)據(jù)存儲(chǔ)的概念屬性 164
11.1.1 數(shù)據(jù)模型 165
11.1.2 事務(wù) 167
11.1.3 BASE 171
11.2 數(shù)據(jù)存儲(chǔ)的內(nèi)部屬性 172
11.2.1 存儲(chǔ) 172
11.2.2 無(wú)處不在的CAP理論 173
11.2.3 一致性與延時(shí)的權(quán)衡 174
11.2.4 可用性 175
11.3 小結(jié) 176
第 12章 數(shù)據(jù)架構(gòu)示例 177
12.1 架構(gòu)組件 177
12.1.1 前端數(shù)據(jù)庫(kù) 177
12.1.2 數(shù)據(jù)訪問(wèn)層 178
12.1.3 數(shù)據(jù)庫(kù)代理 179
12.1.4 事件與消息系統(tǒng) 180
12.1.5 緩存和內(nèi)存存儲(chǔ) 182
12.2 數(shù)據(jù)架構(gòu) 184
12.2.1 Lambda和Kappa 184
12.2.2 事件溯源 186
12.2.3 CQRS 186
12.3 小結(jié) 187
第 13章 數(shù)據(jù)庫(kù)可靠性工程師行為指南 188
13.1 數(shù)據(jù)庫(kù)可靠性工程文化 188
13.1.1 突破障礙 189
13.1.2 數(shù)據(jù)驅(qū)動(dòng)決策 192
13.1.3 數(shù)據(jù)完整性和可恢復(fù)性 193
13.2 小結(jié) 193
關(guān)于作者 194
封面介紹 194