深入高可用系統原理與設計

王偉峰

  • 出版商: 清華大學
  • 出版日期: 2025-08-01
  • 售價: $474
  • 語言: 簡體中文
  • ISBN: 7302699127
  • ISBN-13: 9787302699125
  • 相關分類: Kubernetes
  • 下單後立即進貨 (約4週~6週)

  • 深入高可用系統原理與設計-preview-1
  • 深入高可用系統原理與設計-preview-2
  • 深入高可用系統原理與設計-preview-3
深入高可用系統原理與設計-preview-1

商品描述

"本書圍繞“構建高可用系統”(更可靠、更敏捷、更低成本)的主題,系統闡述近年來的技術演進路徑與底層原理。 第 1 章為概論,從業務需求出發,回顧近年技術架構演進趨勢,幫讀者快速建立全局認知。第 2~4 章講網絡,以網絡請求鏈路為線索,深入操作系統內核、負載均衡原理,講解“快”背後的系統設計。第 5、6 章講分布式系統,聚焦一致性與容錯,拆解 CAP 定理、分布式事務與共識算法等核心機制。第 7、8 章解析 Kubernetes 架構與服務網格技術,理解雲原生基礎設施的設計邏輯。第 9 章講系統觀測,構建統一觀測體系,掌握指標、日誌、鏈路追蹤的集成與分析方法。第 10 章為軟件交付,剖析聲明式管理理念,講解Kustomize、Helm、Operator、OAM 等主流交付模型。 本書融合技術理論與一線實踐,適合後端工程師、系統架構師、技術團隊負責人及關註底層原理的高級開發者閱讀。 "

作者簡介

"王偉峰愛奇藝架構師,有17年軟件研發經驗。擅長雲計算、大規模分布式系統的架構設計與工程實現,對人工智能領域已有涉獵。開源圖書《創造智慧》作者。"

目錄大綱

第1 章 雲原生技術概論 

1.1 雲計算的演進變革 

1.1.1 物理機時代 

1.1.2 虛擬化技術成熟 

1.1.3 雲計算技術成熟 

1.1.4 容器技術興起 

1.1.5 雲計算形態演進總結 

1.2 雲原生出現的背景 

1.2.1 軟件正在吞噬世界 

1.2.2 移動互聯網在加劇變化 

1.2.3 雲原生的誕生 

1.3 雲原生的定義 

1.3.1 Pivotal 對雲原生的定義 

1.3.2 CNCF 對雲原生的定義 

1.3.3 雲原生定義之外 

1.4 雲原生技術的目標 

1.5 雲原生代表技術 

1.5.1 容器技術 

1.5.2 微服務 

1.5.3 服務網格 

1.5.4 可變基礎設施與不可變基礎設施 

1.5.5 聲明式設計 

1.5.6 DevOps 

1.6 雲原生架構的演進 

1.7 雲原生架構技術棧 

1.8 小結 

第 2 章 構建“足夠快”的網絡服務 

2.1 了解各類延遲指標 

2.2 HTTPS 請求優化分析 

2.2.1 請求階段分析 

2.2.2 各階段耗時分析 

2.2.3 HTTPS 的優化總結 

2.3 域名解析的原理與實踐 

2.3.1 域名解析的原理 

2.3.2 排查域名解析故障 

2.3.3 Facebook 故障分析與總結 

2.3.4 使用 HTTPDNS 解決“中間商”問題 

2.4 使用 Brotli 壓縮傳輸內容 

2.5 HTTPS 加密原理及優化實踐 

2.5.1 HTTPS 加密原理 

2.5.2 HTTPS 優化實踐 

2.6 網絡擁塞控制原理與實踐 

2.6.1 網絡擁塞控制原理 

2.6.2 早期擁塞控制旨在收斂 

2.6.3 現代擁塞控制旨在效能最大化 

2.6.4 BBR 的設計原理 

2.6.5 BBR 的性能表現 

2.7 對請求進行“動態加速” 

2.8 QUIC 設計原理與實踐 

2.8.1 QUIC 出現的背景 

2.8.2 QUIC 的特點 

2.8.3 QUIC 實踐 

2.9 小結 

第 3 章 深入 Linux 內核網絡技術 

3.1 OSI 網絡分層模型 

3.2 Linux 系統收包流程 

3.3 Linux 內核網絡框架 

3.3.1 Netfilter 的 5 個鉤子 

3.3.2 數據包過濾工具 iptables  

3.3.3 連接跟蹤模塊 conntrack  

3.4 內核旁路技術 

3.4.1 數據平面開發套件DPDK 

3.4.2 eBPF 和快速數據路徑XDP 

3.4.3 遠程直接內存訪問RDMA 

3.5 Linux 網絡虛擬化 

3.5.1 網絡命名空間 

3.5.2 虛擬網絡設備 TUN 和TAP 

3.5.3 虛擬網卡 Veth 

3.5.4 虛擬交換機 Linux Bridge 

3.5.5 虛擬網絡通信技術 

3.6 小結 

第 4 章 負載均衡與代理技術 

4.1 負載均衡與代理的分類 

4.1.1 四層負載均衡 

4.1.2 七層負載均衡 

4.2 負載均衡器總體功能 

4.2.1 服務發現 

4.2.2 健康檢查 

4.2.3 黏性會話 

4.2.4 TLS 卸載 

4.2.5 安全和 DDoS 防禦 

4.2.6 觀測 

4.2.7 負載均衡 

