|
前端Serverless:面向全棧的無服務器架構實戰
|
|
|
|
|
|
|
|
|
ISBN |
9787121409813 |
定价 |
RMB89.00 |
售价 |
RM97.90 |
优惠价 |
RM73.43 * (-25%)
|
作者 |
楊凱
|
出版社 |
電子工業出版社
|
出版日期 |
2021-05-01 |
装订 |
平裝. 單色印刷. 266 页. 26. |
库存量 |
海外库存 下单时可选择“空运”或“海运”(空运和海运需独立下单)。空运费每本书/CD是RM27.00。 空运需时8-11个工作天,海运需时约30个工作天。 (以上预计时间不包括出版社调货的时间以及尚未出版的预购商品) |
|
有现货时通知我 |
|
放入下次购买清单 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
本書以雲原生(Cloud Native)技術為背景,講述了 Serverless 的基本原理與實戰應用。書中首先探討 Serverless 與當前雲計算技術和前端技術的關係,隨後分別從 Serverless 的兩大能力(FaaS 和 BaaS)展開,探討了它們的歷史由來和底層原理,並且結合實際應用場景,有針對性地提供了操作指南。
本書從手動構建一套基於進程的 FaaS 架構開始,之後深入剖析雲計算服務的內核,闡述其背後的原理和思想,從而讓讀者理解下一代軟體架構的本質。
本書主要從前端研發人員的視角介紹 Serverless 的原理及應用。相信無論是希望更多瞭解服務端技術的前端研發人員,還是已經涉足後端但希望更多瞭解雲原生技術的全棧工程師,或是希望通過 Serverless 提升團隊研發效率的架構師,都會從閱讀本書中獲益良多。
|
|
|
|
|
|
|
|
|
|
|
|
購買中國簡體書籍請注意:
1. 因裝幀品質及貨運條件未臻完善,中國簡體書可能有出現磨痕、凹痕、折痕等問題,故簡體字館除封面破損、內頁脫落、缺頁等較嚴重的狀態外,其餘所有商品將正常出貨。
|
|
|
|
|
|
|
|
|
目錄
第一部分 Serverless 綜述
第 1 章 什麼是 Serverless . 2
1.1 Serverless 的價值 .. 3
1.2 Serverless 是一種理念 5
1.3 Serverless 一詞的誕生 8
1.4 CNCF Serverless 白皮書 . 10
1.5 Serverless 與前端架構 .. 12
1.6 從前端到全棧 18
本章小結 .. 19
第 2 章 何時應用 Serverless . 20
2.1 Serverless 的優勢與劣勢 . 20
2.2 服務端的應用場景 . 22
2.2.1 多媒體處理 . 23
2.2.2 資料庫變更捕獲 .. 24
2.2.3 處理 IoT 請求 . 25
2.2.4 聊天機器人 . 26
2.2.5 計畫任務 .. 27
2.2.6 通用後端服務 27
2.3 前端的應用場景 .. 28
2.3.1 Web 應用 . 29
2.3.2 SSR 應用 . 29
2.3.3 移動用戶端應用 .. 31
2.3.4 小程式 31
本章小結 .. 31
第 3 章 Serverless 與服務端技術 . 32
3.1 應用分層架構 32
3.2 微服務架構 . 34
3.3 雲計算 37
3.4 容器化 39
3.5 NoOps . 40
本章小結 .. 42
第 4 章 Serverless 與前端技術 . 43
4.1 Backend For Frontend 43
4.2 Node.js 44
4.3 TypeScript . 45
4.4 GraphQL 46
4.5 NoBackend .. 47
本章小結 .. 47
第二部分 FaaS 技術
第 5 章 理解 FaaS 50
5.1 FaaS 的特性 .. 50
5.1.1 函數由事件驅動 .. 50
5.1.2 無狀態的函數 51
5.1.3 函數應當足夠簡單 . 51
5.2 FaaS 的優點 .. 52
5.2.1 更高的研發效率 .. 52
5.2.2 更低的部署成本 .. 53
5.2.3 更低的運維成本 .. 54
5.2.4 更低的學習成本 .. 54
5.2.5 更低的伺服器費用 . 55
5.2.6 更靈活的部署方案 . 56
5.2.7 更高的系統安全性 . 56
5.3 FaaS 的缺點 .. 57
5.3.1 存在平臺學習成本 . 57
5.3.2 較高的調試成本 .. 58
5.3.3 潛在的性能問題 .. 58
5.3.4 供應商鎖定問題 .. 59
本章小結 .. 60
第 6 章 第一個函數 . 61
6.1 從控制台創建 61
6.1.1 開通產品 .. 61
6.1.2 創建一個函數 62
6.1.3 調用函數 .. 64
6.2 基於命令列工具 .. 64
6.2.1 安裝命令列工具 .. 64
6.2.2 身份認證配置 65
6.2.3 初始化 FaaS 項目 . 66
6.2.4 本地調試 .. 67
6.2.5 發佈項目 .. 69
6.3 Serverless Framework. 70
6.3.1 初始化命令列工具 . 70
6.3.2 阿裡雲授權 . 71
6.3.3 開通配套服務 71
6.3.4 創建項目 .. 72
6.3.5 發佈部署 .. 72
6.3.6 遠程調用 .. 73
本章小結 .. 73
第 7 章 函數的生命週期 74
7.1 函數的定義 . 74
7.1.1 函數名 74
7.1.2 參數 . 75
7.2 函數的調試 . 76
7.2.1 本地調用 .. 76
7.2.2 線上調用 .. 77
7.3 函數的發佈 . 77
7.3.1 配置 . 77
7.3.2 編譯 . 78
7.3.3 部署 . 78
7.4 函數的更新 . 78
7.4.1 測試與發佈 . 78
7.4.2 灰度與 A/B 測試 . 80
本章小結 .. 81
第 8 章 理解函數運行時 82
8.1 函數的觸發 . 82
8.1.1 用戶端觸發器 83
8.1.2 實踐:通過 Web API 調用函數 83
8.1.3 消息觸發器 . 88
8.1.4 實踐:通過消息觸發函數 . 89
8.1.5 存儲觸發器 . 92
8.1.6 實踐:生成上傳圖片的縮略圖 .. 93
8.1.7 其他觸發器 . 98
8.2 函數的執行 . 98
8.2.1 入口方法 .. 98
8.2.2 運行時 99
8.2.3 日誌輸出 100
8.2.4 實踐:查詢函式呼叫日誌 .. 100
本章小結 101
第 9 章 自建簡易 FaaS .. 102
9.1 基礎能力 102
9.1.1 基於進程隔離運行函數 103
9.1.2 標準函數的執行能力 . 105
9.1.3 更安全的執行環境 .. 106
9.1.4 增加 HTTP 服務 . 111
9.2 進階挑戰 114
9.2.1 提升性能:通過進程池管理子進程的生命週期 .. 115
9.2.2 增強安全性:限制函數的執行時間 . 119
9.2.3 確保穩定性:對函數資源進行限制 . 122
9.2.4 提高效率:內置前端常用服務 128
本章小結 130
第三部分 BaaS 技術
第 10 章 BaaS 的由來 . 132
10.1 傳統的 IT 時代:原始部落的刀耕火種 . 132
10.2 雲計算時代:現代城市的集中供應 133
10.3 新一代基礎設施:CaaS . 134
10.4 PaaS 的演進:BaaS . 136
10.5 Google Firebase 137
10.6 BaaS 的優勢和價值 .. 142
本章小結 144
第 11 章 初始化 BaaS 應用 .. 145
11.1 註冊小程式的帳號. 145
11.2 配置雲服務 146
11.3 初始化代碼 148
11.4 添加 BaaS SDK .. 150
本章小結 151
第 12 章 資料的持久化 152
12.1 資料庫設計原則 . 154
12.1.1 BSON 與資料類型 .. 154
12.1.2 三大範式與 NoSQL 資料庫 .. 155
12.1.3 引用方式:規範資料模型 156
12.1.4 內嵌方式:高效資料模型 158
12.2 使用資料存儲服務 159
12.2.1 通過控制台管理集合 .. 159
12.2.2 通過用戶端查詢資料 .. 162
12.2.3 在雲函數中調用 . 162
12.2.4 資料許可權管理 .. 165
12.2.5 實踐:數據的 CURD . 165
本章小結 167
第 13 章 檔的存儲與分發 .. 168
13.1 內容分發網路(CDN) . 168
13.1.1 性能優化的利器 . 168
13.1.2 CDN 加速的基本原理 169
13.1.3 檔存儲與 CDN .. 170
13.2 使用檔存儲服務 172
13.2.1 通過控制台管理文件 .. 172
13.2.2 文件的許可權管理 . 173
13.2.3 使用 SDK 上傳 . 174
13.2.4 實踐:實現圖片的上傳和展示 . 174
本章小結 180
第 14 章 用戶身份識別與授權 . 181
14.1 認證的演進 181
14.1.1 統一身份認證:OpenID 182
14.1.2 協力廠商授權登錄:OAuth . 185
14.1.3 進一步完善:OIDC . 189
14.2 身份認證即服務:Auth0 .. 191
14.2.1 註冊並創建租戶 . 191
14.2.2 控制中心概覽 .. 192
14.3 實踐:實現基於 Auth0 的身份認證 . 195
14.3.1 創建並配置應用 . 195
14.3.2 創建登錄頁面 .. 196
14.3.3 啟動 Web 服務 .. 198
14.3.4 實現登錄與註銷 . 198
14.3.5 用戶體驗改進 .. 202
14.4 實踐:實現 GitHub 帳號授權 .. 206
14.4.1 開通 GitHub OAuth . 206
14.4.2 配置協力廠商登錄 . 208
14.4.3 測試與認證 209
14.5 擴展:詳解 JWT 209
14.5.1 權杖的類型 210
14.5.2 構造一個權杖 .. 211
14.5.3 深入理解 JWT 原理 .. 213
14.5.4 JWT 的優勢/劣勢與應用場景 .. 218
本章小結 223
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
楊凱(亞頓),具有10年以上前後端全棧研發經驗,曾為天貓精靈前端負責人,參與了天貓精靈從0到1的建設過程。專注於前端架構及用戶體驗,對 BFF、微前端、Serverless 等技術如何在業務中規模化應用以提高研發和協作效率、改善用戶體驗,具有豐富的實踐經驗。
|
|
|
|
|
|
|
|
|
|
|
|