雲原生模式

雲原生模式

《雲原生模式》由電子工業出版社於2020年8月出版,作者是【美】Cornelia Davis(科妮莉亞·戴維斯),譯者是張若飛、宋淨超。當讀者閱讀本書時,將開始意識到,雲原生計算更多是關於如何做和為什麼這樣做的,而不是在哪裡進行計算。

基本介紹

  • 書名:雲原生模式
  • 作者:【美】Cornelia Davis(科妮莉亞·戴維斯)
  • 譯者:張若飛、宋淨超
  • 出版社:電子工業出版社
  • 出版時間:2020年8月
  • 頁數:396 頁
  • 定價:109 元
  • 開本:16 開
  • ISBN:9787121389139
內容簡介,圖書目錄,作者簡介,

內容簡介

擁抱“雲”,更多指的是如何設計你的應用程式,而不是你在哪裡部署它們。《雲原生模式》是一本架構指南,指導你如何讓應用程式在動態的、分散式的、虛擬的雲世界中茁壯成長。本書介紹了雲原生應用程式的多種思維模型,以及支持其構建的模式、實踐和工具,同時提供了一些實際案例和專家建議,幫助你更好地開發和使用應用程式、數據、服務、路由等。本書分為兩部分。第 1 部分定義了雲原生的上下文環境,並展示了軟體部署環境的特點。第2 部分深入探討了雲原生模式,包括請求 / 回響、事件驅動、斷路器等。無論你是否有雲原生的開發經驗,通過本書提供的眾多模式,一定可以更好地理解和掌握雲原生開發。

圖書目錄

第1部分 雲原生上下文
第1章 什麼是“雲原生”3
1.1 現代應用程式的需求7
1.1.1 零停機時間 7
1.1.2 縮短反饋周期8
1.1.3 移動端和多設備支持8
1.1.4 互聯設備(物聯網) 9
1.1.5 數據驅動 9
1.2 雲原生軟體簡介10
1.2.1 定義“雲原生” 10
1.2.2 雲原生軟體的思維模型12
1.2.3 雲原生軟體實戰17
1.3 雲原生與世界和平 21
1.3.1 雲和雲原生 22
1.3.2 什麼不是雲原生23
1.3.3 雲原生的價值 24
小結 26
第2章 在生產環境中運行雲原生應用程式.27
2.1 面臨的困難 28
2.1.1 碎片化的變化 30
2.1.2 有風險的部署 31
2.1.3 認為變化是例外35
2.1.4 生產環境的不穩定性 35
2.2 解決辦法36
2.2.1 持續交付37
2.2.2 可重複性41
2.2.3 安全部署46
2.2.4 變化是一定的 49
小結 52
第3章 雲原生軟體平台53
3.1 雲(原生)平台的發展54
3.1.1 從雲計算開始 54
3.1.2 雲原生的“撥號音”56
3.2 雲原生平台的核心原則59
3.2.1 先聊聊容器 60
3.2.2 支持“不斷變化” 61
3.2.3 支持“高度分散式”64
3.3 人員分工68
3.4 雲原生平台的其他功能70
3.4.1 平台支持整個軟體開發生命周期 70
3.4.2 安全性、變更控制和合規性(管控功能)73
3.4.3 控制進入容器的東西 75
3.4.4 升級與安全漏洞修補 77
3.4.5 變更控制79
小結 81
第2部分 雲原生模式
第4章 事件驅動微服務:不只是請求/回響. 85
4.1 我們(通常)學習的是命令式編程 86
4.2 重新介紹事件驅動的計算 88
4.3 我的全球食譜 89
4.3.1 請求 / 回響90
4.3.2 事件驅動96
4.4 命令查詢職責分離模式 106
4.5 不同的風格,相同的挑戰108
小結110
第5章 應用程式冗餘:水平伸縮和無狀態. 111
5.1 雲原生應用程式會部署許多實例113
5.2 雲環境中的有狀態服務 114
5.2.1 解耦單體程式並綁定到資料庫 115
5.2.2 錯誤處理會話狀態119
5.3 HTTP會話和黏性會話133
5.4 有狀態服務和無狀態應用程式 136
5.4.1 有狀態服務是特殊的服務136
5.4.2 讓應用程式變得無狀態 138
小結143
第6章 應用程式配置:不只是環境變數144
6.1 為什麼要討論配置145
6.1.1 動態伸縮 — 增加和減少應用程式實例的數量146
6.1.2 基礎設施變化會導致配置變化 146
6.1.3 零停機時間更新應用程式配置 148
6.2 應用程式的配置層148
6.3 注入系統/環境值153
6.3.1 實際案例 :使用環境變數進行配置 153
6.4 注入應用程式配置162
6.4.1 配置伺服器簡介 163
6.4.2 安全方面的額外需求 171
6.4.3 實際案例 :使用配置伺服器的應用程式配置 171
小結174
第7章 應用程式生命周期:考慮不斷的變化175
7.1 運維同理心177
7.2 單實例應用程式生命周期和多實例應用程式生命周期 178
7.2.1 藍 / 綠升級 182
7.2.2 滾動升級 183
7.2.3 並行部署 184
7.3 協調多個不同的應用程式生命周期 187
7.4 實際案例:密碼輪換和應用程式生命周期 191
7.5 處理臨時運行時環境 200
7.6 應用程式生命周期狀態的可見性202
7.6.1 實際案例 :健康端點和探測 207
7.7 無伺服器架構 210
小結212
第8章 如何訪問應用程式:服務、路由和服務發現214
8.1 服務抽象 217
8.1.1 服務示例 :用 Google 進行搜尋 218
8.1.2 服務示例 :我們的部落格聚合器 220
8.2 動態路由 221
8.2.1 服務端負載均衡 221
8.2.2 客戶端負載均衡 222
8.2.3 路由刷新 223
8.3 服務發現 226
8.3.1 Web 的服務發現 229
8.3.2 服務發現和客戶端負載均衡 230
8.3.3 Kubernetes 中的服務發現 232
8.3.4 實際案例 :使用服務發現234
小結237
第9章 互動冗餘:重試和其他控制循環238
9.1 請求重試 240
9.1.1 基本的請求重試 240
9.1.2 實際案例 :簡單的重試 241
9.1.3 重試 :可能出了什麼問題246
9.1.4 創建一個重試風暴247
9.1.5 實際案例 :創建一個重試風暴 248
9.1.6 避免重試風暴 :友好的客戶端 259
9.1.7 實際案例 :成為一個更友好的客戶端 259
9.1.8 什麼時候不需要重試 265
9.2 回退邏輯 266
9.2.1 實際案例 :實現回退邏輯266
9.3 控制循環 272
9.3.1 了解控制循環的類型 272
9.3.2 如何控制控制循環273
小結275
第10章 前沿服務:斷路器和API網關277
10.1 斷路器279
10.1.1 軟體中的斷路器279
10.1.2 實現一個斷路器282
10.2 API網關294
10.2.1 雲原生軟體中的 API 網關 296
10.2.2 API 網關拓撲 297
10.3 服務格線 299
10.3.1 挎斗 299
10.3.2 控制平面302
小結304
第11章 故障排除:如同大海撈針305
11.1 應用程式日誌306
11.2 應用程式度量指標 310
11.2.1 從雲原生應用程式中獲取指標311
11.2.2 由雲原生應用程式推送指標 314
11.3 分散式跟蹤 317
11.3.1 跟蹤器的輸出 320
11.3.2 通過 Zipkin 組合跟蹤軌跡 323
11.3.3 實現細節328
小結329
第12章 雲原生數據:打破數據單體331
12.1 每個微服務都需要一個快取334
12.2 從請求/回響到事件驅動 337
12.3 事件日誌 339
12.3.1 實際案例 :實現一個事件驅動的微服務 341
12.3.2 主題和佇列的新特點 354
12.3.3 事件載荷358
12.3.4 冪等性 360
12.4 事件溯源 361
12.4.1 到目前為止的旅程 361
12.4.2 真實來源363
12.4.3 實際案例 :實現事件溯源 365
12.5 我們只是介紹了一些皮毛 368
小結