4.3 負載均衡部署拓撲 

4.3.1 中間代理型 

4.3.2 邊緣代理型 

4.3.3 客戶端內嵌型 

4.3.4 邊車代理型 

4.4 四層負載均衡技術 

4.4.1 直接路由模式 

4.4.2 隧道模式 

4.4.3 網絡地址轉換模式 

4.4.4 主備模式

4.4.5 基於集群和一致性哈希的容錯和可擴展模式 

4.5 從七層負載均衡到網關 

4.6 全局負載均衡設計 

4.7 小結 

第 5 章 數據一致性與分布式事務 

5.1 數據一致性 

5.2 一致性與可用性的權衡 

5.3 分布式事務模型 

5.3.1 可靠事件隊列 

5.3.2 TCC 

5.3.3 Saga 

5.4 服務冪等性設計 

5.4.1 全局唯一 ID 方案 

5.4.2 樂觀鎖方案 

5.5 小結 

第 6 章 分布式共識及算法 

6.1 什麼是共識 

6.2 日誌與復制狀態機 

6.3 Paxos 算法 

6.3.1 Paxos 算法起源 

6.3.2 Paxos 算法詳述 

6.4 Raft 算法 

6.4.1 領導者選舉 

6.4.2 日誌復制 

6.4.3 成員變更 

6.5 小結 

第 7 章 容器編排技術 

7.1 容器編排系統的演進 

7.1.1 Borg 系統 

7.1.2 Omega 系統 

7.1.3 Kubernetes 系統 

7.1.4 以應用為中心的轉變 

7.2 容器技術的原理與演進 

7.2.1 文件系統隔離 

7.2.2 資源全方位隔離 

7.2.3 資源全方位限制 

7.2.4 設計容器協作的方式 

7.2.5 超親密容器組 Pod 

7.2.6 Pod 是 Kubernetes 的基本單位 

7.2.7 Pod 是調度的原子單元 

7.2.8 容器邊車模式 

7.3 容器鏡像的原理與應用 

7.3.1 什麼是容器鏡像 

7.3.2 容器鏡像分層設計原理 

7.3.3 構建足夠小的容器鏡像  

7.3.4 加速容器鏡像下載 

7.3.5 加速容器鏡像啟動 

7.4 容器運行時與 CRI 接口 

7.4.1 Docker 與 Kubernetes 

7.4.2 容器運行時接口 CRI 

7.4.3 Kubernetes 專用容器運行時 

7.4.4 Containerd 與 CRI 

7.4.5 安全容器運行時 

7.4.6 容器運行時生態 

7.5 容器持久化存儲設計 

7.5.1 Docker 的存儲設計 

7.5.2 Kubernetes 的存儲設計 

7.5.3 普通的 Volume 

7.5.4 持久化的 Volume 

7.5.5 PV 的使用:從手動到自動 

7.5.6 Kubernetes 存儲系統設計 

7.5.7 存儲分類:塊存儲、文件存儲和對象存儲 

7.6 容器間通信的原理 

7.6.1 Overlay 覆蓋網絡模式 

7.6.2 三層路由模式 

7.6.3 Underlay 底層網絡模式 

7.6.4 CNI 插件及生態 

7.7 資源模型及編排調度 

7.7.1 資源模型與資源管理 

7.7.2 擴展資源與設備插件 

7.7.3 默認調度器及擴展設計  

7.8 資源彈性伸縮 

7.8.1 Pod 水平自動伸縮 

7.8.2 Pod 垂直自動伸縮 

7.8.3 基於事件驅動的伸縮 

7.8.4 節點自動伸縮 

7.9 小結 

第 8 章 服務網格技術 

8.1 什麼是服務網格 

8.2 服務間通信的演化 

8.2.1 原始的通信時代 

8.2.2 第一代微服務 

8.2.3 第二代微服務 

8.2.4 微服務框架的痛點 

8.2.5 思考服務間通信的本質 

8.2.6 代理模式的探索 

8.2.7 第一代服務網格 

8.2.8 第二代服務網格 

8.3 數據平面的設計 

8.3.1 Sidecar 自動註入 

8.3.2 流量透明劫持 

8.3.3 實現可靠通信 

8.4 控制面的設計 

8.5 服務網格的產品與生態 

8.5.1 Linkerd2 出擊 

8.5.2 其他參與者 

8.5.3 Istio 與 Linkerd2 性能對比 

8.6 服務網格的未來 

8.6.1 Proxyless 模式 

8.6.2 Sidecarless 模式 

8.6.3 Ambient Mesh 模式 

8.7 小結 

第 9 章 系統可觀測性 

9.1 什麼是可觀測性 

9.2 可觀測性與傳統監控的區別 

9.3 遙測數據的分類與處理 

9.3.1 指標的處理 

9.3.2 日誌的索引與存儲 

9.3.3 分布式鏈路追蹤 

9.3.4 性能剖析 

9.3.5 核心轉儲 

9.4 可觀測標準的演進 

9.5 小結 

第 10 章 應用封裝與交付 

10.1 “以應用為中心”的設計思想 

10.2 聲明式管理的本質 

10.2.1 控制器模式 

10.2.2 基礎設施即數據思想  

10.3 從“封裝配置”到“應用模型” 

10.3.1 Kustomize 

10.3.2 Helm 與 Chart 

10.3.3 Operator 

10.3.4 OAM 與 KubeVela 

10.4 小結 

附錄 A 術語縮寫與釋義