微服務容器化開發實戰

微服務容器化開發實戰

作者: 尹為強
出版社: 電子工業
出版在: 2020-02-01
ISBN-13: 9787121382925
ISBN-10: 712138292X





內容描述


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


目錄大綱


第1章單體架構與微服務架構\t1
1.1背景介紹\t2
1.2單體架構\t3
1.2.1單體架構的特點\t3
1.2.2單體架構的優點\t4
1.2.3單體架構的缺點\t4
1.3微服務架構\t4
1.3.1微服務架構的特點\t6
1.3.2微服務架構的優點\t6
1.3.3微服務架構的缺點\t6
1.4微服務拆分\t7
1.4.1微服務設計原則\t7
1.4.2微服務拆分原則\t8
1.5微服務開發原則\t9
1.5.1微服務命名\t9
1.5.2項目依賴配置\t9
1.5 .3配置文件\t10
1.5.4代碼命名\t10
1.6本章小結\t11
 
第2章Spring Boot微服務開發\t12
2.1微服務框架\t13
2.1.1 Dubbo服務框架\t13
2.1.2 Spring Cloud微服務框架\t15
2.1.3 Dubbo服務框架和Spring Cloud微服務框架的對比\t17
2.2技術棧選型\t17
2.3搭建開發環境\t19
2.3.1安裝開發軟件\t19
2.3.2 Maven配置\t20
2.3.3 IDE配置\t21
2.4編寫框架代碼\t22
2.4.1創建Maven工程\t22
2.4.2創建微服務模塊\t24
2.4.3微服務代碼結構\t26
2.5編寫業務代碼\t29
2.5.1 Controller文件\t30
2.5.2 Mapper文件\t31
2.5.3 Service文件和ServiceImpl文件\t31
2.6打包與測試\t33
2.6.1編譯打包\t33
2.6.2運行測試\t35
2.7本章小結\t36
 
第3章搭建微服務運行環境\t37
3.1運行環境概述\t38
3.2搭建開發環境\t38
3.2.1 IDE環境\t40
3.2.2非IDE環境\t41
3.3搭建測試環境\t41
3.3.1非容器化環境\t41
3.3.2容器化環境\t42
3.4搭建生產環境\t43
3.5切換運行環境\t45
3.6本章小結\t45
 
第4章Rancher和Kubernetes離線部署\t46
4.1下載離線文件\t47
4.1.1下載Docker安裝文件\t47
4.1.2下載docker- compose文件\t48
4.1.3下載Harbor安裝文件\t48
4.1.4下載Rancher離線文件\t49
4.2創建CA證書\t51
4.3 Docker離線安裝\t52
4.3.1安裝Docker\t52
4.3.2自定義Docker目錄\t53
4.3.3創建用戶eos\t54
4.4 Harbor離線安裝\t54
4.4.1配置docker-compose\t54
4.4.2載入Harbor鏡像\t55
4.4. 3配置Harbor\t56
4.4.4啟動Harbor\t57
4.4.5創建用戶和項目\t58
4.5 Docker登錄設置\t61
4.5.1配置Harbor證書\t61
4.5.2登錄Docker\t62
4.6 Rancher離線安裝\t62
4.6. 1載入Rancher鏡像\t63
4.6.2安裝Rancher\t65
4.7 Kubernetes安裝\t66
4.7.1配置私有倉庫\t66
4.7.2添加Control節點\t67
4.7.3添加Worker節點\t71
4.7.4配置kubectl客戶端\t74
4.8本章小結\t76
 
第5章日誌採集\t78
5.1日誌採集模型\t79
5.2配置微服務日誌\t80
5.3容器日誌採集\t81
5.4日誌匯集\t82
5.4.1日誌格式\t83
5.4.2配置Filebeat\t84
5.4.3配置Logstash\t86
5.4.4配置Elasticsearch\t91
5.5日誌展示\t95
5.5.1配置Kibana\t95
5.5.2啟動和關閉Kibana\t96
5.5.3 Kibana索引設置\t96
5.5.4展示Kibana圖形化\t98
5.6本章小結\t108
 
