微服務架構與實踐

基本信息

微服務架構與實踐

作 譯 者:王磊

出版時間: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 小結

相關詞條

熱門詞條

聯絡我們