微服务之道 度量驱动开发+微服务设计+微服务实战 微服务架构设计实践书籍pdf下载

微服务之道 度量驱动开发+微服务设计+微服务实战 微服务架构设计实践书籍百度网盘pdf下载

作者:
简介:微服务之道 度量驱动开发+微服务设计+微服务实战 微服务架构设计实践书籍
出版社:
出版时间:2016-04
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍




9787111653615 9787115420268 9787115529879

书   名: 微服务之道:度量驱动开发
图书定价: 89元
作 者: 范亚敏 傅健
出 版 社: 机械工业出版社
出版日期: 2020-05-09
ISBN 号: 9787111653615
开   本: 16开
页   数: 308
版   次: 1-1





本书由资深架构师撰写,系统介绍级微服务设计与实现方法,融入了作者多年架构设计的经验。主要内容包括:1章介绍微服务理论与原则,包括微服务概念、协议、特点等;2章微服务实践方法,包括设计要点、应对变化、测试驱动的开发等;3章通过案例讲解微服务实现的过程,包括一个完整实例;4章介绍持续改进的方法,包括度量驱动的改进方法,用缓存提高性能,用SQL提高扩展性等;5章介绍持续交付的方法,包括用脚本驱动开发方法,部署流水线等。




本书赞誉
前言
1章 微服务入门 1
1.1 单体服务的特点 1
1.2 拆分服务 2
1.2.1 分而治之以降低复杂性 2
1.2.2 分而用之以提高可重用性 4
1.2.3 分而做之以提高开发效率 5
1.3 微服务的特点 5
1.3.1 微服务架构的特点 6
1.3.2 微服务架构的特征 7
1.3.3 微服务架构的风格 7
1.3.4 微服务的分类 7
1.3.5 多小的服务才是微服务 8
1.4 微服务之道 8
1.4.1 软件之道 8
1.4.2 关于微服务的思考 10
1.5 土豆微服务案例快速上手 11
1.5.1 土豆微服务构建计划 11
1.5.2 微服务构建一:土豆管理微服务 13
1.5.3 微服务构建二:土豆提醒微服务 24
1.5.4 微服务构建三:土豆网页微服务 30
1.5.5 部署土豆微服务 35
1.6 本章小结 38
2章 微服务度量的基本概念 39
2.1 微服务的局限及其解决方案 39
2.1.1 微服务的局限 39
2.1.2 解决方案 40
2.2 微服务中度量的重要性 41
2.3 微服务度量的内容 42
2.3.1 按度量的目标划分 43
2.3.2 按度量的层次划分 44
2.4 微服务度量指标与术语 49
2.4.1 统计学指标 49
2.4.2 度量指标相关术语 53
2.4.3 度量处理相关术语 55
2.5 微服务度量策略选择 58
2.5.1 如何做度量 58
2.5.2 如何选择度量方案 60
2.6 本章小结 63
3章 微服务度量的设计 64
3.1 微服务协议的选择与度量 64
3.1.1 协议概述 64
3.1.2 协议分类 65
3.1.3 协议分析 67
3.2 HTTP及其度量 71
3.2.1 HTTP简介 71
3.2.2 REST协议的度量要点 71
3.3 SIP及其度量 72
3.3.1 SIP简介 72
3.3.2 SIP的度量要点 73
3.4 RTP及其度量 73
3.4.1 RTP简介 73
3.4.2 RTP的度量要点 74
3.5 数据存储系统的选型 76
3.5.1 理论回顾 76
3.5.2 数据存储系统选型 78
3.5.3 数据存储系统特性 79
3.6 基于度量实现高可用性 80
3.6.1 分流——负载均衡 81
3.6.2 限流——速率控制 83
3.6.3 断流——熔断隔离 91
3.7 土豆微服务度量驱动的设计 95
3.7.1 为如何度量而设计 96
3.7.2 通过度量改进设计 101
3.8 本章小结 102
4章 度量驱动的微服务实现 103
4.1 度量代码 103
4.1.1 代码度量标准 103
4.1.2 代码度量关键指标 105
4.1.3 小结 107
4.2 度量进度 108
4.3 度量性能 110
4.4 度量微服务的常用技术 123
4.4.1 利用切面记录度量日志 123
4.4.2 利用线程局部变量记录度量信息 124
4.4.3 利用过滤器找准度量点 126
4.4.4 提供JMX暴内部度量指标 127

