Serverless工程實踐:從入門到進階

劉宇

  • 出版商: 機械工業
  • 出版日期: 2021-07-01
  • 售價: $774
  • 貴賓價: 9.5$735
  • 語言: 簡體中文
  • 頁數: 424
  • 裝訂: 平裝
  • ISBN: 7111686233
  • ISBN-13: 9787111686231
  • 相關分類: Serverless
  • 立即出貨

買這商品的人也買了...

商品描述

本書是一本關於Serverless架構從原理、入門到實戰的技術書籍,
本書通過多個開源項目(包括不限於Knative、OpenWhisk、Kubeless等)、多個雲廠商的多款雲產品(
包括不限於阿里雲函數計算、阿里雲Serverless工作流、騰訊云云函數、
華為雲函數工作流、百度智能雲函數計算、AWS Lambda、Google Cloud Platform Functions等),
通過多種途徑向讀者介紹什麼是Serverless架構、如何上手Serverless架構、
不同領域中Serverless架構的應用以及如何從零開發一個Serverless應用等,
希望讀者通過對本書的閱讀,可以對Serverless架構有一個更加全面、直觀地了解,
可以通過本書的拋磚引玉,幫助讀者將Serverless項目真實落地,
將Serverless架構融入到自己所在的領域,獲得Serverless架構帶來的技術紅利。

作者簡介

劉宇(花名:江昱)
國防科技大學電子信息專業博士,阿里雲Serverless產品體驗側負責人,從事Serverless相關的工作多年,負責阿里雲函數計算(FC)、Serverless工作流(FNF)等產品的體驗工作,有豐富的實踐經驗。
阿里雲戰略級開源項目Serverless Devs發起人和負責人,Serverless Framework、Kubevela等開源項目貢獻者,社區項目Anycodes在線編程負責人。
阿里雲Serverless雲佈道師,CIO學院特聘講師。
暢銷書《Serverless架構:從原理、設計到項目實戰》作者,電子書《架構師特刊:人人都能學會的Serverless 實踐》(InfoQ出品)作者。

目錄大綱

序一
序二
序三

序五
序六
序七
序八
前言
0章 從雲計算到Serverless 1
一部分 概念與產品
1章 什麼是Serverless 8
1.1 Serverless的定義 8
1.1.1 廣義定義探索 8
1.1.2 Serverless工作流程 10
1.2 Serverless規範 12
1.2.1 FaaS解決方案模型 12
1.2.2 函數的規範與定義 12
1.2.3 函數生命週期 15
1.2.4 其他規範 20
1.3 Serverless的特點 35
1.3.1 優勢與特點 35
1.3.2 面臨的挑戰 38
1.4 典型應用場景 43
1.4.1 實時文件處理 44
1.4.2 數據ETL處理 44
1.4.3 實時數據處理 44
1.4.4 AI推理預測 45
1.4.5 IoT後端 45
1.4.6 Web應用/移動應用後端 46
1.4.7 音視頻轉碼 46
1.5 未來可期 47

2章 主流Serverless平台和產品 48
2.1 工業FaaS平台 48
2.1.1 AWS Lambda 48
2.1.2 Google Cloud Functions 50
2.1.3 Azure Functions 52
2.1.4 阿里雲函數計算 54
2.1.5 華為雲函數工作流 57
2.1.6 騰訊云云函數 59
2.2 開源FaaS平台 60
2.2.1 Knative 61
2.2.2 Apache OpenWhisk 65
2.2.3 Fission 69
2.2.4 Kubeless 76

二部分 開發入門
3章 從零入門Serverless 84
3.1 創建函數 84
3.1.1 AWS Lambda 84
3.1.2 Google Cloud Functions 87
3.1.3 阿里雲函數計算 89
3.1.4 華為雲函數工作流 91
3.1.5 騰訊云云函數 94
3.2 開發一個Serverless應用 97
3.2.1 知識準備 98
3.2.2 項目開發 101
3.2.3 舉一反三 105
3.3 觸發器 106
3.3.1 定時觸發器 108
3.3.2 對象存儲觸發器 108
3.3.3 API網關觸發器 108
3.4 傳統Web框架遷移 113
3.4.1 請求集成方案 114
3.4.2 其他方案 117

