雲原生技術中台:從分佈式到雲平臺設計

陳濤 索海燕

  • 出版商: 人民郵電
  • 出版日期: 2022-10-01
  • 定價: $479
  • 售價: 8.5$407
  • 語言: 簡體中文
  • 頁數: 238
  • ISBN: 7115596239
  • ISBN-13: 9787115596239
  • 相關分類: DockerKubernetes
  • 立即出貨

  • 雲原生技術中台:從分佈式到雲平臺設計-preview-1
  • 雲原生技術中台:從分佈式到雲平臺設計-preview-2
雲原生技術中台:從分佈式到雲平臺設計-preview-1

買這商品的人也買了...

商品描述

本書清晰、完整地展現雲平臺技術架構相關的知識,包含3個部分:第一部分介紹服務擴容的發展歷程,概述分佈式架構與中台架構。第二部分分析傳統分佈式架構的核心技術,圍繞中心化協同工作機制和分佈式服務間的通信問題,介紹ZooKeeper、Netty、Dubbo等分佈式技術的原理和實戰案例。第三部分分析雲平臺技術組件,主要包括構建PaaS平臺所用到的核心技術組件。這一部分首先分析Docker容器技術以及Kubernetes編排引擎的搭建和基礎原理,然後介紹指標採集功能、告警功能以及日誌管理框架,最後對微服務治理框架Istio在雲平臺的應用場景進行展望。

本書結合算法與源碼展示雲原生應用全景,闡述開源技術,能夠幫助讀者搭建私有雲平臺,適合高校電腦及相關專業學生、容器雲初學者,以及對Docker有一定瞭解並希望深入研究和探索雲技術的工程師閱讀。

作者簡介

陳濤,畢業於浙江大學(軟件工程碩士)和浙江師範大學(軟件工程碩士),現就職於畢馬威信息技術服務(南京)有限公司,主要從事與Docker、Kubernetes相關的研究工作。擁有豐富的系統架構設計經驗,曾參與多個大型分佈式網站的架構設計與開發工作,指導過多個因特網系統的微服務改造工作,擅長Java多線程、分佈式框架和PaaS平臺設計,對雲原生有深入的研究。曾就職於華為南京研究所,從事華為雲研究工作,擅長運營商私有雲服務治理解決方案,其負責的華為微服務引擎CSE(Cloud Service Engine)項目已在全球廣泛部署。此外,還曾就職於南京焦點科技股份有限公司,從事分佈式即時通信系統的設計和開發工作。

索海燕,畢業於蘇州大學(通信與信息工程碩士),現就職於江蘇省人民醫院信息處,從事醫療信息系統的建設和管理工作,擁有豐富的系統建設和運維管理經驗。重點關註雲計算、大數據、人工智能、區塊鏈等技術領域,對雲計算、網絡技術、網絡存儲有深刻認識,致力於將醫療信息化建設工作與各類新技術結合。參與了《健康數據分析》(Healthcare Data Analytics)一書的翻譯工作。

目錄大綱

第 一部分 分佈式架構與中台架構

第 1章 分佈式架構與中台架構簡介 3

1.1 電腦服務擴容的發展歷程 3

1.1.1 從單一應用架構到集群架構 3

1.1.2 從集群架構到垂直應用架構 4

1.1.3 微服務與分佈式架構 5

1.2 分佈式架構概述 7

1.2.1 分佈式架構設計理念 7

1.2.2 分佈式架構核心功能 8

1.2.3 分佈式架構設計難點 8

1.3 大中台架構概述 9

第二部分 傳統分佈式架構的核心技術

第 2章 分佈式中心化集群:ZooKeeper原理與實戰 15

2.1 ZooKeeper基礎 15

2.1.1 ZooKeeper應用場景 15

2.1.2 ZooKeeper設計理念 16

2.1.3 ZooKeeper源碼和安裝 18

2.2 ZooKeeper內核原理 19

2.2.1 Znode類型 20

2.2.2 ZnodeAPI 21

2.2.3 Znode狀態信息 23

2.2.4 監聽點與通知 23

2.2.5 ACL權限控制 25

2.2.6 序列化 27

2.2.7 通信協議 28

2.2.8 事務 31

2.2.9 事務日誌 32

2.2.10 內存數據模型 33

2.2.11 磁盤數據模型 35

2.2.12 會話模型 37

2.3 ZooKeeper集群原理 39

2.3.1 集群角色 39

2.3.2 Paxos算法 40

2.3.3 ZAB協議 40

2.3.4 群首選舉 42

2.3.5 集群啟動流程 45

2.4 Apache Curator客戶端實戰 48

2.4.1 搶購系統實戰 48

