雲原生套用架構:微服務開發最佳實戰

雲原生套用架構:微服務開發最佳實戰

《雲原生套用架構:微服務開發最佳實戰》是電子工業出版社出版圖書,作者是FreeWheel核心業務系統開發團隊

從真實案例出發反推技術難點,微服務、雲原生、服務格線、敏捷開發分散式事務、無伺服器架構、可觀察性、質量保證、CI/CD,前沿話題一網打盡,熱點技能各個擊破

基本介紹

  • 中文名:雲原生套用架構:微服務開發最佳實戰
  • 作者:FreeWheel核心業務系統開發團隊
  • 出版社:電子工業出版社
  • 出版時間:2021年11月
  • 頁數:372 頁
  • 定價:108 元
  • 開本:16 開
  • ISBN:9787121422744
內容簡介,圖書目錄,作者簡介,

內容簡介

全生命周期覆蓋:基於開發流程,循序漸進地將知識點融入整個軟體開發生命周期,以帶給讀者合理和流暢的閱讀體驗。

圖書目錄

第1章 雲原生時代下的微服務 1
1.1 從微服務談起 1
1.1.1 微服務架構的關鍵特性 2
1.1.2 微服務的取捨 6
1.2 雲原生套用 9
1.2.1 什麼是雲原生 9
1.2.2 雲原生技術 12
1.2.3 雲原生套用的特點 15
1.3 從微服務到雲原生 17
1.3.1 非功能性需求的調整 17
1.3.2 治理方式的改變 18
1.3.3 部署和發布的改變 19
1.3.4 從微服務套用到雲原生套用 20
1.4 本章小結 21
第2章 微服務套用設計方法 22
2.1 套用架構設計 22
2.1.1 服務架構選型 22
2.1.2 服務通信策略 27
2.1.3 存儲層設計和選型 35
2.2 遺留系統改造 37
2.2.1 綠地與棕地 38
2.2.2 絞殺者模式 39
2.3 業務邏輯設計 43
2.3.1 拆分服務 43
2.3.2 設計API 50
2.4 本章小結 54
第3章 服務開發與運維 55
3.1 敏捷開發流程 55
3.1.1 從瀑布模型到敏捷開發 56
3.1.2 基於Scrum的敏捷實踐 58
3.2 搭建運行環境 64
3.2.1 開發環境 64
3.2.2 測試環境 65
3.2.3 預發布環境 66
3.2.4 生產環境 67
3.3 代碼管理 67
3.3.1 Git分支管理 67
3.3.2 使用Sonar進行代碼檢查 71
3.3.3 代碼評審 75
3.3.4 代碼提交與合併 76
3.4 低代碼開發平台 77
3.4.1 低代碼與開發平台 77
3.4.2 低代碼開發平台實踐 78
3.5 服務管理與運維平台 83
3.5.1 平台要解決的問題 83
3.5.2 平台架構 83
3.5.3 平台功能模組 85
3.6 服務中台化 87
3.6.1 什麼是中台 87
3.6.2 中台的構建之路 88
3.7 本章小結 93
第4章 微服務流量管理 94
4.1 雲原生時代的流量管理 94
4.1.1 流量類型 95
4.1.2 服務格線 96
4.2 服務發現 98
4.2.1 傳統服務發現上雲後的問題 98
4.2.2 Kubernetes的服務發現機制 99
4.3 使用Istio服務格線進行流量管理 102
4.3.1 核心自定義資源 102
4.3.2 基於Istio的流量管理實踐 112
4.3.3 常見落地問題與調試 120
4.4 使用Istio提升套用的容錯能力 127
4.4.1 熔斷器 128
4.4.2 逾時和重試 131
4.5 本章小結 134
第5章 分散式事務 135
5.1 分散式事務的挑戰 135
5.1.1 從事務到分散式事務 135
5.1.2 ACID:傳統意義上的事務約束 137
5.1.3 CAP:分散式系統的挑戰 138
5.1.4 BASE:高可用的代價 139
5.1.5 寫順序 139
5.2 分散式事務框架的方案選型 140
5.2.1 現有研究與實踐 140
5.2.2 分散式事務框架的設計目標 143
5.2.3 選擇Saga 144
5.2.4 引入Kafka 145
5.2.5 系統架構 148
5.2.6 業務流程 148
5.3 基於Saga和Kafka的分散式事務落地實踐 149
5.3.1 Kafka並行消費模型的改進 149
5.3.2 部署細節 151
5.3.3 系統可用性分析 152
5.3.4 線上問題及處理 152
5.4 本章小結 155
第6章 無伺服器架構 157
6.1 什麼是無伺服器架構 157
6.1.1 無伺服器架構的定義 157
6.1.2 無伺服器架構的發展 158
6.1.3 無伺服器架構的優勢 160
6.1.4 無伺服器架構的不足 161
6.2 無伺服器架構套用 163
6.2.1 構建Web API後端服務 163
6.2.2 構建數據編排器 165
6.2.3 構建定時任務 166
6.2.4 構建實時流處理服務 167
6.3 無伺服器架構的落地實踐 169
6.3.1 為什麼選擇AWS Lambda 169
6.3.2 大量數據的導入和處理 171
6.3.3 日誌數據的採集和處理 179
6.4 本章小結 190
第7章 服務的可觀察性 191
7.1 什麼是可觀察性 191
7.1.1 可觀察性的定義 191
7.1.2 可觀察性的三大支柱 192
7.1.3 可觀察性與監控的聯繫與區別 193
7.1.4 社區產品現狀及技術選型 194
7.2 雲原生下的日誌解決方案 195
7.2.1 日誌分類與設計 195
7.2.2 雲原生日誌收集方案的演進 206
7.2.3 使用Kibana展示日誌 212
7.3 分散式追蹤 222
7.3.1 分散式追蹤系統的核心概念 222
7.3.2 基於Jaeger的追蹤方案 223
7.4 度量指標 233
7.4.1 利用Prometheus收集度量指標 233
7.4.2 使用Grafana展示度量指標 241
7.5 監控與告警設計 242
7.5.1 監控平台構建實踐 242
7.5.2 告警系統的搭建 254
7.6 本章小結 258
第8章 質量保證實踐 259
8.1 質量保證體系 259
8.1.1 質量挑戰 260
8.1.2 測試策略 260
8.1.3 構建質量保證體系 262
8.2 測試實踐 265
8.2.1 單元測試與mock實踐 266
8.2.2 基於Godog的集成測試實踐 272
8.2.3 基於Cypress的端到端測試實踐 277
8.2.4 測試自動化 280
8.3 混沌工程 285
8.3.1 混沌工程的核心理念 285
8.3.2 如何運行混沌實驗 292
8.3.3 系統資源類故障注入實驗 297
8.3.4 基於服務格線的網路流量故障注入方法 306
8.4 類生產環境的質量保證 311
8.4.1 線上服務的監測與分析 311
8.4.2 Bug Bash實踐 313
8.4.3 Post-release Check實踐 317
8.4.4 災備策略與實踐 319
8.5 本章小結 322
第9章 持續集成和持續部署 323
9.1 基於Git的持續集成 323
9.1.1 自動觸發流水線 324
9.1.2 流水線差異化與統一協作 331
9.1.3 流水線產物存儲規劃 334
9.2 基於Helm的持續部署 337
9.2.1 部署規劃 338
9.2.2 不同環境下多集群的部署框架 339
9.2.3 雲原生的支持和任務維護 345
9.3 基於Kubernetes的持續部署實踐 348
9.3.1 Pod資源配額及水平擴縮 349
9.3.2 服務上下線流程和故障分析 351
9.4 本章小結 354

作者簡介

FreeWheel核心業務系統開發團隊
團隊從2017年開始構建基於微服務架構的雲原生套用,積累了大量的實踐經驗。除了開發企業級SaaS系統,團隊還自研了微服務業務中台、服務治理平台、低代碼開發平台等創新項目。
關於FreeWheel
FreeWheel成立於2007年,是美國傳媒巨頭康卡斯特集團旗下的高端視頻廣告技術供應商,在北京、紐約、舊金山、芝加哥、倫敦、巴黎等地設有分支機構。

相關詞條

熱門詞條

聯絡我們