基本信息
微服務架構與實踐
作 譯 者:王磊
出版時間:2015-11
千 字 數:312
版 次:01-01
頁 數:236
開 本:16開
I S B N :9787121275913
內容簡介
隨著RESTful、雲計算、DevOps、持續交付等概念的深入人心,微服務架構逐漸成為系統架構的一個代名詞。本書首先從理論出發,介紹了微服務架構的概念、誕生背景、本質特徵以及優缺點;然後基於實踐,探討了如何從零開始構建第一個微服務,包括Hello World API、Docker 映像構建與部署、日誌聚合、監控告警、持續交付流水線等;最後,在進階部分討論了微服務的輕量級通信、消費者驅動的契約測試,並通過一個真實的案例描述了如何使用微服務架構改造遺留系統。全書內容豐富,條理清晰,通俗易懂,是一本理論結合實踐的微服務架構的實用書籍。 本書不僅適合架構師、開發人員、測試人員以及運維人員閱讀,也適合正在嘗試使用微服務架構解耦歷史遺留系統的團隊或者個人參考,希望本書能在實際工作中對讀者有所幫助。
目錄信息
第 1部分 基礎篇
第 1章 單塊架構及其面臨的挑戰 ............................................. 3
1.1三層套用架構 ..... 4
1.1.1三層套用架構的發展 .................. 4
1.1.2什麼是三層架構 ......................... 5
1.1.3三層架構的優勢 ......................... 6
1.2單塊架構 ............. 6
1.2.1什麼是單塊架構 ......................... 6
1.2.2單塊架構的優勢 ......................... 7
1.2.3單塊架構面臨的挑戰 .................. 8
1.3 小結 ................... 12
第 2章 微服務架構綜述 .................... 13
2.1什麼是微服務架構 ................................. 13
2.1.1多微才夠微 ............................... 14
2.1.2 單一職責 ................................... 17
2.1.3 輕量級通信 ............................... 17
2.1.4 獨立性 . 19
2.1.5 進程隔離 ................................... 20
2.2 微服務的誕生背景 ................................. 22
2.2.1 網際網路行業的快速發展 ............ 23
2.2.2 敏捷、精益方法論的深入人心 23
2.2.3 單塊架構系統面臨的挑戰 ........ 23
2.2.4 容器虛擬化技術 ....................... 23
2.3 微服務架構與 SOA ................................ 24
2.3.1 SOA概述 .................................. 24
2.3.2 微服務與 SOA .......................... 25
2.4 微服務的本質 ... 26
2.4.1服務作為組件 ........................... 27
2.4.2 圍繞業務組織團隊 ................... 28
2.4.3 關注產品而非項目 ................... 29
2.4.4 技術多樣性 ............................... 31
2.4.5 業務數據獨立 ........................... 32
2.4.6 基礎設施自動化 ....................... 33
2.4.7 演進式架構 ............................... 33
2.5 微服務不是銀彈 ..................................... 34
2.5.1 分散式系統的複雜度 ................ 35
2.5.2 運維成本 ................................... 36
2.5.3 部署自動化 ............................... 36
2.5.4 DevOps與組織架構 ................. 37
2.5.5 服務間的依賴測試 ................... 37
2.5.6 服務間的依賴管理 ................... 37
2.6 小結 ................... 38
第 2部分 實踐篇
第 3章 構建第一個服務 .................... 41
3.1場景分析 ........... 41
3.2任務拆分 ........... 43
第 4章 Hello World API .................... 45
4.1 API實現 ............ 45
4.1.1 開發語言 ——Ruby ................... 45
4.1.2 Web框架——Grape ................. 46
4.1.3 API的具體實現 ........................ 47
4.2代碼測試與靜態檢查 ............................. 50
4.2.1代碼測試 ................................... 50
4.2.2測試覆蓋率統計 ....................... 53
4.2.3靜態檢查 ................................... 54
4.2.4代碼複雜度檢查 ....................... 57
第 5章 構建 Docker映像 ................. 61
5.1 定義 Dockerfile . 61
5.2 配置 Docker主機 .................................... 63
5.3 構建 Docker映像 .................................... 64
5.4 運行 Docker容器 .................................... 64
5.5 發布 Docker映像 .................................... 65
5.6 小結 ................... 69
第 6章 部署 Docker映像 ................. 71
6.1基礎設施 AWS .. 71
6.2基礎設施自動化 ..................................... 73
6.3 部署 Docker映像 .................................... 80
6.4自動化部署 ....... 81
6.5 小結 ................... 84
第 7章 持續交付流水線 .................... 85
7.1持續集成環境 ... 85
7.2提交階段 ........... 87
7.3驗證階段 ........... 91
7.4構建階段 ........... 91
7.5發布階段 ........... 94
7.6 小結 ................... 96
第 8章 日誌聚合 .............................. 97
8.1 日誌聚合工具簡介 ................................. 97
8.2 Splunk的核心 ... 99
8.3 安裝 Splunk索引器 .............................. 100
8.4 安裝 Splunk轉發器 .............................. 101
8.5日誌查找 ......... 102
8.6告警設定 ......... 103
8.7 小結 ................. 104
第 9章 監控與告警 ......................... 105
9.1 Nagios簡介..... 105
9.2 Nagios的工作原理 ............................... 107
9.3 Nagios安裝..... 108
9.4 Nagios的配置 . 109
9.5 監控 products-service ............................ 111
9.6 告警 ................. 113
9.7 小結 ................. 114
第 10章 功能疊代 .......................... 115
10.1定義模型 ....... 116
10.2持久化模型 ... 117
10.3定義表現形式 ..................................... 119
10.4 實現 API ........ 122
10.5服務描述檔案 ..................................... 125
10.6 小結 ............... 127
第 3部分 進階篇
第 11章 微服務與持續交付 ............ 131
11.1持續交付的核心 .................................. 132
11.2微服務架構與持續交付 ...................... 133
11.2.1 開發 . 133
11.2.2 測試 . 137
11.2.3持續集成 ................................ 139
11.2.4 構建 . 139
11.2.5 部署 . 140
11.2.6 運維 . 143
11.3 小結 ............... 144
第 12章 微服務與輕量級通信機制 . 145
12.1同步通信與異步通信 ......................... 145
12.1.1 概述 . 145
12.1.2同步通信與異步通信的選擇 146
12.2遠程調用 RPC ..................................... 147
12.2.1遠程過程調用的核心 ............ 147
12.2.2遠程方法調用 ....................... 148
12.2.3遠程過程調用的弊端 ............ 148
12.3 REST ............. 149
12.3.1 概述 . 149
12.3.2 REST的核心 ......................... 150
12.3.3 REST的優勢 ......................... 152
12.3.4 REST的不足 ......................... 152
12.3.5 本節小結 ............................... 155
12.4 HAL ............... 155
12.4.1 概述 . 155
12.4.2 HAL的核心 .......................... 156
12.4.3 HAL瀏覽器 .......................... 160
12.5訊息佇列 ....... 161
12.5.1 核心部分 ............................... 162
12.5.2 訪問方式 ............................... 163
12.5.3訊息佇列的優缺點 ............... 164
12.6後台任務處理系統 ............................. 165
12.6.1 核心部分 ............................... 165
12.6.2 服務回調 ............................... 166
12.6.3 一個例子 ............................... 167
12.6.4後台任務與微服務 ............... 169
12.7 小結 ............... 170
第 13章 微服務與測試 ................... 171
13.1微服務的結構 ..................................... 171
13.2微服務的測試策略 ............................. 173
13.3微服務的單元測試 ............................. 175
13.3.1單元測試綜述 ....................... 175
13.3.2單元測試的內容 ................... 176
13.4微服務的集成測試 ............................. 179
13.4.1集成測試綜述 ....................... 179
13.4.2集成測試的實施方法 ............ 179
13.4.3集成測試的內容 ................... 180
13.5基於消費者驅動的契約測試 .............. 181
13.5.1集成測試存在的弊端 ............ 181
13.5.2什麼是契約 ........................... 183
13.5.3什麼是契約測試 ................... 184
13.5.4契約測試的方法 ................... 185
13.5.5 Pact實現契約測試 ................ 187
13.5.6 一個例子 ............................... 192
13.5.7 本節小結 ............................... 205
13.6微服務的組件測試 ............................. 205
13.6.1組件測試概述 ....................... 205
13.6.2組件測試的方法 ................... 206
13.6.3 本節小結 ............................... 207
13.7微服務的端到端測試 ......................... 208
13.7.1端到端測試概述 ................... 208
13.7.2端到端測試的內容 ............... 208
13.7.3 本節小結 ............................... 209
13.8 小結 ............... 210
第 14章 使用微服務架構改造遺留系統 ................................ 211
14.1背景與挑戰 ... 211
14.2改造策略 ....... 212
14.2.1 昀小修改 ............................... 212
14.2.2 功能剝離 ............................... 212
14.2.3 數據解耦 ............................... 213
14.2.4 數據同步 ............................... 213
14.2.5 疊代替換 ............................... 214
14.3快速開發實踐 ..................................... 215
14.3.1快速開發模板 ....................... 215
14.3.2代碼生成工具 ....................... 217
14.3.3持續集成模板 ....................... 217
14.3.4一鍵部署工具 ....................... 217
14.4微服務架構下的新系統 ..................... 218
14.5 小結