求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

Serverless核心技術和大規模實踐檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋

來自 孔夫子網 的圖片

Serverless核心技術和大規模實踐》,ByteFaaS函數計算團隊 著,出版社: 人民郵電出版社。

人民郵電出版社,1953年10月成立,隸屬於中國工信出版傳媒集團,是工業和信息化部主管的大型專業出版社[1]。建社以來,人民郵電出版社圍繞「立足工信事業,面向現代社會,傳播科學知識,引領美好生活」的出版宗旨,已發展成為集圖書、期刊、音像電子及數字出版於一體的綜合性出版大社[2]

內容簡介

本書着眼於 Serverless 方向,重點介紹 FaaS 的架構和實現原理。本書從 Serverless 的理念和基礎知識出發,介紹業內具有代表性的 Serverless 產品,進而引出字節跳動函數計算產品 ByteFaaS,並介紹 ByteFaaS 的定位、特點和生態,以及整體架構等;詳細介紹傳統 FaaS 架構,包括 FaaS 控制面、FaaS 數據面、FaaS 運行時、FaaS 觸發器、FaaS 彈性伸縮等核心組件的設計與實現;闡述 FaaS 助推 PaaS 演進的思路和技術實踐,並延伸到 FaaS 輕量級函數與雲邊一體;介紹 Serverless 在字節跳動的落地實踐和對 Serverless 未來的展望。

目錄

第 1 章 Serverless 基礎知識 1

1.1 Serverless 基礎概念 1

1.1.1 Serverless 理念 1

1.1.2 Serverless 技術特點 2

1.2 Serverless 技術能力 4

1.3 Serverless 應用場景 4

1.4 本章小結 7

第 2 章 業內概況 9

2.1 業界產品 9

2.1.1 AWS Lambda 9

2.1.2 Google Cloud Platform 10

2.1.3 Cloudflare Workers 11

2.1.4 Compute@Edge 13

2.2 開源項目 13

2.2.1 OpenFaaS 13

2.2.2 Fission 14

2.2.3 Knative 15

2.3 字節跳動 ByteFaaS 15

2.3.1 定位、特點和生態 15

2.3.2 整體架構 16

2.3.3 應用規模 18

2.4 本章小結 18

第 3 章 FaaS 控制面 19

3.1 控制面的整體架構 19

3.2 多地區多機房部署 21

3.2.1 單地區多機房容災部署 21

3.2.2 多地區統一控制面 22

3.3 構建和發布 24

3.3.1 構建 24

3.3.2 發布 25

3.4 可觀測性 27

3.4.1 日誌 27

3.4.2 監控 29

3.4.3 鏈路追蹤 31

3.5 開發體驗 31

3.5.1 ByteFaaS CLI 32

3.5.2 本地調試 33

3.5.3 在線調試 34

3.6 本章小結 37

第 4 章 FaaS 數據面 39

4.1 數據面整體架構 39

4.2 函數實例管理 41

4.2.1 函數實例的服務發現 41

4.2.2 函數實例的就緒檢測 42

4.3 函數流量調度 44

4.3.1 函數請求並發控制 45

4.3.2 函數分片 46

4.3.3 函數實例緩存 48

4.3.4 自適應降載 49

4.4 函數冷啟動優化 51

4.4.1 冷啟動問題背景 51

4.4.2 鏡像代碼分離 52

4.4.3 函數實例預熱 53

4.4.4 冷啟動實例調度 54

4.4.5 用戶側優化 56

4.5 函數代碼分發 57

4.5.1 多級緩存 58

4.5.2 下載優化 59

4.5.3 大規模分發 59

4.6 本章小結 61

第 5 章 FaaS 運行時 63

5.1 函數運行時 63

5.1.1 函數運行時規範 64

5.1.2 函數實例生命周期 67

5.2 函數運行時隔離技術 70

5.2.1 基於 Docker 的容器封裝隔離 . 70

5.2.2 從 Docker 到 containerd 的遷移 71

5.2.3 輕量級虛擬化:從 runC 到 Kata Containers 73

5.2.4 Unikernel 76

5.2.5 進程內隔離 78

5.3 函數運行時性能優化 80

5.3.1 RuntimeAgent 進程和數據面性能損耗 81

5.3.2 在 net/http 基礎上的優化 81

5.3.3 更優的 CPU、內存分配策略 84

5.4 本章小結 86

第 6 章 FaaS 觸發器 87

6.1 FaaS 平台常見的觸發器 87

6.1.1 觸發器的分類 87

6.1.2 HTTP 觸發器的設計與實現 . 88

6.1.3 服務發現觸發器的設計與實現 89

6.1.4 定時觸發器的設計與實現 89

6.2 MQ 觸發器的設計與實現 90

6.2.1 MQ 觸發器的整體設計 . 90

6.2.2 觸發函數的並發控制 92

6.2.3 函數調用的反壓控制 93

6.2.4 觸發函數的限流控制 94

