书籍详情
微服务容器化开发实战
作者:尹为强 著
出版社:电子工业出版社
出版时间:2020-02-01
ISBN:9787121382925
定价:¥89.00
购买这本书可以去
内容简介
微服务和Docker容器技术是目前分布式架构中常用的主流技术,结合Kubernetes强大的容器服务编排与调度能力,中小企业能够简单快速地构建自己的分布式互联网架构系统。《微服务容器化开发实战》结合实际生产项目的架构重构过程和经验,详细介绍从单体架构过渡到微服务容器化的分布式架构的各个方面,主要包括微服务开发和运维技术栈的选型、Spring Cloud微服务开发、Rancher和Kubernetes生产离线环境下的安装与部署、微服务的容器化与服务编排、日志调用链的采集和展示、基于Prometheus的系统监控,以及微服务的持续集成等要点。《微服务容器化开发实战》基于Spring Boot、Spring Cloud、Docker、Rancher、Kubernetes等技术,主要提供从设计、开发、部署到运维的微服务容器化的生产环境整体解决方案。
作者简介
尹为强,资深程序员、架构师。从事软件开发设计十余年,现就职于中国联通电子商务中心,集团IT专家人才。主导电信运营商某中台系统的架构重构、微服务、容器化的设计开发和落地工作。主要技术领域是分布式系统架构设计、微服务设计与开发、容器化部署与服务编排和容器云计算等。
目录
第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 背景介绍 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
猜您喜欢