微服務容器化開發實戰

微服務容器化開發實戰

《微服務容器化開發實戰》是2020年1月電子工業出版社出版的圖書,作者是尹為強。

基本介紹

  • 中文名:微服務容器化開發實戰
  • 作者:尹為強
  • 出版時間:2020年1月
  • 出版社:電子工業出版社
  • 頁數:236 頁
  • ISBN:9787121382925
  • 定價:89 元
  • 開本:16 開
內容簡介,目錄,

內容簡介

微服務和Docker容器技術是分散式架構中常用的主流技術,結合Kubernetes強大的容器服務編排與調度能力,中小企業能夠簡單快速地構建自己的分散式網際網路架構系統。本書結合實際生產項目的架構重構過程和經驗,詳細介紹從單體架構過渡到微服務容器化的分散式架構的各個方面,主要包括微服務開發和運維技術棧的選型、Spring Cloud微服務開發、Rancher和Kubernetes生產離線環境下的安裝與部署、微服務的容器化與服務編排、日誌調用鏈的採集和展示、基於Prometheus的系統監控,以及微服務的持續集成等要點。本書基於Spring Boot、Spring Cloud、Docker、Rancher、Kubernetes等技術,主要提供從設計、開發、部署到運維的微服務容器化的生產環境整體解決方案

目錄