6.3 MQ 觸發器在大規模場景下的優化 . 96

6.3.1 消息的高效過濾 96

6.3.2 觸發器的重新平衡優化 . 99

6.3.3 超大規模函數的連接數分片優化 101

6.4 基於 MQ 觸發器的第三方觸發器的接入 102

6.4.1 基於 Event Gateway 的接入 103

6.4.2 基於 MQ 的接入 103

6.5 本章小結 104

第 7 章 FaaS 彈性伸縮 105

7.1 彈性伸縮系統的定義和架構 105

7.1.1 彈性伸縮系統的定義 105

7.1.2 彈性伸縮系統的架構 106

7.2 彈性伸縮系統的策略設計 108

7.2.1 策略的分級和結合 108

7.2.2 策略的詳細設計 109

7.2.3 評分和策略反饋機制 110

7.3 彈性伸縮系統的指標設計 111

7.3.1 整體的架構設計 111

7.3.2 如何對指標數據進行存儲 . 113

7.3.3 FaaS MAS 自適應雲原生分片方案 114

7.4 彈性伸縮系統的分片架構 115

7.4.1 分片架構設計方案 115

7.4.2 分片架構的容錯機制 116

7.5 本章小結 117

第 8 章 FaaS 助推 PaaS 演進 119

8.1 FaaS Native:開發原生應用的解決方案 119

8.1.1 FaaS Native 的目標 120

8.1.2 運行原生應用代碼 120

8.1.3 自定義鏡像 121

8.2 多協議支持 124

8.2.1 數據調用與流量調度的解耦 124

8.2.2 HTTP/2 支持 126

8.2.3 gRPC 協議支持 128

8.2.4 Thrift 協議支持 131

8.2.5 客戶端流量接入 133

8.3 融入字節跳動微服務治理體系ByteMesh 135

8.3.1 ByteMesh: 字節跳動內部 Service Mesh 服務治理體系 136

8.3.2 上游服務訪問下游 FaaS . 137

8.3.3 上游 FaaS 訪問下游服務 138

8.3.4 FaaS 接入 ByteMesh 入流量代理 139

8.4 異步長時間執行任務支持 140

8.4.1 架構設計 140

8.4.2 任務管理 142

8.4.3 適用場景 144

8.5 本章小結 144

第 9 章 FaaS 輕量級函數與雲邊一體 . 145

9.1 輕量級函數 145

9.2 WebAssembly 輕量級函數運行時 146

9.2.1 什麼是 WebAssembly 146

9.2.2 Hostcall + WASI 147

9.2.3 運行時架構 149

9.2.4 冷啟動優化 150

9.2.5 代碼樣例 151

9.3 JavaScript 輕量級函數運行時 152

9.3.1 背景知識 153

9.3.2 Host API 153

9.3.3 運行時架構 154

9.3.4 冷啟動優化 155

9.3.5 代碼樣例 156

9.3.6 兩種函數輕量級運行時對比 157

9.4 精簡架構 158

9.4.1 整體架構 158

9.4.2 請求路徑 160

9.4.3 流量調度 161

9.4.4 冷啟動優化 162

9.4.5 高密度部署 164

9.5 雲邊架構 165

9.5.1 理念介紹 165

9.5.2 流量接入 166

9.5.3 雲邊通信 167

9.5.4 邊緣可用性 169

9.6 存儲服務 171

9.6.1 存儲資源 172

9.6.2 Global KV 172

9.6.3 Local Cache 174

9.6.4 多層緩存機制 176

9.7 開發者工具 177

9.7.1 代碼在線預覽工具 177

9.7.2 JavaScript 輕量級函數開發工具 179

9.8 本章小結 180

第 10 章 Serverless 在字節跳動的落地實踐 181

10.1 突破 Serverless 資源和性能的瓶頸 181

10.2 基於 Kubernetes 的雲原生體系 183

10.3 觸發器和自動擴縮容,承載大規模消費場景 184

10.3.1 一鍵配置,支持活動業務的快速迭代 184

10.3.2 彈性伸縮,潮汐流量的省錢「利器」 185

10.4 通用型 Serverless,多協議支持PaaS 演進 186

10.4.1 早期嘗試:基於 HTTP 的Thrift RPC 186

10.4.2 原生支持:與周邊團隊深度合作,打通 RPC 生態 . 187

10.4.3 進一步發揮 FaaS 優勢,RPC 與事件驅動架構結合 . 188

10.5 輕量級函數,打造雲邊一體架構 188

10.5.1 收斂長尾函數,承載突發流量 188

10.5.2 邊緣業務上線 189

10.6 本章小結 191

第 11 章 Serverless 展望 193

11.1 規範標準 193

11.2 通用型 Serverless 194

11.3 雲邊一體 196

11.4 本章小結 197

參考文獻

  1. 我國出版社的等級劃分和分類標準,知網出書,2021-03-01
  2. 人民郵電出版社簡介,人民郵電出版社