前言
第1章 Serverless基礎 1
1.1 什麼是Serverless 1
1.2 Serverless帶來的價值 3
1.3 Serverless的技術實現 4
1.3.1 理念與實現 4
1.3.2 FaaS與BaaS 5
1.4 Serverless應用架構 7
1.4.1 傳統應用架構 7
1.4.2 Serverless應用架構 7
1.4.3 兩種架構的比較 8
1.5 Serverless的技術特點 9
1.6 Serverless的應用場景 11
1.7 Serverless的局限 12
1.8 本章小結 13
第2章 Serverless與相關技術 15
2.1 雲計算 15
2.1.1 從私有數據中心到雲 15
2.1.2 IaaS、PaaS與SaaS 16
2.1.3 Serverless與雲計算 17
2.2 微服務 18
2.2.1 從SOA到微服務 18
2.2.2 微服務的價值與挑戰 19
2.2.3 Serverless與微服務 19
2.3 容器 20
2.3.1 容器技術的興起 20
2.3.2 Serverless與容器 21
2.4 PaaS 22
2.4.1 以應用為中心 22
2.4.2 Serverless與PaaS 23
2.5 FaaS 24
2.5.1 Serverless實現的基礎 24
2.5.2 FaaS的架構 24
2.5.3 函數的生命周期 25
2.5.4 函數工作流 26
2.6 BaaS 26
2.6.1 BaaS的價值 26
2.6.2 廣義的Serverless 27
2.7 NoOps 27
2.7.1 無人運維嗎 27
2.7.2 “無服務器”與“無人運維” 28
2.8 DevOps 28
2.9 雲原生應用 29
2.9.1 因雲而生 29
2.9.2 Serverless與Cloud Native 29
2.10 本章小結 30
第3章 Serverless的實現 31
3.1 Serverless技術的發展 31
3.2 Serverless與公有雲 33
3.2.1 Amazon Web Services 34
3.2.2 Microsoft Azure 36
3.2.3 Google Cloud Platform 38
3.2.4 Webtask 39
3.2.5 Hyper.sh 39
3.2.6 阿裏雲 40
3.2.7 騰訊雲 42
3.2.8 小結 43
3.3 Serverless與私有化部署 43
3.3.1 OpenWhisk 43
3.3.2 Fission 44
3.3.3 Kubeless 45
3.3.4 OpenFaaS 45
3.3.5 Fn 47
3.3.6 小結 48
3.4 Serverless框架和工具 49
3.4.1 Serverless Framework 49
3.4.2 Chalice 50
3.4.3 Claudia.js 50
3.4.4 Apex 51
3.4.5 Spring Cloud Function 51
3.4.6 AWS SAM 52
3.4.7 小結 53
3.5 Serverless後颱服務 53
3.6 本章小結 54
第4章 AWS Lambda 55
4.1 AWS 55
4.2 AWS Serverless 56
4.3 AWS Lambda概述 57
4.4 第一個Serverless應用 58
4.4.1 獲取AWS賬號 58
4.4.2 AWS Lambda控製麵闆 59
4.4.3 創建函數 61
4.4.4 編輯函數 62
4.4.5 測試函數 63
4.4.6 外部訪問 63
4.4.7 運維監控 66
4.4.8 迴顧 66
4.5 權限控製 66
4.5.1 IAM 67
4.5.2 策略 68
4.5.3 角色 68
4.6 編程模型 69
4.6.1 代碼開發 69
4.6.2 Handler 70
4.6.3 執行上下文 70
4.6.4 日誌輸齣 71
4.6.5 異常處理 72
4.6.6 無狀態 72
4.7 事件驅動 73
4.7.1 事件源 73
4.7.2 觸發模式 74
4.8 日誌監控 75
4.9 開發輔助 77
4.9.1 環境變量 77
4.9.2 標簽 77
4.9.3 版本控製 78
4.10 運行限製 78
4.10.1 資源限製 79
4.10.2 並發控製 79
4.11 配置與部署 79
4.12 本章小結 81
第5章 Azure Functions 83
5.1 Microsoft Azure 83
5.2 Azure Functions概述 85
5.3 創建Azure Serverless應用 86
5.3.1 注冊Azure賬號 86
5.3.2 Azure控製颱 87
5.3.3 函數應用 88
5.3.4 創建函數 90
5.3.5 調用函數 92
5.3.6 日誌與監控 93
5.4 Azure Functions命令行 95
5.4.1 安裝命令行 95
5.4.2 創建本地函數 96
5.4.3 測試本地函數 97
5.4.4 發布至公有雲 98
5.5 深入瞭解Azure Functions 99
5.5.1 函數應用設置 99
5.5.2 Trigger與Bindings 101
5.5.3 函數代理 103
5.5.4 Slot 104
5.6 私有雲部署 105
5.7 本章小結 107
第6章 容器技術基礎 108
6.1 什麼是容器 108
6.1.1 容器 109
6.1.2 容器鏡像 110
6.1.3 鏡像倉庫 110
6.1.4 容器編排 111
6.1.5 容器與Serverless 111
6.2 Docker 111
6.2.1 Vagrant 111
6.2.2 VirtualBox 112
6.2.3 安裝Docker 113
6.2.4 運行容器 114
6.2.5 構建容器鏡像 116
6.2.6 分享鏡像 117
6.3 Kubernetes基礎 118
6.3.1 命名空間 120
6.3.2 Pod 120
6.3.3 Service 120
6.3.4 Deployment 120
6.3.5 ReplicaSet 121
6.3.6 網絡 121
6.3.7 Ingress 121
6.3.8 交互工具 122
6.4 構建Kubernetes環境 122
6.4.1 啓動Vagrant Box 123
6.4.2 修改默認域 124
6.5 Kubernetes實戰 124
6.5.1 部署容器 124
6.5.2 彈性擴展 126
6.5.3 服務發現 127
6.5.4 資源組織 128
6.5.5 容器調度 129
6.6 本章小結 131
第7章 OpenWhisk 132
7.1 OpenWhisk項目 132
7.2 Hello Whisk 133
7.3 邏輯架構 135
7.3.1 Namespace 136
7.3.2 Package 136
7.3.3 Action 137
7.3.4 Feed 141
7.3.5 Trigger 141
7.3.6 Rule 142
7.4 係統架構 143
7.5 Kubernetes部署 146
7.5.1 準備Kubernetes集群 146
7.5.2 集群基礎設置 146
7.5.3 創建訪問入口 149
7.5.4 部署組件 149
7.5.5 加載係統配置 153
7.5.6 測試集群 153
7.5.7 刪除集群 154
7.6 Helm部署 155
7.6.1 安裝Helm 155
7.6.2 環境配置 155
7.6.3 部署Chart 156
7.6.4 管理應用 156
7.7 蛋糕管理服務 156
7.7.1 開發環境 157
7.7.2 準備數據庫 157
7.7.3 定義Action 157
7.7.4 創建Package 159
7.7.5 部署Action 160
7.7.6 發布API 161
7.8 本章小結 162
第8章 Kubeless 163
8.1 Kubeless項目 163
8.1.1 係統架構 164
8.1.2 運行時 165
8.2 Kubeless概述 165
8.2.1 部署Kubeless 165
8.2.2 配置客戶端 166
8.2.3 部署函數 167
8.2.4 Kubeless UI 168
8.3 Function 169
8.3.1 函數部署 170
8.3.2 函數調用 172
8.3.3 資源限製 172
8.3.4 自動擴展 173
8.4 Trigger 173
8.4.1 HTTP Trigger 173
8.4.2 Cronjob Trigger 175
8.4.3 Kafka Trigger 175
8.4.4 NATS Trigger 178
8.5 本章小結 179
第9章 Fission 180
9.1 Fission項目 180
9.1.1 邏輯架構 180
9.1.2 係統架構 181
9.2 部署Fission 182
9.2.1 安裝Helm 182
9.2.2 部署Fission Chart 182
9.2.3 命令行工具 183
9.2.4 Hello Fission 183
9.3 深入探討Fission 184
9.3.1 Environment 185
9.3.2 Function 187
9.3.3 Package 188
9.3.4 Trigger 191
9.4 執行模式 192
9.4.1 Pool-based模式 192
9.4.2 New Deploy模式 193
9.5 Workflows 194
9.5.1 Workflows定義 194
9.5.2 配置Workflows 195
9.5.3 Fortune Whale 195
9.6 本章小結 197
第10章 OpenFaaS 199
10.1 OpenFaaS項目 199
10.1.1 OpenFaaS社區 200
10.1.2 係統架構 200
10.2 初識OpenFaaS 200
10.2.1 部署組件 201
10.2.2 命令行工具 202
10.2.3 創建函數 202
10.2.4 圖形界麵 203
10.3 OpenFaaS函數 203
10.3.1 抽象方式 203
10.3.2 函數模闆 204
10.3.3 創建函數 205
10.3.4 構建函數 206
10.3.5 推送鏡像 207
10.3.6 部署函數 207
10.4 Watchdog 208
10.4.1 工作原理 208
10.4.2 配置Watchdog 209
10.4.3 of-watchdog 210
10.5 監控 210
10.5.1 監控指標 210
10.5.2 監控麵闆 210
10.5.3 監控預警 213
10.6 彈性擴展 214
10.6.1 基於Alertmanager擴展 214
10.6.2 基於HPA擴展 215
10.7 函數應用市場 215
10.8 本章小結 217
第11章 Serverless的落地與展望 218
11.1 Serverless的落地 218
11.2 Serverless平颱建設 219
11.2.1 公有雲 219
11.2.2 私有雲 220
11.2.3 混閤雲 220
11.3 Serverless應用架構轉型 223
11.3.1 開發模式 223
11.3.2 設計原則 225
11.3.3 遷移與重構 226
11.4 Serverless的未來 227
11.4.1 建立行業規範 228
11.4.2 完善工具鏈 229
11.4.3 深入結閤容器 229
11.5 本章小結 230
後記232
· · · · · · (
收起)