《Dapr學習手冊》是2021年中國電力出版社出版的圖書。
基本介紹
- 書名:Dapr學習手冊
- 作者:[美]白海石,[美]亞龍·施耐德
- 類別:程式設計
- 出版社:中國電力出版社
- 出版時間:2021年
- 開本:16 開
- 裝幀:平裝-膠訂
- ISBN:9787519859367
內容簡介,圖書目錄,作者簡介,
內容簡介
了解雲原生套用的新編程模型。編寫高性能的分散式套用,而無需深入技術細節。使用Dapr輕鬆編寫基於任何語言或框架的微服務。了解Dapr如何通過開放的API,以及可擴展、社區驅動的組件來提供的一致性和可移植性。探索Dapr如何處理狀態、資源綁定、以及發布/訂閱來實現可伸縮、可擴展、事件驅動的架構。將各種SaaS產品的能力集成進雲套用,比如機器學習。
圖書目錄
前言 .1
第0 章 簡介 .7
0.1 什麼是 Dapr 7
0.1.1 異構環境的編程模型 9
0.1.2 更多的幫助,更少的傾向 . 10
0.1.3 不要重複造輪子! 11
0.1.4 統一的編程模型 12
0.2 Dapr 的架構 13
語言支持 15
0.3 開始使用 Dapr 16
0.3.1 Dapr 獨立模式下的 Hello world ! 16
0.3.2 Dapr Kubernetes 模式下的 Hello world 25
0.4 使用 gRPC 32
0.4.1 從 gRPC 客戶端調用應用程式 33
0.4.2 編寫 gRPC 伺服器 . 36
0.5 綁定 40
0.5.1 獨立模式下的綁定 . 41
0.5.2 Kubernetes 模式下的綁定 44
0.6 小結 45
第1 章 服務 47
1.1 在雲出現之前 47
1.2 雲的承諾與挑戰 48
1.2.1 可用性 . 48
1.2.2 彈性 49
1.2.3 雲原生套用 50
1.2.4 基礎設施是乏味的 . 51
1.3 服務調用 53
1.3.1 名稱解析. 54
1.3.2 請求和應答 56
1.3.3 並發控制. 57
1.3.4 服務調用練習 57
1.3.5 通用命名空間 60
1.4 發布/ 訂閱 61
1.4.1 基於訊息的集成的好處 61
1.4.2 用Dapr 進行發布/ 訂閱 . 64
1.4.3 發布/ 訂閱的工作方式 65
1.5 Dapr 組件 . 65
1.5.1 Dapr 配置 67
1.5.2 自定義管道 68
1.5.3 自定義管道練習 . 69
1.5.4 OAuth 2.0 授權 72
1.5.5 編寫自定義中間件 . 74
1.6 分散式追蹤 . 75
1.6.1 追蹤中間件 75
1.6.2 使用Zipkin 追蹤 77
1.6.3 使用Azure Monitor 跟蹤 79
1.7 服務運維 81
1.7.1 服務部署與升級 . 81
1.7.2 OAM . 83
1.8 小結 84
第2 章 狀態 86
2.1 狀態管理 86
2.1.1 無狀態與有狀態 . 87
2.1.2 為什麼無狀態服務在雲端更受歡迎? . 87
2.1.3 託管有狀態服務的挑戰 89
2.1.4 將有狀態服務轉換為無狀態服務 91
2.2 Dapr 狀態管理 92
2.2.1 並發模型. 93
2.2.2 一致性模型 93
2.2.3 批量操作和事務 . 93
2.2.4 多狀態存儲 94
2.2.5 重試策略. 94
2.3 Dapr State API 94
2.3.1 Key 方案 . 95
2.3.2 Get 請求 95
2.3.3 Set 請求 96
2.3.4 Delete 請求 97
2.3.5 事務性請求 97
2.4 使用Dapr State API 97
2.4.1 數據處理的考慮因素 99
2.4.2 數據查詢和聚合 . 99
2.5 狀態存儲 100
2.5.1 Redis 101
2.5.2 Azure Cosmos DB 102
2.5.3 etcd . 103
2.5.4 Apache Cassandra 104
2.5.5 Couchbase 106
2.6 自定義狀態存儲 106
2.6.1 實現 State API 107
2.6.2 更新組件註冊表 110
2.7 小結 . 112
第3 章 訊息 113
3.1 事件驅動編程 . 113
3.1.1 訊息與事件的對比 114
3.1.2 輸入綁定和輸出綁定 . 115
3.1.3 Pub/Sub 117
3.2 Pub/Sub with Dapr 118
3.2.1 實現 Powershell 腳本 118
3.2.2 使用Dapr CLI 測試發布/ 訂閱 119
3.2.3 Dapr 發布/ 訂閱行為 . 120
3.2.4 擴展 Dapr Pub/Sub . 120
3.3 使用Dapr 進行輸入和輸出綁定 122
3.3.1 使用輸入綁定 123
3.3.2 使用輸出綁定 123
3.3.3 實現輸入綁定 124
3.3.4 實現輸出綁定 126
3.3.5 使用KEDA 自動縮放 127
3.4 訊息傳遞模式 . 130
3.4.1 Saga 模式 . 130
3.4.2 基於內容的路由 133
3.4.3 路由清單 134
3.4.4 智慧型代理 135
3.4.5 MapReduce . 136
3.5 小結 . 137
第4 章 安全 138
4.1 保護分散式應用程式 138
4.1.1 訪問控制 139
4.1.2 數據保護 142
4.1.3 安全通信 144
4.1.4 入侵與異常檢測 145
4.2 Dapr 安全功能 146
4.2.1 密鑰存儲 146
4.2.2 實現密鑰存儲 148
4.2.3 Secret API 149
4.2.4 Mutual TLS (mTLS) 150
4.2.5 Dapr mTLS . 153
4.3 小結 . 155
第5 章 Actor 156
5.1 Actor 模式 . 156
5.1.1 現代 Actor 框架 158
5.1.2 Actor 模型的誤用 159
5.2 Dapr 與 Actor 160
5.2.1 調用一個 Dapr Actor . 165
5.2.2 狀態管理 166
5.2.3 計時器 167
5.2.4 Reminder . 169
5.3 開始使用 Dapr Actors for C# 170
5.3.1 定義 Actor 接口 170
5.3.2 實現 Actor 接口 171
5.4 小結 . 173
第6 章 套用模式 174
6.1 雲原生套用 174
6.1.1 雲上環境 175
6.1.2 基於 Dapr 的雲原生套用 . 179
6.2 使用 Dapr 進行系統集成 189
6.2.1 使用分散式工作流構建有限狀態機 189
6.2.2 同步 191
6.3 更大生態系統中的 Dapr 195
6.3.1 Yeoman Dapr 生成器 . 195
6.3.2 在 Visual Studio Code 中使用 Dapr 195
6.3.3 在 ASP.NET Core 中使用 Dapr . 197
6.3.4 更大套用中的 Dapr 199
6.3.5 Dapr 和服務格線 . 200
6.4 邊緣場景中的 Dapr 201
6.5 小結 . 202
第7 章 Dapr 的未來 . 203
7.1 能力交付 204
7.1.1 架構 204
7.1.2 套用場景 207
7.2 增強的 Actor 209
7.2.1 聚合器 210
7.2.2 查詢接口 210
7.2.3 Actor 圖 211
7.2.4 多版本 Actor 212
7.2.5 Actor 中間件 213
7.3 通用命名空間 . 213
7.3.1 架構 214
7.3.2 套用場景 215
7.4 邊緣場景中的 Dapr 216
7.4.1 作為輕量級函式運行時的 Dapr 217
7.4.2 WebAssembly 中的 Dapr . 218
7.4.3 作為腳本的 Dapr . 221
7.5 Dapr 的其他改進 222
7.5.1 Dapr 組件投影 222
7.5.2 實踐和經過驗證的模式 223
7.5.3 Dapr 描述符 224
7.5.4 Dapr 對多方計算的促進 225
7.6 小結 . 225
作者簡介
Haishi Bai是一位經驗豐富的開發人員和架構師,擁有30多年的編程經驗。他作為Microsoft Azure CTO辦公室的成員領導了一系列雲創新項目。同時他還是一位熱情的教育家,出版了八本雲計算相關書籍。
Yaron Schneider是Microsoft Azure CTO團隊的首席軟體工程師。他是一位狂熱的開源倡導者和貢獻者,主要致力於雲原生技術。Yaron是KEDA(CNCF項目)和Osiris的原創作者之一。
譯者介紹
羅毅 Apache Dubbo PMC主席,Dapr Steering and Technical committee(STC)成員,從事分散式中間件領域多年。
曹勝利 Apache Dubbo PMC,Dapr Steering and Technical committee(STC)成員,從事多年微服務相關的基礎建設工作。
敖小劍 Servicemesh布道師,Dapr Approver,雲原生愛好者和實踐者。
李志信 Apache Dubbo PMC,Dapr貢獻者,從事Go語言中間件研發和開源工作。