第1章 單體架構與微服務架構 1
1.1 背景介紹 2
1.2 單體架構 3
1.2.1 單體架構的特點 3
1.2.2 單體架構的優點 4
1.2.3 單體架構的缺點 4
1.3 微服務架構 4
1.3.1 微服務架構的特點 6
1.3.2 微服務架構的優點 6
1.3.3 微服務架構的缺點 6
1.4 微服務拆分 7
1.4.1 微服務設計原則 7
1.4.2 微服務拆分原則 8
1.5 微服務開發原則 9
1.5.1 微服務命名 9
1.5.2 項目依賴配置 9
1.5.3 配置檔案 10
1.5.4 代碼命名 10
1.6 本章小結 11
第2章 Spring Boot微服務開發 12
2.1 微服務框架 13
2.1.1 Dubbo服務框架 13
2.1.2 Spring Cloud微服務框架 15
2.1.3 Dubbo服務框架和Spring Cloud微服務框架的對比 17
2.2 技術棧選型 17
2.3 搭建開發環境 19
2.3.1 安裝開發軟體 19
2.3.2 Maven配置 20
2.3.3 IDE配置 21
2.4 編寫框架代碼 22
2.4.1 創建Maven工程 22
2.4.2 創建微服務模組 24
2.4.3 微服務代碼結構 26
2.5 編寫業務代碼 29
2.5.1 Controller檔案 30
2.5.2 Mapper檔案 31
2.5.3 Service檔案和ServiceImpl檔案 31
2.6 打包與測試 33
2.6.1 編譯打包 33
2.6.2 運行測試 35
2.7 本章小結 36
第3章 搭建微服務運行環境 37
3.1 運行環境概述 38
3.2 搭建開發環境 38
3.2.1 IDE環境 40
3.2.2 非IDE環境 41
3.3 搭建測試環境 41
3.3.1 非容器化環境 41
3.3.2 容器化環境 42
3.4 搭建生產環境 43
3.5 切換運行環境 45
3.6 本章小結 45
第4章 Rancher和Kubernetes離線部署 46
4.1 下載離線檔案 47
4.1.1 下載Docker安裝檔案 47
4.1.2 下載docker-compose檔案 48
4.1.3 下載Harbor安裝檔案 48
4.1.4 下載Rancher離線檔案 49
4.2 創建CA證書 51
4.3 Docker離線安裝 52
4.3.1 安裝Docker 52
4.3.2 自定義Docker 53
4.3.3 創建用戶eos 54
4.4 Harbor離線安裝 54
4.4.1 配置docker-compose 54
4.4.2 載入Harbor鏡像 55
4.4.3 配置Harbor 56
4.4.4 啟動Harbor 57
4.4.5 創建用戶和項目 58
4.5 Docker登錄設定 61
4.5.1 配置Harbor證書 61
4.5.2 登錄Docker 62
4.6 Rancher離線安裝 62
4.6.1 載入Rancher鏡像 63
4.6.2 安裝Rancher 65
4.7 Kubernetes安裝 66
4.7.1 配置私有倉庫 66
4.7.2 添加Control節點 67
4.7.3 添加Worker節點 71
4.7.4 配置kubectl客戶端 74
4.8 本章小結 76
第5章 日誌採集 78
5.1 日誌採集模型 79
5.2 配置微服務日誌 80
5.3 容器日誌採集 81
5.4 日誌匯集 82
5.4.1 日誌格式 83
5.4.2 配置Filebeat 84
5.4.3 配置Logstash 86
5.4.4 配置Elasticsearch 91
5.5 日誌展示 95
5.5.1 配置Kibana 95
5.5.2 啟動和關閉Kibana 96
5.5.3 Kibana索引設定 96
5.5.4 展示Kibana圖形化 98
5.6 本章小結 108
第6章 調用鏈跟蹤 109
6.1 調用鏈概述 110
6.1.1 系統完整調用鏈 111
6.1.2 調用過程追蹤 111
6.2 Spring Cloud調用鏈模型 112
6.2.1 Sleuth組件 112
6.2.2 Zipkin組件 114
6.2.3 Spring Cloud調用鏈跟蹤 115
6.3 調用鏈跟蹤配置 116
6.3.1 微服務配置 116
6.3.2 Zipkin服務端配置 120
6.4 調用鏈跟蹤展示 124
6.4.1 Zipkin圖形化展示 125
6.4.2 Kibana圖形化展示 133
6.5 本章小結 136
第7章 熔斷器 137
7.1 熔斷器概述 138
7.1.1 熔斷器介紹 138
7.1.2 Hystrix介紹 138
7.2 熔斷器配置 139
7.3 熔斷器使用 140
7.3.1 EnableCircuitBreaker註解 140
7.3.2 HystrixCommand註解 141
7.3.3 Fallback函式 142
7.4 熔斷器監控 144
7.5 本章小結 145
第8章 容器化與服務編排 146
8.1 容器化與服務編排概述 147
8.1.1 Docker介紹 147
8.1.2 Docker與虛擬機 148
8.1.3 服務編排與調度 149
8.2 構建基礎鏡像 149
8.2.1 母鏡像的選擇 150
8.2.2 基礎鏡像的特點 151
8.2.3 生成基礎鏡像 151
8.3 構建業務鏡像 154
8.3.1 微服務打包 154
8.3.2 鏡像構建的Dockerfile檔案 156
8.3.3 鏡像集成構建 157
8.4 服務編排 161
8.4.1 服務創建 161
8.4.2 服務版本升級 165
8.4.3 參數配置 166
8.4.4 服務版本降級 167
8.5 掛載 168
8.5.1 創建持久化卷 169
8.5.2 綁定持久化卷 170
8.5.3 掛載持久化卷 170
8.6 環境變數 171
8.7 管理Config Map 172
8.7.1 創建Config Map 172
8.7.2 使用Config Map 173
8.8 本章小結 175
第9章 系統監控 176
9.1 系統監控概述 177
9.1.1 主機監控 177
9.1.2 安全監控 179
9.1.3 中間件監控 181
9.1.4 業務監控 183
9.1.5 容器監控 184
9.1.6 監控工具 184
9.2 Kubernetes監控 185
9.3 Node Exporter組件 187
9.4 Prometheus組件 191
9.4.1 Prometheus組件的特徵 191
9.4.2 Prometheus組件的架構 193
9.4.3 Prometheus組件的部署 194
9.5 Grafana組件 206
9.5.1 Grafana組件介紹 206
9.5.2 Grafana組件的部署 207
9.5.3 Grafana組件的展示 209
9.6 本章小結 211
第10章 持續集成部署 212
10.1 持續集成部署的概念 213
10.1.1 持續集成 213
10.1.2 持續部署 213
10.2 持續集成部署的模型 214
10.3 基於Jenkins的CICD 215
10.3.1 GitLab代碼分支管理 215
10.3.2 CICD模型 215
10.3.3 CICD流程 216
10.3.4 CICD實踐 218
10.4 本章小結 220,第1章 單體架構與微服務架構 1
1.1 背景介紹 2
1.2 單體架構 3
1.2.1 單體架構的特點 3
1.2.2 單體架構的優點 4
1.2.3 單體架構的缺點 4
1.3 微服務架構 4
1.3.1 微服務架構的特點 6
1.3.2 微服務架構的優點 6
1.3.3 微服務架構的缺點 6
1.4 微服務拆分 7
1.4.1 微服務設計原則 7
1.4.2 微服務拆分原則 8
1.5 微服務開發原則 9
1.5.1 微服務命名 9
1.5.2 項目依賴配置 9
1.5.3 配置檔案 10
1.5.4 代碼命名 10
1.6 本章小結 11
第2章 Spring Boot微服務開發 12
2.1 微服務框架 13
2.1.1 Dubbo服務框架 13
2.1.2 Spring Cloud微服務框架 15
2.1.3 Dubbo服務框架和Spring Cloud微服務框架的對比 17
2.2 技術棧選型 17
2.3 搭建開發環境 19
2.3.1 安裝開發軟體 19
2.3.2 Maven配置 20
2.3.3 IDE配置 21
2.4 編寫框架代碼 22
2.4.1 創建Maven工程 22
2.4.2 創建微服務模組 24
2.4.3 微服務代碼結構 26
2.5 編寫業務代碼 29
2.5.1 Controller檔案 30
2.5.2 Mapper檔案 31
2.5.3 Service檔案和ServiceImpl檔案 31
2.6 打包與測試 33
2.6.1 編譯打包 33
2.6.2 運行測試 35
2.7 本章小結 36
第3章 搭建微服務運行環境 37
3.1 運行環境概述 38
3.2 搭建開發環境 38
3.2.1 IDE環境 40
3.2.2 非IDE環境 41
3.3 搭建測試環境 41
3.3.1 非容器化環境 41
3.3.2 容器化環境 42
3.4 搭建生產環境 43
3.5 切換運行環境 45
3.6 本章小結 45
第4章 Rancher和Kubernetes離線部署 46
4.1 下載離線檔案 47
4.1.1 下載Docker安裝檔案 47
4.1.2 下載docker-compose檔案 48
4.1.3 下載Harbor安裝檔案 48
4.1.4 下載Rancher離線檔案 49
4.2 創建CA證書 51
4.3 Docker離線安裝 52
4.3.1 安裝Docker 52
4.3.2 自定義Docker 53
4.3.3 創建用戶eos 54
4.4 Harbor離線安裝 54
4.4.1 配置docker-compose 54
4.4.2 載入Harbor鏡像 55
4.4.3 配置Harbor 56
4.4.4 啟動Harbor 57
4.4.5 創建用戶和項目 58
4.5 Docker登錄設定 61
4.5.1 配置Harbor證書 61
4.5.2 登錄Docker 62
4.6 Rancher離線安裝 62
4.6.1 載入Rancher鏡像 63
4.6.2 安裝Rancher 65
4.7 Kubernetes安裝 66
4.7.1 配置私有倉庫 66
4.7.2 添加Control節點 67
4.7.3 添加Worker節點 71
4.7.4 配置kubectl客戶端 74
4.8 本章小結 76
第5章 日誌採集 78
5.1 日誌採集模型 79
5.2 配置微服務日誌 80
5.3 容器日誌採集 81
5.4 日誌匯集 82
5.4.1 日誌格式 83
5.4.2 配置Filebeat 84
5.4.3 配置Logstash 86
5.4.4 配置Elasticsearch 91
5.5 日誌展示 95
5.5.1 配置Kibana 95
5.5.2 啟動和關閉Kibana 96
5.5.3 Kibana索引設定 96
5.5.4 展示Kibana圖形化 98
5.6 本章小結 108
第6章 調用鏈跟蹤 109
6.1 調用鏈概述 110
6.1.1 系統完整調用鏈 111
6.1.2 調用過程追蹤 111
6.2 Spring Cloud調用鏈模型 112
6.2.1 Sleuth組件 112
6.2.2 Zipkin組件 114
6.2.3 Spring Cloud調用鏈跟蹤 115
6.3 調用鏈跟蹤配置 116
6.3.1 微服務配置 116
6.3.2 Zipkin服務端配置 120
6.4 調用鏈跟蹤展示 124
6.4.1 Zipkin圖形化展示 125
6.4.2 Kibana圖形化展示 133
6.5 本章小結 136
第7章 熔斷器 137
7.1 熔斷器概述 138
7.1.1 熔斷器介紹 138
7.1.2 Hystrix介紹 138
7.2 熔斷器配置 139
7.3 熔斷器使用 140
7.3.1 EnableCircuitBreaker註解 140
7.3.2 HystrixCommand註解 141
7.3.3 Fallback函式 142
7.4 熔斷器監控 144
7.5 本章小結 145
第8章 容器化與服務編排 146
8.1 容器化與服務編排概述 147
8.1.1 Docker介紹 147
8.1.2 Docker與虛擬機 148
8.1.3 服務編排與調度 149
8.2 構建基礎鏡像 149
8.2.1 母鏡像的選擇 150
8.2.2 基礎鏡像的特點 151
8.2.3 生成基礎鏡像 151
8.3 構建業務鏡像 154
8.3.1 微服務打包 154
8.3.2 鏡像構建的Dockerfile檔案 156
8.3.3 鏡像集成構建 157
8.4 服務編排 161
8.4.1 服務創建 161
8.4.2 服務版本升級 165
8.4.3 參數配置 166
8.4.4 服務版本降級 167
8.5 掛載 168
8.5.1 創建持久化卷 169
8.5.2 綁定持久化卷 170
8.5.3 掛載持久化卷 170
8.6 環境變數 171
8.7 管理Config Map 172
8.7.1 創建Config Map 172
8.7.2 使用Config Map 173
8.8 本章小結 175
第9章 系統監控 176
9.1 系統監控概述 177
9.1.1 主機監控 177
9.1.2 安全監控 179
9.1.3 中間件監控 181
9.1.4 業務監控 183
9.1.5 容器監控 184
9.1.6 監控工具 184
9.2 Kubernetes監控 185
9.3 Node Exporter組件 187
9.4 Prometheus組件 191
9.4.1 Prometheus組件的特徵 191
9.4.2 Prometheus組件的架構 193
9.4.3 Prometheus組件的部署 194
9.5 Grafana組件 206
9.5.1 Grafana組件介紹 206
9.5.2 Grafana組件的部署 207
9.5.3 Grafana組件的展示 209
9.6 本章小結 211
第10章 持續集成部署 212
10.1 持續集成部署的概念 213
10.1.1 持續集成 213
10.1.2 持續部署 213
10.2 持續集成部署的模型 214
10.3 基於Jenkins的CICD 215
10.3.1 GitLab代碼分支管理 215
10.3.2 CICD模型 215
10.3.3 CICD流程 216
10.3.4 CICD實踐 218
10.4 本章小結 220

相關詞條

熱門詞條

聯絡我們