云原生技術(shù)中臺(tái):從分布式到云平臺(tái)設(shè)計(jì)
定 價(jià):79.8 元
- 作者:陳濤 索海燕
- 出版時(shí)間:2022/10/1
- ISBN:9787115596239
- 出 版 社:人民郵電出版社
- 中圖法分類:TP393.027
- 頁碼:238
- 紙張:
- 版次:01
- 開本:16開
本書清晰、完整地展現(xiàn)云平臺(tái)技術(shù)架構(gòu)相關(guān)的知識(shí),包含3個(gè)部分:第一部分介紹服務(wù)擴(kuò)容的發(fā)展歷程,概述分布式架構(gòu)與中臺(tái)架構(gòu)。第二部分分析傳統(tǒng)分布式架構(gòu)的核心技術(shù),圍繞中心化協(xié)同工作機(jī)制和分布式服務(wù)間的通信問題,介紹ZooKeeper、Netty、Dubbo等分布式技術(shù)的原理和實(shí)戰(zhàn)案例。第三部分分析云平臺(tái)技術(shù)組件,主要包括構(gòu)建PaaS平臺(tái)所用到的核心技術(shù)組件。這一部分首先分析Docker容器技術(shù)以及Kubernetes編排引擎的搭建和基礎(chǔ)原理,然后介紹指標(biāo)采集功能、告警功能以及日志管理框架,最后對微服務(wù)治理框架Istio在云平臺(tái)的應(yīng)用場景進(jìn)行展望。
本書結(jié)合算法與源碼展示云原生應(yīng)用全景,闡述開源技術(shù),能夠幫助讀者搭建私有云平臺(tái),適合高校計(jì)算機(jī)及相關(guān)專業(yè)學(xué)生、容器云初學(xué)者,以及對Docker有一定了解并希望深入研究和探索云技術(shù)的工程師閱讀。
隨著互聯(lián)網(wǎng)產(chǎn)品的用戶量和業(yè)務(wù)量不斷增加,單個(gè)應(yīng)用服務(wù)器已經(jīng)不能滿足互聯(lián)網(wǎng)信息系統(tǒng)的性能需求,系統(tǒng)逐漸發(fā)展為分布式架構(gòu)。同時(shí),隨著微服務(wù)技術(shù)、容器集群管理技術(shù)和工具的不斷發(fā)展,“大中臺(tái)”戰(zhàn)略愈發(fā)得到重視,基于云平臺(tái)架構(gòu)的設(shè)計(jì)進(jìn)一步提高了服務(wù)效率。
本書重點(diǎn)介紹分布式架構(gòu)和云平臺(tái)架構(gòu)的核心技術(shù),涉及ZooKeeper、Netty、Dubbo、Docker、Kubernetes、Prometheus和Istio等流行的技術(shù)框架。書中從安裝入門到應(yīng)用部署,展示云原生應(yīng)用全景,幫助讀者建立云原生技術(shù)知識(shí)體系,并指導(dǎo)讀者進(jìn)行實(shí)踐,使其具備開發(fā)分布式或云平臺(tái)微服務(wù)的能力。
本書具有以下特色:
·兼顧原理與實(shí)戰(zhàn),結(jié)合算法與源碼,所有命令行均已經(jīng)過校驗(yàn);
·選用系統(tǒng)、流行的云原生核心技術(shù),可指導(dǎo)企業(yè)進(jìn)行技術(shù)選型;
·可幫助企業(yè)擺脫對公有云臺(tái)的依賴,搭建自己的私有云平臺(tái)。
陳濤,畢業(yè)于浙江大學(xué)(軟件工程碩士)和浙江師范大學(xué)(軟件工程碩士),現(xiàn)就職于畢馬威信息技術(shù)服務(wù)(南京)有限公司,主要從事與Docker、Kubernetes相關(guān)的研究工作。擁有豐富的系統(tǒng)架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),曾參與多個(gè)大型分布式網(wǎng)站的架構(gòu)設(shè)計(jì)與開發(fā)工作,指導(dǎo)過多個(gè)互聯(lián)網(wǎng)系統(tǒng)的微服務(wù)改造工作,擅長Java多線程、分布式框架和PaaS平臺(tái)設(shè)計(jì),對云原生有深入的研究。曾就職于華為南京研究所,從事華為云研究工作,擅長運(yùn)營商私有云服務(wù)治理解決方案,其負(fù)責(zé)的華為微服務(wù)引擎CSE(Cloud Service Engine)項(xiàng)目已在全球廣泛部署。此外,還曾就職于南京焦點(diǎn)科技股份有限公司,從事分布式即時(shí)通信系統(tǒng)的設(shè)計(jì)和開發(fā)工作。
索海燕,畢業(yè)于蘇州大學(xué)(通信與信息工程碩士),現(xiàn)就職于江蘇省人民醫(yī)院信息處,從事醫(yī)療信息系統(tǒng)的建設(shè)和管理工作,擁有豐富的系統(tǒng)建設(shè)和運(yùn)維管理經(jīng)驗(yàn)。重點(diǎn)關(guān)注云計(jì)算、大數(shù)據(jù)、人工智能、區(qū)塊鏈等技術(shù)領(lǐng)域,對云計(jì)算、網(wǎng)絡(luò)技術(shù)、網(wǎng)絡(luò)存儲(chǔ)有深刻認(rèn)識(shí),致力于將醫(yī)療信息化建設(shè)工作與各類新技術(shù)結(jié)合。參與了《健康數(shù)據(jù)分析》(Healthcare Data Analytics)一書的翻譯工作。
第 一部分 分布式架構(gòu)與中臺(tái)架構(gòu)
第 1章 分布式架構(gòu)與中臺(tái)架構(gòu)簡介 3
1.1 計(jì)算機(jī)服務(wù)擴(kuò)容的發(fā)展歷程 3
1.1.1 從單一應(yīng)用架構(gòu)到集群架構(gòu) 3
1.1.2 從集群架構(gòu)到垂直應(yīng)用架構(gòu) 4
1.1.3 微服務(wù)與分布式架構(gòu) 5
1.2 分布式架構(gòu)概述 7
1.2.1 分布式架構(gòu)設(shè)計(jì)理念 7
1.2.2 分布式架構(gòu)核心功能 8
1.2.3 分布式架構(gòu)設(shè)計(jì)難點(diǎn) 8
1.3 大中臺(tái)架構(gòu)概述 9
第二部分 傳統(tǒng)分布式架構(gòu)的核心技術(shù)
第 2章 分布式中心化集群:ZooKeeper原理與實(shí)戰(zhàn) 15
2.1 ZooKeeper基礎(chǔ) 15
2.1.1 ZooKeeper應(yīng)用場景 15
2.1.2 ZooKeeper設(shè)計(jì)理念 16
2.1.3 ZooKeeper源碼和安裝 18
2.2 ZooKeeper內(nèi)核原理 19
2.2.1 Znode類型 20
2.2.2 ZnodeAPI 21
2.2.3 Znode狀態(tài)信息 23
2.2.4 監(jiān)聽點(diǎn)與通知 23
2.2.5 ACL權(quán)限控制 25
2.2.6 序列化 27
2.2.7 通信協(xié)議 28
2.2.8 事務(wù) 31
2.2.9 事務(wù)日志 32
2.2.10 內(nèi)存數(shù)據(jù)模型 33
2.2.11 磁盤數(shù)據(jù)模型 35
2.2.12 會(huì)話模型 37
2.3 ZooKeeper集群原理 39
2.3.1 集群角色 39
2.3.2 Paxos算法 40
2.3.3 ZAB協(xié)議 40
2.3.4 群首選舉 42
2.3.5 集群啟動(dòng)流程 45
2.4 Apache Curator客戶端實(shí)戰(zhàn) 48
2.4.1 搶購系統(tǒng)實(shí)戰(zhàn) 48
2.4.2 分布式鎖和分布式信號量 61
2.4.3 分布式線程同步 64
第3章 分布式通信框架:Netty和Dubbo原理與實(shí)戰(zhàn) 66
3.1 分布式通信框架基礎(chǔ) 66
3.1.1 Netty特性 67
3.1.2 Dubbo特性 69
3.1.3 Netty、Dubbo和ZooKeeper的關(guān)系 70
3.1.4 Netty服務(wù)端啟動(dòng)流程 71
3.1.5 Dubbo SPI和服務(wù)導(dǎo)出 75
3.2 Netty和Dubbo實(shí)戰(zhàn) 80
3.2.1 搶購系統(tǒng)監(jiān)控功能需求分析 80
3.2.2 搶購系統(tǒng)監(jiān)控功能實(shí)戰(zhàn) 81
第三部分 構(gòu)建PaaS平臺(tái)的核心云平臺(tái)技術(shù)組件
第4章 Docker容器技術(shù)原理與實(shí)戰(zhàn) 89
4.1 Docker基礎(chǔ) 89
4.1.1 Docker背景與關(guān)鍵詞 89
4.1.2 Linux Docker運(yùn)行環(huán)境 92
4.1.3 macOS和Windows Docker運(yùn)行環(huán)境 94
4.1.4 運(yùn)行第 一個(gè)Docker容器 94
4.2 Docker核心原理 95
4.2.1 鏡像分層概述 95
4.2.2 鏡像存儲(chǔ) 97
4.2.3 鏡像命名和構(gòu)建 98
4.2.4 容器進(jìn)程 99
4.2.5 容器生命周期和重啟策略 101
4.2.6 容器資源限制 102
4.3 Docker容器實(shí)戰(zhàn) 103
4.3.1 制作搶購系統(tǒng)監(jiān)控功能的鏡像 103
4.3.2 運(yùn)行搶購系統(tǒng)監(jiān)控功能的容器 107
第5章 Kubernetes編排引擎 112
5.1 Kubernetes基礎(chǔ) 112
5.1.1 Kubernetes特性 112
5.1.2 Kubernetes核心關(guān)鍵詞 113
5.1.3 Kubernetes和PaaS的關(guān)系 114
5.2 Kubernetes集群部署 115
5.2.1 準(zhǔn)備虛擬機(jī) 115
5.2.2 必要環(huán)境配置 117
5.2.3 安裝Docker 118
5.2.4 安裝kubeadm、kubelet和kubectl 118
5.2.5 部署首個(gè)Master 120
5.2.6 加入其他Master 121
5.2.7 加入Node 122
5.2.8 部署網(wǎng)絡(luò)插件 122
5.3 Kubernetes集群管理 124
5.3.1 Node信息 124
5.3.2 Master信息 126
5.3.3 可視化管理界面 127
5.3.4 集群安全策略 129
5.3.5 理解Namespace 130
5.3.6 理解ConfigMap和Secret 131
5.3.7 理解Service 134
5.3.8 理解API Server 137
5.4 深入理解Pod組件原理 143
5.4.1 理解Pod核心概念 143
5.4.2 理解Pod生命周期 144
5.4.3 理解Pod資源限制 146
5.4.4 理解QoS 149
5.5 深入理解Pod調(diào)度原理 151
5.5.1 理解標(biāo)簽和選擇器定向調(diào)度 151
5.5.2 理解Pod親和性和互斥調(diào)度 152
5.5.3 理解Taints和Tolerations 155
5.5.4 理解Pod優(yōu)先級與搶占調(diào)度 157
5.5.5 理解Deployment 158
5.5.6 理解HPA 159
5.5.7 理解StatefulSet和Job 161
5.5.8 理解調(diào)度器原理 162
5.6 深入理解驅(qū)逐機(jī)制 164
5.6.1 理解kubelet垃圾回收策略 164
5.6.2 理解驅(qū)逐信號和驅(qū)逐閾值 165
5.6.3 理解驅(qū)逐策略對Node的影響 167
5.6.4 理解驅(qū)逐策略對Pod的影響 167
5.6.5 理解節(jié)點(diǎn)OOM內(nèi)存不足 169
5.6.6 實(shí)踐驅(qū)逐機(jī)制 169
5.7 深入理解Pod滾動(dòng)升級 170
5.7.1 滾動(dòng)升級產(chǎn)生的背景 170
5.7.2 理解Pod滾動(dòng)升級過程 171
5.7.3 理解Rollout回滾 173
5.8 深入理解PV存儲(chǔ) 174
5.8.1 理解PV 174
5.8.2 理解PVC 176
5.9 Kubernetes實(shí)戰(zhàn) 178
5.9.1 部署搶購系統(tǒng)運(yùn)維功能的準(zhǔn)備工作 178
5.9.2 在Kubernetes集群上運(yùn)行搶購系統(tǒng)運(yùn)維功能 184
5.9.3 滾動(dòng)升級實(shí)戰(zhàn) 190
第6章 Prometheus指標(biāo)監(jiān)控與告警 194
6.1 Prometheus基礎(chǔ) 194
6.1.1 Prometheus特性 194
6.1.2 Prometheus使用方式 197
6.1.3 Prometheus部署在Docker 198
6.1.4 Prometheus部署在Kubernetes 199
6.2 Prometheus指標(biāo)概念 201
6.2.1 Prometheus指標(biāo)名稱 201
6.2.2 Prometheus指標(biāo)類型 203
6.3 Prometheus監(jiān)控 204
6.3.1 監(jiān)控Kubernetes集群節(jié)點(diǎn) 204
6.3.2 第三方廠商提供的Exporter 207
第7章 Kubernetes集群日志管理 209
7.1 Kubernetes集群日志架構(gòu) 209
7.1.1 基本日志記錄 209
7.1.2 節(jié)點(diǎn)級別日志記錄 210
7.1.3 集群級別日志記錄 210
7.2 Elastic Stack 211
7.2.1 Elasticsearch概述 212
7.2.2 Elastic Stack應(yīng)用場景 214
7.2.3 Elastic Stack和Prometheus對比 216
7.3 Elastic Stack安裝方式 218
7.3.1 使用Docker安裝 218
7.3.2 使用Helm Chart安裝 218
7.3.3 使用Elastic Cloud方式安裝 218
7.3.4 創(chuàng)建Kibana實(shí)例 221
7.3.5 使用Elastic Stack檢索日志 224
7.4 Elastic Beats 225
7.4.1 Beats組件 225
7.4.2 Filebeat分析 226
第8章 Istio服務(wù)治理 229
8.1 Istio概念 229
8.1.1 Istio是什么 229
8.1.2 Istio核心組件 231
8.2 環(huán)境準(zhǔn)備:在Kubernetes上安裝Istio 233
8.2.1 下載Istio 234
8.2.2 安裝Istio 234
8.2.3 部署B(yǎng)ookinfo示例 235
8.2.4 部署B(yǎng)ookinfo步驟 236