4.4.6 阈值和采样率控制度量数据量 132
4.4.7 利用简单网络管理协议提供度量查询和报警支持 135
4.4.8 综合利用以上技术 135
4.5 度量常用类库 138
4.5.1 Dropwizard的Metrics-core 138
4.5.2 Pivotal的Micrometer 140
4.5.3 Spring Boot Actuator 142
4.6 土豆微服务度量实现 147
4.6.1 为土豆微服务提供代码度量 147
4.6.2 为土豆微服务添加健康检查API 152
4.6.3 为土豆微服务提供资源使用率度量 156
4.6.4 为土豆微服务提供使用量的度量 157
4.6.5 为土豆微服务提供性能度量 159
4.6.6 为土豆微服务提供错误度量 160
4.6.7 为土豆微服务提供业务KPI度量 160
4.7 本章小结 163
5章 度量数据的聚合与展示 164
5.1 度量数据的聚合和存储 164
5.2 度量数据的清洗和处理 166
5.2.1 数据清洗的方法 166
5.2.2 数据清洗的案例 166
5.3 度量数据的可视化 170
5.3.1 图表的结构 170
5.3.2 图表的类型 170
5.3.3 如何选择图表 179
5.4 常用度量聚合与展示方案 181
5.4.1 TIG方案 181
5.4.2 ELKK方案 188
5.4.3 Collectd方案 193
5.4.4 Prometheus方案 198
5.5 土豆微服务的度量聚合与展示 200
5.5.1 土豆微服务支持多种度量聚合与展示系统的设计 200
5.5.2 基于TIG的土豆微服务度量聚合与展示 202
5.5.3 基于ELKK的土豆微服务度量聚合与展示 207
5.6 本章小结 214
6章 度量数据的分析与报警 215
6.1 度量数据的分析 215
6.1.1 确定数据分析的目标 215
6.1.2 数据分析常见问题 218
6.2 实现报警常用的技术 222
6.2.1 Python数据分析技术栈 223
6.2.2 YAML配置文件 223
6.2.3 Elasticsearch API 224
6.2.4 Pandas DataFrame 226
6.2.5 Matplotlib 228
6.3 土豆微服务的报警实现 230
6.3.1 报警系统的设计 230
6.3.2 报警系统的实现 232
6.3.3 报警系统的优化 242
6.4 本章小结 244
7章 度量驱动的运维 245
7.1 部署升级 245
7.1.1 何时能部署到产品线上 246
7.1.2 如何发布新功能 247
7.2 数据的运维 251
7.2.1 健康检查 251
7.2.2 度量报告 251
7.2.3 度量警告 252
7.2.4 故障处理 252
7.2.5 基于度量来发现和解决问题 255
7.3 配置调整 258
7.3.1 关于配置的思考 259
7.3.2 配置的版本管理 259
7.3.3 配置的载体 260
7.3.4 环境管理 262
7.3.5 配置微服务 262
7.3.6 配置管理实例 263
7.4 开源组件的度量 267
7.4.1 对Redis的度量 267
7.4.2 对Kafka的度量 270
7.4.3 对Cassandra的度量 273
7.5 土豆微服务的运维示例 276
7.6 本章小结 280
8章 全链路度量 281
8.1 微服务的调用链路度量 281
8.1.1 3个关键信息 282
8.1.2 5个要点 283
8.1.3 3种标识 283
8.1.4 开源调用链分析方案 284
8.1.5 构建土豆微服务调用链的度量 285
8.2 客户端度量数据的采集 289
8.3 度量驱动开发的回顾与展望 291
8.4 本章小结 293
附录 常用的度量相关工具与软件库 294

微服务设计

内容简介
  本书全面介绍了微服务的建模、集成、测试、部署和监控,通过一个虚构的公司讲解了如何建立微服务架构。主要内容包括认识微服务在保证系统设计与组织目标统一上的重要性,学会把服务集成到已有系统中,采用递增手段拆分单块大型应用,通过持续集成部署微服务,等等。

