
內容簡介
本書圍繞“構建高可用係統”(更可靠、更敏捷、更低成本)的主題,係統闡述近年來的技術演進路徑與底層原理。
第 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.1Pivotal對雲原生的定義
1.3.2CNCF對雲原生的定義
1.3.3雲原生定義之外
1.4雲原生技術的目標
1.5雲原生代表技術
1.5.1容器技術
1.5.2微服務
1.5.3服務網格
1.5.4可變基礎設施與不可變基礎設施
1.5.5聲明式設計
1.5.6DevOps
1.6雲原生架構的演進
1.7雲原生架構技術棧
1.8小結
第2章構建“足夠快”的網絡服務
2.1了解各類延遲指標
2.2HTTPS請求優化分析
2.2.1請求階段分析
2.2.2各階段耗時分析
2.2.3HTTPS的優化總結
2.3域名解析的原理與實踐
2.3.1域名解析的原理
2.3.2排查域名解析故障
2.3.3Facebook故障分析與總結
2.3.4使用HTTPDNS解決“中間商”問題
2.4使用Brotli壓縮傳輸內容
2.5HTTPS加密原理及優化實踐
2.5.1HTTPS加密原理
2.5.2HTTPS優化實踐
2.6網絡擁塞控製原理與實踐
2.6.1網絡擁塞控製原理
2.6.2早期擁塞控製旨在收斂
2.6.3現代擁塞控製旨在效能最大化
2.6.4BBR的設計原理
2.6.5BBR的性能表現
2.7對請求進行“動態加速”
2.8QUIC設計原理與實踐
2.8.1QUIC出現的背景
2.8.2QUIC的特點
2.8.3QUIC實踐
2.9小結
第3章深入Linux內核網絡技術
3.1OSI網絡分層模型
3.2Linux係統收包流程
3.3Linux內核網絡框架
3.3.1Netfilter的5個鉤子
3.3.2數據包過濾工具iptables
3.3.3連接跟蹤模塊conntrack
3.4內核旁路技術
3.4.1數據平麵開發套件DPDK
3.4.2eBPF和快速數據路徑XDP
3.4.3遠程直接內存訪問RDMA
3.5Linux網絡虛擬化
3.5.1網絡命名空間
3.5.2虛擬網絡設備TUN和TAP
3.5.3虛擬網卡Veth
3.5.4虛擬交換機LinuxBridge
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.4TLS卸載
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.2TCC
5.3.3Saga
5.4服務冪等性設計
5.4.1全局唯一ID方案
5.4.2樂觀鎖方案
5.5小結
第6章分布式共識及算法
6.1什麼是共識
6.2日誌與複製狀態機
6.3Paxos算法
6.3.1Paxos算法起源
6.3.2Paxos算法詳述
6.4Raft算法
6.4.1領導者選舉
6.4.2日誌複製
6.4.3成員變更
6.5小結
第7章容器編排技術
7.1容器編排係統的演進
7.1.1Borg係統
7.1.2Omega係統
7.1.3Kubernetes係統
7.1.4以應用為中心的轉變
7.2容器技術的原理與演進
7.2.1文件係統隔離
7.2.2資源全方位隔離
7.2.3資源全方位限製
7.2.4設計容器協作的方式
7.2.5超親密容器組Pod
7.2.6Pod是Kubernetes的基本單位
7.2.7Pod是調度的原子單元
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.1Docker與Kubernetes
7.4.2容器運行時接口CRI
7.4.3Kubernetes專用容器運行時
7.4.4Containerd與CRI
7.4.5安全容器運行時
7.4.6容器運行時生態
7.5容器持久化存儲設計
7.5.1Docker的存儲設計
7.5.2Kubernetes的存儲設計
7.5.3普通的Volume
7.5.4持久化的Volume
7.5.5PV的使用:從手動到自動
7.5.6Kubernetes存儲係統設計
7.5.7存儲分類:塊存儲、文件存儲和對象存儲
7.6容器間通信的原理
7.6.1Overlay覆蓋網絡模式
7.6.2三層路由模式
7.6.3Underlay底層網絡模式
7.6.4CNI插件及生態
7.7資源模型及編排調度
7.7.1資源模型與資源管理
7.7.2擴展資源與設備插件
7.7.3默認調度器及擴展設計
7.8資源彈性伸縮
7.8.1Pod水平自動伸縮
7.8.2Pod垂直自動伸縮
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.1Sidecar自動注入
8.3.2流量透明劫持
8.3.3實現可靠通信
8.4控製麵的設計
8.5服務網格的產品與生態
8.5.1Linkerd2出擊
8.5.2其他參與者
8.5.3Istio與Linkerd2性能對比
8.6服務網格的未來
8.6.1Proxyless模式
8.6.2Sidecarless模式
8.6.3AmbientMesh模式
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.1Kustomize
10.3.2Helm與Chart
10.3.3Operator
10.3.4OAM與KubeVela
10.4小結
附錄A術語縮寫與釋義
······
最後修改:2025 年 10 月 12 日
© 允許規範轉載
