本書(shū)從基礎(chǔ)設(shè)施架構(gòu)入手,運(yùn)用豐富的圖例,從微觀和宏觀兩個(gè)角度全面介紹了IT基礎(chǔ)設(shè)施的常備知識(shí),旨在幫助讀者通過(guò)了解這些知識(shí),加深對(duì)IT系統(tǒng)的理解,全面提升快速理解技術(shù)本質(zhì)的能力,從而靈活應(yīng)對(duì)層出不窮的新技術(shù)。
日本長(zhǎng)銷(xiāo)十年的IT基礎(chǔ)設(shè)施教程
“圖解”系列再添新成員
★原版長(zhǎng)銷(xiāo)十余年,網(wǎng)羅IT基礎(chǔ)設(shè)施基礎(chǔ)知識(shí)
本書(shū)從基礎(chǔ)設(shè)施架構(gòu)入手,運(yùn)用豐富的圖例,從微觀和宏觀兩個(gè)角度全面地介紹了IT基礎(chǔ)設(shè)施的常備知識(shí),廣受IT工程師好評(píng)。
★理論結(jié)合實(shí)際,幫助讀者更好地了解IT基礎(chǔ)設(shè)施
書(shū)中列舉了豐富的實(shí)例及在實(shí)踐過(guò)程中會(huì)遇到的各種場(chǎng)景,有助于讀者掌握更加全面的技術(shù)能力。
★以圖配文,講解細(xì)致
本書(shū)延續(xù)日系“圖解”系列的特點(diǎn),使用大量插圖,以一種直觀易懂的方式介紹相關(guān)知識(shí)點(diǎn)。深入淺出,方便理解。
山崎泰史
基礎(chǔ)設(shè)施顧問(wèn)。日本橫濱人。
三繩慶子
就職于株式會(huì)社VMware。負(fù)責(zé)靈活運(yùn)用VMware vSphere、公用云的IT中期計(jì)劃的制定及系統(tǒng)架構(gòu)的設(shè)計(jì)等。近些年,針對(duì)數(shù)字化轉(zhuǎn)型時(shí)代基礎(chǔ)設(shè)施的存在方式做相關(guān)咨詢(xún)工作。
畔勝洋平
曾在互聯(lián)網(wǎng)公司工作,從開(kāi)發(fā)、基礎(chǔ)設(shè)施,到運(yùn)維,積累了很多經(jīng)驗(yàn),之后從事金融軟件工程師的工作,在Oracle以數(shù)據(jù)庫(kù)顧問(wèn)的身份負(fù)責(zé)以金融機(jī)構(gòu)為中心的任務(wù)關(guān)鍵型系統(tǒng)的設(shè)計(jì)和使用。
佐藤貴彥
畢業(yè)于奈良先端科學(xué)技術(shù)大學(xué)院大學(xué),畢業(yè)后從事基礎(chǔ)設(shè)施及應(yīng)用程序方面的工作。
第 1章 讓我們來(lái)看看基礎(chǔ)設(shè)施架構(gòu) 1
1.1 什么是IT基礎(chǔ)設(shè)施 2
1.2 集中式架構(gòu)與分布式架構(gòu) 4
1.2.1 集中式架構(gòu) 4
1.2.2 分布式架構(gòu) 6
1.3 垂直分布式架構(gòu) 8
1.3.1 客戶(hù)端服務(wù)器架構(gòu) 8
1.3.2 三層架構(gòu) 9
1.4 水平分布式架構(gòu) 11
1.4.1 簡(jiǎn)單水平分布式架構(gòu) 11
1.4.2 共享式架構(gòu) 13
1.5 地理分布式架構(gòu) 15
1.5.1 主備式架構(gòu) 15
1.5.2 災(zāi)難恢復(fù)式架構(gòu) 16
第 2章 讓我們來(lái)拆一拆服務(wù)器 19
2.1 物理服務(wù)器 20
2.1.1 服務(wù)器外觀和安裝位置 20
2.1.2 服務(wù)器內(nèi)部結(jié)構(gòu) 22
2.2 CPU 24
2.3 內(nèi)存 26
2.4 I/O設(shè)備 29
2.4.1 硬盤(pán) 29
2.4.2 網(wǎng)卡 31
2.4.3 控制I/O 32
2.5 總線(xiàn) 34
2.5.1 帶寬 34
2.5.2 總線(xiàn)帶寬 35
2.6 小結(jié) 37
第3章 讓我們來(lái)看看三層架構(gòu)系統(tǒng) 39
3.1 圖解三層架構(gòu)系統(tǒng) 40
3.2 主要概念的說(shuō)明 41
3.2.1 什么是進(jìn)程和線(xiàn)程 41
3.2.2 什么是內(nèi)核 44
3.3 Web數(shù)據(jù)流 48
3.3.1 從客戶(hù)端PC到Web服務(wù)器 48
3.3.2 從Web服務(wù)器到AP服務(wù)器 51
3.3.3 從AP服務(wù)器到DB服務(wù)器 53
3.3.4 從AP服務(wù)器到Web服務(wù)器 56
3.3.5 從Web服務(wù)器到客戶(hù)端PC 57
3.3.6 小結(jié) 58
3.4 虛擬化 59
3.4.1 什么是虛擬化 60
3.4.2 OS也是虛擬化技術(shù)之一 60
3.4.3 虛擬機(jī) 61
3.4.4 容器的歷史 62
3.4.5 Docker的登場(chǎng) 62
3.4.6 云與虛擬化技術(shù) 63
第4章 支撐基礎(chǔ)設(shè)施的理論基礎(chǔ) 65
4.1 串行與并行 66
4.1.1 什么是串行和并行 66
4.1.2 所用之處 68
4.1.3 小結(jié) 70
4.2 同步和異步 71
4.2.1 什么是同步和異步 71
4.2.2 所用之處 73
4.2.3 小結(jié) 77
4.3 Queue 78
4.3.1 什么是Queue 78
4.3.2 所用之處 79
4.3.3 小結(jié) 83
4.4 排他控制 84
4.4.1 什么是排他控制 84
4.4.2 所用之處 85
4.4.3 小結(jié) 87
4.5 有狀態(tài)和無(wú)狀態(tài) 88
4.5.1 什么是有狀態(tài)和無(wú)狀態(tài) 88
4.5.2 讓我們?cè)偕钊胍稽c(diǎn) 90
4.5.3 所用之處 90
4.5.4 小結(jié) 92
4.6 可變長(zhǎng)度和固定長(zhǎng)度 93
4.6.1 什么是可變長(zhǎng)度和固定長(zhǎng)度 93
4.6.2 所用之處 95
4.6.3 小結(jié) 97
4.7 數(shù)據(jù)結(jié)構(gòu)(數(shù)組與鏈表) 97
4.7.1 什么是數(shù)據(jù)結(jié)構(gòu)(數(shù)組與鏈表) 97
4.7.2 所用之處 99
4.7.3 小結(jié) 101
4.8 搜索算法 101
4.8.1 什么是搜索算法 101
4.8.2 所用之處 102
4.8.3 小結(jié) 106
第5章 支撐基礎(chǔ)設(shè)施的理論應(yīng)用 109
5.1 緩存 110
5.1.1 什么是緩存 110
5.1.2 所用之處 111
5.1.3 小結(jié) 112
5.2 中斷 114
5.2.1 什么是中斷 114
5.2.2 讓我們?cè)偕钊胍稽c(diǎn) 114
5.2.3 所用之處 115
5.2.4 小結(jié) 117
5.3 輪詢(xún) 117
5.3.1 什么是輪詢(xún) 117
5.3.2 所用之處 118
5.3.3 小結(jié) 120
5.4 I/O大小 121
5.4.1 什么是I/O大小 121
5.4.2 所用之處 122
5.4.3 小結(jié) 126
5.5 日志記錄 127
5.5.1 什么是日志記錄 127
5.5.2 所用之處 128
5.5.3 小結(jié) 129
5.6 復(fù)制 132
5.6.1 什么是復(fù)制 132
5.6.2 所用之處 133
5.6.3 小結(jié) 135
5.7 主/從 136
5.7.1 什么是主/從 136
5.7.2 所用之處 138
5.7.3 小結(jié) 139
5.8 壓縮 139
5.8.1 什么是壓縮 139
5.8.2 讓我們?cè)偕钊胍稽c(diǎn) 140
5.8.3 所用之處 142
5.8.4 小結(jié) 144
5.9 錯(cuò)誤檢測(cè) 144
5.9.1 什么是錯(cuò)誤檢測(cè) 144
5.9.2 讓我們?cè)偕钊胍稽c(diǎn) 145
5.9.3 如何檢測(cè)錯(cuò)誤 146
5.9.4 所用之處 147
5.9.5 小結(jié) 148
第6章 連接系統(tǒng)的網(wǎng)絡(luò)構(gòu)造 149
6.1 網(wǎng)絡(luò) 150
6.2 分層結(jié)構(gòu) 151
6.2.1 拿公司來(lái)比喻分層結(jié)構(gòu) 151
6.2.2 分層結(jié)構(gòu)分擔(dān)任務(wù) 152
6.2.3 分層模型的代表--OSI 7層模型 152
6.2.4 分層結(jié)構(gòu)并非網(wǎng)絡(luò)獨(dú)有 153
6.3 協(xié)議 154
6.3.1 人與人之間溝通的語(yǔ)言也是協(xié)議 154
6.3.2 協(xié)議對(duì)計(jì)算機(jī)來(lái)說(shuō)必不可少 155
6.3.3 協(xié)議對(duì)服務(wù)器內(nèi)部來(lái)說(shuō)也必不可少 157
6.4 TCP/IP聯(lián)通了今天的網(wǎng)絡(luò) 158
6.4.1 互聯(lián)網(wǎng)的發(fā)展與TCP/IP協(xié)議套件 158
6.4.2 TCP/IP的分層結(jié)構(gòu) 158
6.5 應(yīng)用層協(xié)議HTTP 160
6.5.1 HTTP的處理流程 161
6.5.2 請(qǐng)求與響應(yīng)的具體內(nèi)容 161
6.5.3 應(yīng)用層協(xié)議的處理在用戶(hù)空間進(jìn)行 163
6.5.4 套接字以下的處理在內(nèi)核空間進(jìn)行 163
6.6 傳輸層協(xié)議TCP 165
6.6.1 TCP的作用 166
6.6.2 內(nèi)核空間中的TCP處理 167
6.6.3 根據(jù)端口號(hào)轉(zhuǎn)發(fā)數(shù)據(jù) 169
6.6.4 連接的建立 170
6.6.5 數(shù)據(jù)保證與重傳控制 171
6.6.6 流量控制與擁塞控制 173
6.7 網(wǎng)絡(luò)層協(xié)議IP 176
6.7.1 IP的作用 176
6.7.2 內(nèi)核空間中的IP處理 176
6.7.3 以IP地址標(biāo)記的目的地為終點(diǎn)的數(shù)據(jù)傳輸 178
6.7.4 私有網(wǎng)絡(luò)與IP地址 180
6.7.5 路由 181
6.8 鏈路層協(xié)議Ethernet 183
6.8.1 Ethernet的作用 183
6.8.2 內(nèi)核空間中的Ethernet處理 184
6.8.3 同一鏈路內(nèi)的數(shù)據(jù)轉(zhuǎn)發(fā) 186
6.8.4 VLAN 187
6.9 在TCP/IP通信之后 189
6.9.1 網(wǎng)絡(luò)交換機(jī)的中繼處理 189
6.9.2 傳輸終點(diǎn)的接收處理 191
第7章 實(shí)現(xiàn)基礎(chǔ)設(shè)施持續(xù)運(yùn)轉(zhuǎn)的機(jī)制 193
7.1 容錯(cuò)性與冗余化 194
7.1.1 什么是容錯(cuò)性 194
7.1.2 什么是冗余化 195
7.2 服務(wù)器內(nèi)部冗余化 197
7.2.1 電源、設(shè)備等的冗余化 197
7.2.2 網(wǎng)絡(luò)接口的冗余化 198
7.3 存儲(chǔ)冗余化 202
7.3.1 HDD的冗余化 202
7.3.2 路徑的冗余化 207
7.4 Web服務(wù)器冗余化 209
7.4.1 Web服務(wù)器的內(nèi)部冗余化 209
7.4.2 服務(wù)器冗余化 211
7.5 AP服務(wù)器冗余化 215
7.5.1 AP服務(wù)器的冗余化 215
7.5.2 數(shù)據(jù)庫(kù)連接的冗余化 217
7.6 DB服務(wù)器冗余化 220
7.6.1 DB服務(wù)器的冗余化(主-備) 220
7.6.2 DB服務(wù)器的冗余化(主-主) 222
7.7 網(wǎng)絡(luò)設(shè)備冗余化 226
7.7.1 L2交換機(jī)的冗余化 226
7.7.2 L3交換機(jī)的冗余化 229
7.7.3 網(wǎng)絡(luò)拓?fù)? 231
7.8 站點(diǎn)冗余化 235
7.8.1 站點(diǎn)內(nèi)部冗余化的整體圖 235
7.8.2 站點(diǎn)間的冗余化 236
7.9 監(jiān)測(cè) 237
7.9.1 什么是監(jiān)測(cè) 237
7.9.2 存活監(jiān)測(cè) 238
7.9.3 日志監(jiān)測(cè) 239
7.9.4 性能監(jiān)測(cè) 240
7.9.5 SNMP 240
7.9.6 內(nèi)容監(jiān)測(cè) 243
7.10 備份 244
7.10.1 什么是備份 244
7.10.2 系統(tǒng)備份 245
7.10.3 數(shù)據(jù)備份 247
7.11 總結(jié) 248
第8章 確保提升性能的基礎(chǔ)設(shè)施機(jī)制 251
8.1 響應(yīng)與吞吐量 252
8.1.1 造成性能問(wèn)題的兩類(lèi)原因 252
8.1.2 響應(yīng)問(wèn)題 255
8.1.3 吞吐量問(wèn)題 256
8.2 什么是瓶頸 257
8.2.1 瓶頸是制約處理速度的要因 257
8.2.2 瓶頸應(yīng)該如何消除 258
8.2.3 瓶頸將永遠(yuǎn)存在 259
8.3 從三層架構(gòu)系統(tǒng)圖上發(fā)現(xiàn)的瓶頸 261
8.3.1 CPU瓶頸的例子 261
8.3.2 內(nèi)存瓶頸的例子 270
8.3.3 磁盤(pán)I/O瓶頸的例子 273
8.3.4 網(wǎng)絡(luò)I/O瓶頸的例子 278
8.3.5 應(yīng)用程序瓶頸的例子 282
8.4 總結(jié) 286