目录
前言 iv
1 章 微服务 1
1.1 什么是微服务 2
1.1.1 很小,专注于做好一件事 2
1.1.2 自治性 3
1.2 主要好处 3
1.2.1 技术异构性 3
1.2.2 弹性 4
1.2.3 扩展 5
1.2.4 简化部署 5
1.2.5 与组织结构相匹配 6
1.2.6 可组合性 6
1.2.7 对可替代性的优化 6
1.3 面向服务的架构 7
1.4 其他分解技术 7
1.4.1 共享库 8
1.4.2 模块 8
1.5 没有银弹 9
1.6 小结 10
2 章 演化式架构师 11
2.1 不准确的比较 11
2.2 架构师的演化视角 12
2.3 分区 14
2.4 一个原则性的方法 15
2.4.1 战略目标 15
2.4.2 原则 15
2.4.3 实践 16
2.4.4 将原则和实践相结合 16
2.4.5 真实世界的例子 16
2.5 要求的标准 17
2.5.1 监控 18
2.5.2 接口 18
2.5.3 架构安全性 18
2.6 代码治理 18
2.6.1 范例 19
2.6.2 裁剪服务代码模板 19
2.7 技术债务 20
2.8 例外管理 21
2.9 集中治理和领导 21
2.10 建设团队 22
2.11 小结 23
3 章 如何建模服务 24
3.1 MusicCorp 简介 24
3.2 什么样的服务是好服务 25
3.2.1 松耦合 25
3.2.2 高内聚 25
3.3 限界上下文 26
3.3.1 共享的隐藏模型 26
3.3.2 模块和服务 27
3.3.3 过早划分 28
3.4 业务功能 28
3.5 逐步划分上下文 29
3.6 关于业务概念的沟通 30
3.7 技术边界 30
3.8 小结 31
4 章 集成 32
4.1 寻找理想的集成技术 32
4.1.1 避免破坏性修改 32
4.1.2 保证API 的技术无关性 32
4.1.3 使你的服务易于消费方使用 33
4.1.4 隐藏内部实现细节 33
4.2 为用户创建接口 33
4.3 共享数据库 33
4.4 同步与异步 35
4.5 编排与协同 35
4.6 远程过程调用 38
4.6.1 技术的耦合 38
4.6.2 本地调用和远程调用并不相同 39
4.6.3 脆弱性 39
4.6.4 RPC 很糟糕吗 40
4.7 REST 41
4.7.1 REST 和HTTP 41
4.7.2 媒体作为程序状态的引擎 42
4.7.3 JSON、XML 还是其他 44
4.7.4 留心过多的约定 44
4.7.5 基于HTTP 的REST 的缺点 45
4.8 实现基于事件的异步协作方式 46
4.8.1 技术选择 46
4.8.2 异步架构的复杂性 47
4.9 服务即状态机 48
4.10 响应式扩展 48
4.11 微服务世界中的DRY 和代码重用的危险 49
4.12 按引用访问 50
4.13 版本管理 51
4.13.1 尽可能推迟 51
4.13.2 及早发现破坏性修改 52
4.13.3 使用语义化的版本管理 53
4.13.4 不同的接口共存 53
4.13.5 同时使用多个版本的服务 54
4.14 用户界面 55
4.14.1 走向数字化 56
4.14.2 约束 56
4.14.3 API 组合 57
4.14.4 UI 片段的组合 57
4.14.5 为前端服务的后端 59
4.14.6 一种混合方式 60
4.15 与三方软件集成 61
4.15.1 缺乏控制 61
4.15.2 定制化 62
4.15.3 意大利面式的集成 62
4.15.4 在自己可控的平台进行定制化 62
4.15.5 绞杀者模式 64
4.16 小结 65
5 章 分解单块系统 66
5.1 关键是接缝 66
5.2 分解MusicCorp 67
5.3 分解单块系统的原因 68
5.3.1 改变的速度 68
5.3.2 团队结构 68
5.3.3 安全 68
5.3.4 技术 68
5.4 杂乱的依赖 69
5.5 数据库 69
5.6 找到问题的关键 69
5.7 例子:打破外键关系 70
5.8 例子:共享静态数据 71
5.9 例子:共享数据 72
5.10 例子:共享表 73
5.11 重构数据库 74
5.12 事务边界 75
5.12.1 再试一次 76
5.12.2 终止整个作 77
5.12.3 分布式事务 77
5.12.4 应该怎么办呢 78
5.13 报告 78
5.14 报告数据库 78
5.15 通过服务调用来获取数据 80
5.16 数据导出 81
5.17 事件数据导出 82
5.18 数据导出的备份 83
5.19 走向实时 84
5.20 修改的代价 84
5.21 理解根本原因 84
5.22 小结 85
6 章 部署 86
6.1 持续集成简介 86
6.2 把持续集成映到微服务 87
6.3 构建流水线和持续交付 90
6.4 平台特定的构建物 91
6.5 作系统构建物 92
6.6 定制化镜像 93
6.6.1 将镜像作为构建物 94
6.6.2 不可变服务器 95
6.7 环境 95
6.8 服务配置 96
6.9 服务与主机之间的映 97
6.9.1 单主机多服务 97
6.9.2 应用程序容器 99
6.9.3 每个主机一个服务 100
6.9.4 平台即服务 101
6.10 自动化 101
6.11 从物理机到虚拟机 102
6.11.1 传统的虚拟化技术 103
6.11.2 Vagrant 104
6.11.3 Linu 容器 104
6.11.4 Docker 106
6.12 一个部署接口 107
6.13 小结 109
7 章 测试 110
7.1 测试类型 110
7.2 测试范围 111
7.2.1 单元测试 112
7.2.2 服务测试 113
7.2.3 端到端测试 114
7.2.4 权衡 114
7.2.5 比例 115
7.3 实现服务测试 115
7.3.1 mock 还是打桩 115
7.3.2 智能的打桩服务 116
7.4 微妙的端到端测试 117
7.5 端到端测试的缺点 118
7.6 脆弱的测试 118
7.6.1 谁来写这些测试 119
7.6.2 测试多长时间 119
7.6.3 大量的堆积 120
7.6.4 元版本 120
7.7 测试场景,而不是故事 121
7.8 拯救消费者驱动的测试 121
7.8.1 Pact 123
7.8.2 关于沟通 124
7.9 还应该使用端到端测试吗 124
7.10 部署后再测试 125
7.10.1 区分部署和上线 125
7.10.2 金丝雀发布 126
7.10.3 平均修复时间胜过平均故障间隔时间 127
7.11 跨功能的测试 128
7.12 小结 129
8 章 监控 131
8.1 单一服务,单一服务器 132
8.2 单一服务,多个服务器 132
8.3 多个服务,多个服务器 133
8.4 日志,日志,更多的日志 134
8.5 多个服务的指标跟踪 135
8.6 服务指标 135
8.7 综合监控 136
8.8 关联标识 137
8.9 级联 139
8.10 标准化 139
8.11 考虑受众 140
8.12 未来 140
8.13 小结 141
9 章 安全 143
9.1 身份验证和授权 143
9.1.1 常见的单点登录实现 144
9.1.2 单点登录网关 145
9.1.3 细粒度的授权 146
9.2 服务间的身份验证和授权 146
9.2.1 在边界内允许一切 146
9.2.2 HTTP(S) 基本身份验证 147
9.2.3 使用SAML 或OpenID Connect 148
9.2.4 客户端证书 148
9.2.5 HTTP 之上的HMAC 149
9.2.6 API 密钥 149
9.2.7 代理问题 150
9.3 静态数据的安全 152
9.3.1 使用众所周知的加密算法 152
9.3.2 一切皆与密钥相关 153
9.3.3 选择你的目标 153
9.3.4 按需解密 153
9.3.5 加密备份 153
9.4 深度防御 154
9.4.1 防火墙 154
9.4.2 日志 154
9.4.3 入侵检测(和预防)系统 154
9.4.4 网络隔离 155
9.4.5 作系统 155
9.5 一个示例 156
9.6 保持节俭 158
9.7 人的因素 158
9.8 黄金法则 158
9.9 内建安全 159
9.10 外部验证 159
9.11 小结 159
10 章 康威定律和系统设计 161
10.1 证据 161
10.1.1 松耦合组织和紧耦合组织 162
10.1.2 Windows Vista 162
10.2 Netfli 和Amazon 162
10.3 我们可以做什么 163
10.4 适应沟通途径 163
10.5 服务所有权 164
10.6 共享服务的原因 164
10.6.1 难以分割 164
10.6.2 特性团队 164
10.6.3 交付瓶颈 165
10.7 内部开源 166
10.7.1 守护者的角色 166
10.7.2 成熟 166
10.7.3 工具 167
10.8 限界上下文和团队结构 167
10.9 孤儿服务 167
10.10 案例研究:RealEstate.com.au 168
10.11 反向的康威定律 169
10.12 人 170
10.13 小结 170
11 章 规模化微服务 171
11.1 故障无处不在 171
11.2 多少是太多 172
11.3 功能降级 173
11.4 架构性安全措施 174
11.5 反脆弱的组织 175
11.5.1 时 176
11.5.2 断路器 176
11.5.3 舱壁 178
11.5.4 隔离 179
11.6 幂等 179
11.7 扩展 180
11.7.1 更强大的主机 181
11.7.2 拆分负载 181
11.7.3 分散风险 181
11.7.4 负载均衡 182
11.7.5 基于worker 的系统 184
11.7.6 重新设计 184
11.8 扩展数据库 185
11.8.1 服务的可用性和数据的持久性 185
11.8.2 扩展读取 185
11.8.2 扩展写作 186
11.8.4 共享数据库基础设施 187
11.8.5 CQRS 187
11.9 缓存 188
11.9.1 客户端、 代理和服务器端缓存 188
11.9.2 HTTP 缓存 189
11.9.3 为写使用缓存 190
11.9.4 为弹性使用缓存 190
11.9.5 隐藏源服务 191
11.9.6 保持简单 191
11.9.7 缓存中毒:一个警示 192
11.10 自动伸缩 192
11.11 CAP 定理 193
11.11.1 牺牲一致性 194
11.11.2 牺牲可用性 195
11.11.3 牺牲分区容忍性 195
11.11.4 AP 还是CP 196
11.11.5 这不是全部或全不 196
11.11.6 真实世界 197
11.12 服务发现 197
11.13 动态服务注册 199
11.13.1 Zookeeper 199
11.13.2 Consul 200
11.13.4 构造你自己的系统 201
11.13.5 别忘了人 201
11.14 文档服务 201
11.14.1 Swagger 202
11.14.2 HAL 和HAL 浏览器 202
11.15 自描述系统 203
11.16 小结 203
12 章 总结 204
12.1 微服务的原则 204
12.1.1 围绕业务概念建模 205
12.1.2 接受自动化文化 205
12.1.3 隐藏内部实现细节 205
12.1.4 让一切都去中心化 206
12.1.5 可独立部署 206
12.1.6 隔离失败 206
12.1.7 高度可观察 207
12.2 什么时候你不应该使用微服务 207
12.3 临别赠言 208
关于作者 209
关于封面 209