4章 Serverless應用開發、調試與優化 120
4.1 Serverless應用開發觀念的轉變 120
4.1.1 文件上傳方法 120
4.1.2 文件讀寫與持久化方法 124
4.1.3 慎用部分Web框架的特性 125
4.1.4 要注意應用組成結構 125
4.2 Serverless應用調試秘訣 126
4.2.1 在線調試 126
4.2.2 本地調試 129
4.2.3 其他調試方案 130
4.3 細數Serverless的配套服務 132
4.3.1 開發者工具 132
4.3.2 Serverless Workflow 138
4.3.3 可觀測性 139
4.4 Serverless應用優化 141
4.4.1 資源評估依舊重要 141
4.4.2 合理的代碼包規格 141
4.4.3 合理復用實例 142
4.4.4 善於利用函數特性 143

5章 從零搭建FaaS平台 146
5.1 零基礎上手Knative應用 146
5.1.1 Knative簡介 146
5.1.2 Knative部署 147
5.1.3 體驗測試 150
5.2 自建Apache OpenWhisk平台 152
5.2.1 OpenWhisk簡介 152
5.2.2 OpenWhisk部署 152
5.2.3 開發者工具 156
5.2.4 體驗測試 157
5.3 快速搭建Kubeless平台 157
5.3.1 Kubeless簡介 157
5.3.2 Kubeless部署 158
5.3.3 下載命令行工具 159
5.3.4 體驗測試 160

三部分 工程實踐
6章 Serverless與監控告警、自動化運維 164
6.1 通過Serverless架構實現監控告警功能 164
6.1.1 Web服務監控告警 164
6.1.2 雲服務監控告警 172
6.1.3 總結 175
6.2 釘釘/企業微信機器人:GitHub觸發器與Issue機器人 176
6.2.1 GitHub觸發器的實現 176
6.2.2 GitHub Issue的識別 179
6.2.3 釘釘機器人/企業微信機器人的實現 181
6.2.4 Issue機器人的實現 183
6.2.5 總結 185
6.3 觸發器和函數賦能自動化運維 186
6.3.1 雲盤自動快照 186
6.3.2 服務器定時重啟 188
6.3.3 總結 190
6.4 Serverless CI/CD實踐案例 191
6.4.1 CI/CD實踐 191
6.4.2 總結 196

7章 Serverless在圖像、音視頻處理中的應用 197
7.1 Serverless架構下的圖片壓縮與加水印 197
7.1.1 Serverless的圖片壓縮方案 197
7.1.2 Serverless的圖片加水印方案 204
7.1.3 項目部署與測試 205
7.1.4 總結 208
7.2 Serverless架構下的音視頻處理 209
7.2.1 準備ffmpeg 210
7.2.2 音視頻處理 212
7.2.3 總結 222
7.3 Serverless:讓圖像合成更簡單 222
7.3.1 為頭像增加聖誕帽 222
7.3.2 為頭像增加固定裝飾 230
7.3.3 總結 233

8章 Serverless架構下的人工智能與大數據實戰 235
8.1 20行代碼:Serverless架構下用Python輕鬆實現圖像分類和預測 235
8.1.1 ImageAI與圖像識別 235
8.1.2 項目Serverless化 237
8.1.3 項目部署與測試 241
8.1.4 項目優化 242
8.1.5 總結 244
8.2 Serverless與NLP:讓我們的博客更有趣 244
8.2.1 賦能網站SEO 244
8.2.2 “為你寫詩”小工具 251
8.2.3 總結 258
8.3 基於Serverless架構的驗證碼識別功能 258
8.3.1 淺談驗證碼 258
8.3.2 驗證碼識別 260
8.3.3 基於Serverless架構的驗證碼識別 266
8.3.4 總結 272
8.4 函數計算與對象存儲實現WordCount 272
8.4.1 理論基礎 273
8.4.2 功能實現 274
8.4.3 測試體驗 279
8.4.4 總結 281

9章 Serverless架構在前端領域的應用 282
9.1 初識Serverless SSR 282
9.1.1 Serverless與SSR 283
9.1.2 總結 285
9.2 Serverless架構下的前後端一體化 286
9.2.1 前後端一體化的發展 286
9.2.2 Serverless與前後端一體化 288