第6章調用鏈跟踪\t109
6.1調用鏈概述\t110
6.1.1系統完整調用鏈\t111
6.1 .2調用過程追踪\t111
6.2 Spring Cloud調用鏈模型\t112
6.2.1 Sleuth組件\t112
6.2.2 Zipkin組件\t114
6.2.3 Spring Cloud調用鏈跟踪\t115
6.3調用鏈跟踪配置\t116
6.3.1微服務配置\t116
6.3.2 Zipkin服務端配置\t120
6.4調用鏈跟踪展示\t124
6.4.1 Zipkin圖形化展示\t125
6.4.2 Kibana圖形化展示\t133
6.5本章小結\t136
 
第7章熔斷器\t137
7.1熔斷器概述\t138
7.1.1熔斷器介紹\t138
7.1.2 Hystrix介紹\t138
7.2熔斷器配置\t139
7.3熔斷器使用\t140
7.3.1 EnableCircuitBreaker註解\t140
7.3.2 HystrixCommand註解\t141
7.3.3 Fallback函數\t142
7.4熔斷器監控\t144
7.5本章小結\t145
 
第8章容器化與服務編排\t146
8.1容器化與服務編排概述\t147
8.1.1 Docker介紹\t147
8.1.2 Docker與虛擬機\t148
8.1.3服務編排與調度\t149
8.2構建基礎鏡像\t149
8.2.1母鏡像的選擇\t150
8.2.2基礎鏡像的特點\t151
8.2.3生成基礎鏡像\t151
8.3構建業務鏡像\t154
8.3.1微服務打包\t154
8.3.2鏡像構建的Dockerfile文件\t156
8.3.3鏡像集成構建\t157
8.4服務編排\t161
8.4.1服務創建\t161
8.4.2服務版本升級\t165
8.4.3參數配置\t166
8.4.4服務版本降級\t167
8.5目錄掛載\t168
8.5 .1創建持久化卷\t169
8.5.2綁定持久化卷\t170
8.5.3掛載持久化卷\t170
8.6環境變量\t171
8.7管理Config Map\t172
8.7.1創建Config Map\t172
8.7.2使用Config Map\t173
8.8本章小結\t175
 
第9章系統監控\t176
9.1系統監控概述\t177
9.1.1主機監控\t177
9.1.2安全監控\t179
9.1.3中間件監控\t181
9.1.4業務監控\t183
9.1.5容器監控\t184
9.1.6監控工具\t184
9.2 Kubernetes監控\t185
9.3 Node Exporter組件\t187
9.4 Prometheus組件\t191
9.4.1 Prometheus組件的特徵\t191
9.4.2 Prometheus組件的架構\t193
9.4.3 Prometheus組件的部署\t194
9.5 Grafana組件\t206
9.5.1 Grafana組件介紹\t206
9.5.2 Grafana組件的部署\t207
9.5 .3 Grafana組件的展示\t209
9.6本章小結\t211
 
第10章持續集成部署\t212
10.1持續集成部署的概念\t213
10.1.1持續集成\t213
10.1.2持續部署\t213
10.2持續集成部署的模型\ t214
10.3基於Jenkins的CICD\t215
10.3.1 GitLab代碼分支管理\t215
10.3.2 CICD模型\t215
10.3.3 CICD流程\t216
10.3.4 CICD實踐\t218
10.4本章小結\t220


作者介紹


資深程序員、架構師。從事軟件開發設計十餘年,現就職於中國聯通電子商務中心,集團IT專家人才。
主導電信運營商某中台系統的架構重構、微服務、容器化的設計開發和落地工作。
主要技術領域是分佈式系統架構設計、微服務設計與開發、容器化部署與服務編排和容器雲計算等。




相關書籍

HTML5 + CSS3 +j Query Mobile + Bootstrap 開發 APP 從入門到精

作者 張工廠

2020-02-01

你的地圖會說話?WebGIS 與 JavaScript 的情感交織(iT邦幫忙鐵人賽系列書)

作者 廖炳閎(Perry Liao)

2020-02-01

The dRuby Book: Distributed and Parallel Computing with Ruby (Paperback)

作者 Masatoshi Seki

2020-02-01