微服务实战

内容简介
《微服务实战》主要介绍如何开发和维护基于微服务的应用。本书源自作者从日常开发中得到的积累和感悟,其中给出的案例覆盖从微服务设计到部署的各个阶段,能够带给你真实的沉浸式体验。通过阅读本书,你不仅能够了解用微服务搭建高效的持续交付流水线的方法,还能够运用Kubernetes、Docker 以及Google Container Engine 进一步探索书中的示例。

目录
一部分 概述
 1章 微服务的设计与运行 3
1.1 什么是微服务应用 4
1.1.1 通过分解来实现扩展 6
1.1.2 核心原则 7
1.1.3 谁在使用微服务 9
1.1.4 为什么微服务是一个明智的选择 10
1.2 微服务的挑战 12
1.2.1 设计挑战 13
1.2.2 运维挑战 15
1.3 微服务开发生命周期 16
1.3.1 微服务设计 17
1.3.2 微服务部署 18
1.3.3 服务监控 21
1.4 有责任感和运维意识的工程师文化 22
1.5 小结 23
 2章 SimpleBank公司的微服务 24
2.1 SimpleBank公司的业务范围 24
2.2 微服务是否是正确的选择 25
2.2.1 金融软件的风险和惰性 26
2.2.2 减少阻力和持续交付价值 27
2.3 开发新功能 27
2.3.1 通过领域建模识别微服务 28
2.3.2 服务协作 30
2.3.3 服务编排 32
2.4 向外界开放服务 34
2.5 将功能发布到生产环境中 35
2.5.1 高质量的自动化部署 37
2.5.2 可恢复性 37
2.5.3 透明性 38
2.6 大规模微服务开发 39
2.6.1 技术分歧 40
2.6.2 孤立 40
2.7 接下来的内容 41
2.8 小结 41
二部分 设计
3章 微服务应用的架构 45
3.1 整体架构 45
3.1.1 从单体应用到微服务 46
3.1.2 架构师的角色 47
3.1.3 架构准则 47
3.1.4 微服务应用的4层架构 48
3.2 微服务平台 49
3.3 服务层 51
3.3.1 功能 51
3.3.2 聚合与多元服务 52
3.3.3 关键路径和非关键路径 53
3.4 通信 54
3.4.1 何时使用同步消息 54
3.4.2 何时使用异步消息 55
3.4.3 异步通信模式 55
3.4.4 服务定位 57
3.5 服务边界 58
3.5.1 API网关 60
3.5.2 服务于前端的后端 61
3.5.3 消费者驱动网关 62
3.6 客户端 63
3.6.1 前端单体 63
3.6.2 微前端 64
3.7 小结 65
4章 新功能设计 66
4.1 SimpleBank的新功能 67
4.2 按业务能力划分 68
4.2.1 能力和领域建模 69
4.2.2 创建投资策略 70
4.2.3 内嵌型上下文和服务 75
4.2.4 挑战和不足 76
4.3 按用例划分 77
4.3.1 按投资策略下单 77
4.3.2 动作和存储 82
4.3.3 编配与编排 83
4.4 按易变性划分 84
4.5 按技术能力划分 85
4.5.1 发送通知 85
4.5.2 何时使用技术能力 86
4.6 处理不确定性 87
4.6.1 从粗粒度服务开始 88
4.6.2 准备进一步分解 88
4.6.3 下线和迁移 89
4.7 组织中的服务所有权 91
4.8 小结 92
5章 微服务的事务与查询 93
5.1 分布式应用的事务一致性 94
5.2 基于事件的通信 96
5.3 Saga 98
5.3.1 编排型Saga 100
5.3.2 编配型Saga 102
5.3.3 交织型Saga 104
5.3.4 一致性模式 105
事件溯源 106
5.4 分布式世界中的查询作 107
5.4.1 保存数据副本 108
5.4.2 查询和命令分离 110
5.4.3 CQRS挑战 112
5.4.4 分析和报表 114
5.5 延伸阅读 114
5.6 小结 114
6章 设计高可靠服务 116
6.1 可靠性定义 117
6.2 哪些会出错 119
6.2.1 故障源 119
6.2.2 连锁故障 122
6.3 设计可靠的通信方案 125
6.3.1 重试 126
6.3.2 后备方案 128
6.3.3 时 130
6.3.4 断路器 132
6.3.5 异步通信 134
6.4 大限度地提高服务可靠性 135
6.4.1 负载均衡与服务健康 135
6.4.2 限流 136
6.4.3 验证可靠性和容错性 137
6.5 默认安全 140
6.5.1 框架 140
6.5.2 服务网格 141
6.6 小结 142
7章 构建可复用的微服务框架 143
7.1 微服务底座 144
7.2 微服务底座的目的 146
7.2.1 降低风险 147
7.2.2 快速启动 147
7.3 设计服务底座 148
7.3.1 服务发现 149
7.3.2 可观测性 153
7.3.3 平衡和限流 159
7.4 探索使用底座实现的特性 161
7.5 差异性是否是微服务的承诺 163
7.6 小结 164
三部分 部署
8章 微服务部署 167
8.1 部署的重要性 167
8.2 微服务生产环境 169
8.2.1 微服务生产环境的特点 169
8.2.2 自动化和速度 170
8.3 部署服务的快捷方式 171
8.3.1 服务启动 171
8.3.2 配置虚拟机 172
8.3.3 运行多个服务实例 173
8.3.4 添加负载均衡器 175
8.3.5 开发者学到了什么 177
8.4 构建服务工件 178
8.4.1 工件的组成 179
8.4.2 不可变性 179
8.4.3 服务工件的类型 180
8.4.4 配置 184
8.5 服务与主机关系模型 185
8.5.1 单服务主机 185
8.5.2 单主机多静态服务 185
8.5.3 单主机多调度化服务 186
8.6 不停机部署服务 187
8.7 小结 190
9章 基于容器和调度器的部署 191
9.1 服务容器化 192
9.1.1 镜像使用 192
9.1.2 构建镜像 194
9.1.3 运行容器 197
9.1.4 镜像存储 199
9.2 集部署 200
9.2.1 pod的设计与运行 201
9.2.2 负载均衡 204
9.2.3 快速揭秘 205
9.2.4 健康检查 208
9.2.5 部署新版本服务 210
9.2.6 回滚 215
9.2.7 连接多个服务 215
9.3 小结 216
 10章 构建微服务交付流水线 217
