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

陳濤 索海燕

  • 出版商: 人民郵電
  • 出版日期: 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