2.4.2 分佈式鎖和分佈式信號量 61

2.4.3 分佈式線程同步 64

第3章 分佈式通信框架:Netty和Dubbo原理與實戰 66

3.1 分佈式通信框架基礎 66

3.1.1 Netty特性 67

3.1.2 Dubbo特性 69

3.1.3 Netty、Dubbo和ZooKeeper的關系 70

3.1.4 Netty服務端啟動流程 71

3.1.5 Dubbo SPI和服務導出 75

3.2 Netty和Dubbo實戰 80

3.2.1 搶購系統監控功能需求分析 80

3.2.2 搶購系統監控功能實戰 81

第三部分 構建PaaS平臺的核心雲平臺技術組件

第4章 Docker容器技術原理與實戰 89

4.1 Docker基礎 89

4.1.1 Docker背景與關鍵詞 89

4.1.2 Linux Docker運行環境 92

4.1.3 macOS和Windows Docker運行環境 94

4.1.4 運行第 一個Docker容器 94

4.2 Docker核心原理 95

4.2.1 鏡像分層概述 95

4.2.2 鏡像存儲 97

4.2.3 鏡像命名和構建 98

4.2.4 容器進程 99

4.2.5 容器生命周期和重啟策略 101

4.2.6 容器資源限制 102

4.3 Docker容器實戰 103

4.3.1 製作搶購系統監控功能的鏡像 103

4.3.2 運行搶購系統監控功能的容器 107

第5章 Kubernetes編排引擎 112

5.1 Kubernetes基礎 112

5.1.1 Kubernetes特性 112

5.1.2 Kubernetes核心關鍵詞 113

5.1.3 Kubernetes和PaaS的關系 114

5.2 Kubernetes集群部署 115

5.2.1 準備虛擬機 115

5.2.2 必要環境配置 117

5.2.3 安裝Docker 118

5.2.4 安裝kubeadm、kubelet和kubectl 118

5.2.5 部署首個Master 120

5.2.6 加入其他Master 121

5.2.7 加入Node 122

5.2.8 部署網絡插件 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調度原理 151

5.5.1 理解標簽和選擇器定向調度 151

5.5.2 理解Pod親和性和互斥調度 152

5.5.3 理解Taints和Tolerations 155

5.5.4 理解Pod優先級與搶占調度 157

5.5.5 理解Deployment 158

5.5.6 理解HPA 159

5.5.7 理解StatefulSet和Job 161

5.5.8 理解調度器原理 162

5.6 深入理解驅逐機制 164

5.6.1 理解kubelet垃圾回收策略 164

5.6.2 理解驅逐信號和驅逐閾值 165

5.6.3 理解驅逐策略對Node的影響 167

5.6.4 理解驅逐策略對Pod的影響 167

5.6.5 理解節點OOM內存不足 169

5.6.6 實踐驅逐機制 169

5.7 深入理解Pod滾動升級 170

5.7.1 滾動升級產生的背景 170

5.7.2 理解Pod滾動升級過程 171

5.7.3 理解Rollout回滾 173

5.8 深入理解PV存儲 174

5.8.1 理解PV 174

5.8.2 理解PVC 176

5.9 Kubernetes實戰 178

5.9.1 部署搶購系統運維功能的準備工作 178

5.9.2 在Kubernetes集群上運行搶購系統運維功能 184

5.9.3 滾動升級實戰 190

第6章 Prometheus指標監控與告警 194

6.1 Prometheus基礎 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指標概念 201

6.2.1 Prometheus指標名稱 201

6.2.2 Prometheus指標類型 203

6.3 Prometheus監控 204

6.3.1 監控Kubernetes集群節點 204

6.3.2 第三方廠商提供的Exporter 207

第7章 Kubernetes集群日誌管理 209

7.1 Kubernetes集群日誌架構 209

7.1.1 基本日誌記錄 209

7.1.2 節點級別日誌記錄 210

7.1.3 集群級別日誌記錄 210

7.2 Elastic Stack 211

7.2.1 Elasticsearch概述 212

7.2.2 Elastic Stack應用場景 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 創建Kibana實例 221

7.3.5 使用Elastic Stack檢索日誌 224

7.4 Elastic Beats 225

7.4.1 Beats組件 225

7.4.2 Filebeat分析 226

第8章 Istio服務治理 229

8.1 Istio概念 229

8.1.1 Istio是什麽 229

8.1.2 Istio核心組件 231

8.2 環境準備:在Kubernetes上安裝Istio 233

8.2.1 下載Istio 234

8.2.2 安裝Istio 234

8.2.3 部署Bookinfo示例 235

8.2.4 部署Bookinfo步驟 236