10.1 让部署变得平淡 217
10.2 使用Jenkins构建流水线 219
10.2.1 构建流水线配置 220
10.2.2 构建镜像 223
10.2.3 运行测试 224
10.2.4 发布工件 226
10.2.5 部署至预发布环境 227
10.2.6 预发布环境 230
10.2.7 部署生产环境 230
10.3 构建可复用的流水线步骤 233
10.4 降低部署影响以及实现功能发布的
技术 235
10.4.1 暗发布 235
10.4.2 功能标记 236
10.5 小结 237
部分 可观测性和所有权
 11章 构建监控系统 241
11.1 稳固的监控技术栈 241
11.1.1 良好的分层监控 243
11.1.2 黄金标志 244
11.1.3 度量指标的类型 244
11.1.4 实践建议 245
11.2 利用Prometheus和Grafana监控
SimpleBank 246
11.2.1 配置度量指标收集基础
设施 247
11.2.2 收集基础设施度量
指标——RabbitMQ 253
11.2.3 监控下单功能 255
11.2.4 告警设置 257
11.3 生成合理的可执行的告警 261
11.3.1 系统出错时哪些人需要
知悉 261
11.3.2 症状,而非原因 262
11.4 监测整个应用 262
11.5 小结 264
 12章 使用日志和链路追踪了解系统
