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