作者簡介

Cornelia Davis 是 Pivotal 公司的技術副總裁,她負責為 Pivotal 公司和 Pivotal 公司的客戶制定技術戰略。目前,她正在研究如何將各種雲計算模型(基礎設施即服務、應用程式即服務、容器即服務和函式即服務 ) 整合到一個全面的產品中,使 IT 組織能夠在最高層面上運行。
Cornelia 在圖像處理、科學可視化、分散式系統和 web 應用程式架構,以及雲原生平台方面有超過 30 年的經驗。Cornelia 擁有加州州立大學北嶺分校的計算機科學本科和碩士學位,並在印第安納大學進一步研究了計算機原理和程式語言。
因為內心一直想當一名老師,所以 Cornelia 在過去的 30 年裡,一直致力於開發更好的軟體,以及培養更好的軟體開發人員。
空閒的時候,Cornelia 更喜歡瑜伽鍛鍊和烹飪。
張若飛,TGO會員,曾任易通貸CTO,宜人貸首席架構師,在雅虎北研、金山雲、POLYCOM等公司擔任架構師。十餘年網際網路研發及技術管理經驗,管理過過百人的技術研發團隊,對搭建海量數據、大型分散式系統有豐富經驗,對網際網路金融領域有廣泛涉獵。著有十餘本技術譯著,包括《雲原生Java:Spring Boot、Spring Cloud與Cloud Foundry彈性系統設計》《面向可伸縮架構》《代碼不朽:編寫可維護軟體的十大則》《給大忙人看的JavaSE 8》《Grails指南》等書,總計300餘萬字。

相關詞條

熱門詞條

聯絡我們