行为 265
12.1 了解服务间的行为 265
12.2 生成一致的、结构化的、人类可读的
日志 268
12.2.1 日志中的有用信息 268
12.2.2 结构化和可读性 269
12.3 为SimpleBank配置日志基础设施 271
12.3.1 基于ELK和Fluentd的解决
方案 272
12.3.2 配置日志解决方案 274
12.3.3 配置应收集哪些日志 276
12.3.4 大海捞针 279
12.3.5 记录合适的信息 281
12.4 服务间的跟踪交互 281
12.4.1 请求关联:trace和span 282
12.4.2 在服务内配置链路追踪 283
12.5 链路追踪可视化 287
12.6 小结 291
 13章 微服务团队建设 292
13.1 建设高效团队 292
13.1.1 康威定律 294
13.1.2 高效团队原则 294
13.2 团队模型 296
13.2.1 按职能分组 296
13.2.2 跨职能分组 298
13.2.3 设置团队边界 299
13.2.4 基础设施、平台和产品 300
13.2.5 谁负责值班 302
13.2.6 知识共享 303
13.3 微服务团队的实践建议 304
13.3.1 微服务变更的驱动力 305
13.3.2 架构的角色 305
13.3.3 同质性与技术灵活性 307
13.3.4 开源模型 307
13.3.5 设计评审 308
13.3.6 动态文档 309
13.3.7 回答应用的问题 310
13.4 延伸阅读 311
13.5 小结 311
附录A 在Minikube上安装Jenkins 312


暂时没有目录,请见谅!