華為Serverless核心技術與實踐
內容描述
華為2012實驗室自研的分佈式內核——華為元戎,作為底座支撐了華為終端雲通過Serverless快速開發和上線商業服務的應用場景。本書以此為例,系統地剖析了構建Serverless平臺的設計思路和實現方案,幫助讀者掌握理論知識和實踐方法。本書共分10章,內容涵蓋了從微服務到Serverless演進的機遇與挑戰、基礎知識與組件工具、當前生態與發展方向,以及華為元戎創新構建的有狀態函數編程模型、高性能函數運行時、高效對接BaaS服務等一系列Serverless核心技術,並配套介紹了雲數據庫、雲存儲、雲托管等一系列開箱即用的Serverless後端服務。最後,以華為終端雲AppGallery Connect平臺的翻譯服務作為應用案例,完整展示了從技術選型、架構設計、代碼示例到實現效果的端到端實踐經驗,啟發讀者活學活用Serverless技術。 本書可作為廣大開發者、科研人員和信息專業的本科生與研究生等學習Serverless技術的入門讀物,也可作為雲計算與分佈式系統等領域從業人員深入瞭解Serverless架構的參考書。
目錄大綱
1 Serverless綜述 1
1.1 微服務面臨的挑戰 1
1.2 什麼是Serverless 4
1.2.1 Serverless的定義 6
1.2.2 Serverless關鍵技術 8
1.3 Serverless帶來的核心變化 10
1.3.1 Serverless的技術創新 10
1.3.2 Serverless的其他優點 13
1.3.3 Serverless和微服務的差異 14
1.4 Serverless生態現狀 15
1.4.1 平台 16
1.4.2 框架 31
1.4.3 事件總線 35
1.4.4 函數工作流 38
1.5 Serverless的挑戰與機遇 44
1.6 總結 48
2 新一代Serverless技術 50
2.1 設計理念 50
2.2 技術架構 52
2.2.1 概念模型 52
2.2.2 邏輯架構 53
2.2.3 核心技術創新盤點 55
3 有狀態函數編程模型 56
3.1 設計原理 56
3.1.1 狀態與有狀態函數 56
3.1.2 有狀態函數編程模型的實現 59
3.1.3 有狀態函數的並發一致性模型 73
3.1.4 有狀態函數應用場景 75
3.1.5 有狀態函數的使用原則 82
3.2 自走棋遊戲編程模型設計示例 83
3.2.1 自走棋遊戲介紹 83
3.2.2 函數的實現分析及有狀態函數重構 85
3.2.3 有狀態函數的效果 94
4 高性能函數運行時 96
4.1 函數運行時的設計和實現 96
4.2 函數冷啟動 100
4.2.1 問題分析 100
4.2.2 資源池化 101
4.2.3 代碼緩存 102
4.2.4 調用鏈預測 103
4.3 彈性伸縮 105
4.3.1 彈性策略選擇 105
4.3.2 華為元戎彈性方案設計 108
4.4 函數調度 111
4.4.1 調度的關鍵維度 111
4.4.2 調度策略 113
4.4.3 函數調度佳實踐 115
4.5 性能評測 116
5 高效對接BaaS服務 120
5.1 Event Bridge:BaaS服務連接函數的橋樑 120
5.1.1 Event Bridge基本概念 122
5.1.2 Event Bridge架構 123
5.1.3 CloudEvents 126
5.1.4 Event Bridge的應用 126
5.2 Service Bridge:函數訪問BaaS服務的橋樑 130
5.2.1 Service Bridge設計目標 131
5.2.2 Service Bridge架構 134
5.2.3 Service Bridge功能 138
5.2.4 Service Bridge其他使用場景 143
6 雲數據庫服務 154
6.1 雲數據庫服務介紹 154
6.1.1 Serverless雲數據庫——Cloud DB 155
6.1.2 雲數據庫關鍵能力 156
6.2 雲數據庫數據模型 158
6.3 雲數據庫架構 159
6.3.1 彈性伸縮的多租戶架構 159
6.3.2 多租戶精細化管理 161
6.3.3 雲數據庫總結與挑戰 162
7 雲存儲服務 163
7.1 雲存儲服務介紹 163
7.1.1 Serverless雲存儲服務 164
7.1.2 Serverless雲存儲服務關鍵能力 165
7.2 雲存儲架構 166
7.2.1 總體架構 166
7.2.2 彈性伸縮架構 167
7.2.3 聲明式安全規則 168
7.3 雲存儲服務總結與挑戰 170
8 雲託管服務 171
8.1 雲託管服務架構 172
8.1.1 系統架構 172
8.1.2 核心功能特性 173
8.2 雲託管技術原理 174
8.2.1 自定義域名和證書管理 174
8.2.2 證書的自動更新 175
8.2.3 新的CDN接入 176
9 翻譯服務的Serverless架構設計 177
9.1 Serverless平台與翻譯服務 177
9.1.1 AppGallery Connect Serverless平台 178
9.1.2 雲函數 178
9.1.3 雲數據庫 179
9.1.4 雲存儲 180
9.1.5 雲託管 181
9.1.6 翻譯服務 182
9.2 翻譯服務架構技術選型 187
9.2.1 業務特點 187
9.2.2 團隊特點 189
9.2.3 技術需求 190
9.2.4 成本需求 191
9.2.5 架構選型 192
9.3 翻譯服務Serverless架構 195
9.3.1 功能架構 196
9.3.2 函數劃分策略 197
9.3.3 技術架構 204
9.3.4 關鍵架構質量屬性設計 205
10 翻譯服務實戰開發 217
10.1 基於Serverless技術的翻譯服務開發 217
10.1.1 翻譯服務網站託管 217
10.1.2 基於雲函數開發後台邏輯 224
10.1.3 翻譯稿件存儲 244
10.1.4 使用雲數據庫管理數據 246
10.1.5 翻譯服務上線效果 251
10.2 傳統開發模式與Serverless模式對比 252
10.2.1 研發角色和職責變化 253
10.2.2 不同開發模式對比 254
10.2.3 研發效率對比 255
10.3 Serverless技術演進 257
10.3.1 傳統中間件的Serverless化 257
10.3.2 Serverless模型化 258
10.3.3 與遺留系統的對接 258
10.3.4 關鍵技術瓶頸的突破 259
10.3.5 Serverless低代碼平台 259
作者介紹
劉方明
華中科技大學教授、博導,國家優秀青年科學基金獲得者、組織部青年拔尖人才,入選愛思唯爾中國高被引學者;長期從事分佈式系統與網絡技術的相關研究,包括雲計算與邊緣計算、數據中心與綠色計算、SDN/NFV與5G等領域;在國內外著名期刊和會議發表百餘篇論文並多次獲佳論文獎,有多項專利在美國和中國獲批;曾獲國家自然科學二等獎和自然科學一等獎,曾任國家自然科學基金委信息學部會評專家及多個CCF的A類國際會議程序委員會委員。
李林鋒
華為消費者云服務應用市場高級技術總監,精通平台中間件、雲原生、Serverless和移動應用分發相關技術,《Netty指南》《Netty進階之路》《分佈式服務框架原理與實踐》等書作者,目前在華為應用市場從事雲原生、AppGallery Connect等平台的技術架構設計工作。
王 磊
華為Serverless平台高級架構師,在Serverless、微服務架構及DevOps領域有豐富的經驗,著有《微服務架構與實踐》一書,同時也是《DevOps實踐指南》的譯者及EXIN DevOps Master認證教練。