暂无商品咨询信息 [发表商品咨询]
微服务是一种极具效能的架构模式,可以为组织和客户创造价值。如果使用得当,微服务可以让你每天都对系统的不同部分进行数百次变更,从而加速交付。但如果处理不当,微服务只会让整个系统变得更加复杂。通过本书,你将学到:微服务对软件开发模式和实践的影响。成功构建和运行微服务架构所需的组织变革。在迁移到微服务之前必须完成的关键步骤。设计微服务架构时需要避免的陷阱,以及如何从错误中恢复。
目录
序 1
前言 3
第一部分 背景认知
第 1 章 理解微服务 15
11 微服务架构风格 16
111 服务集合 17
112 独立进程运行 17
113 轻量级通信机制 17
114 围绕业务能力构建 18
115 可独立部署 18
116 “Small”小型化 19
117 最小化集中管理 19
118 技术异构性 20
12 前驱方案与替代选项 20
121 单体架构 20
122 模块化单体架构 22
123 面向服务的架构 23
13 微服务生态系统 24
131 基础设施即代码 25
132 持续交付 27
133 公有云 28
134 新型部署模式 30
135 开发运维一体化(DevOps) 35
136 可观测性 36
14 微服务优势 36
141 独立可扩展 37
142 健壮性 37
143 小步快频,轻松发布 38
144 灵活的技术选型 39
15 微服务架构的挑战 39
151 网络延迟 40
152 技术资产复杂性 40
153 运维复杂性 41
154 数据一致性 42
155 安全 43
156 服务粒度的把控 44
157 变更管理 46
158 需要组织层面的调整 48
159 改变开发者体验 48
16 小结 50
第 2 章 高效软件交付 51
21 定期交付业务价值 52
211 高部署频率 54
212 缩短交付周期 55
213 进行实验 57
214 代码部署与功能发布分离 58
215 跨团队协作的架构管理 59
22 适应需求优先级变化 62
23 维持适当的服务水平 64
231 当发布出现问题时 65
232 及时感知核心服务故障 66
233 实现服务能力的快速局部恢复 69
234 避免故障连锁反应 70
24 专注于核心价值工作 72
25 避免从头再来 74
26 风险管理:维持在可控范围内 77
27 微服务架构适用性评估 78
28 小结 79
第 3 章 微服务是否合适 80
31 选择微服务的原因 81
311 应用组织规模扩张 81
312 开发者体验 84
313 隔离合规安全敏感业务模块 85
314 负载扩展 86
315 提高鲁棒性 86
316 提高灵活性 87
32 成功前提 88
321 领域认知 88
322 产品而非项目 88
323 领导层支持 89
324 追求自主权的团队 90
325 实现自主性的流程 90
326 技术成熟度 91
33 变革管理 92
34 坚持采用单体架构 93
341 实现零停机部署 93
342 构建模块化单体架构 94
35 分布式架构已成常态 99
351 云原生的崛起 100
352 意义重大 100
36 建议 101
361 从零开始 101
362 替换现有单体 102
363 衡量成功 105
37 小结 105
第二部分 组织架构与文化
第 4 章 康威定律与寻找合适的边界 111
41 康威定律 112
42 逆向康威策略 115
43 潜在边界划分方案 116
431 业务领域 117
432 地点 118
433 技术 119
434 合规性 120
435 失败容忍度 120
436 变更频率 121
437 建议 122
44 识别边界划分错误 123
45 小结 126
第 5 章 建立高效团队 127
51 组织文化 127
511 开放 128
512 学习 129
513 授权 130
514 面向变化的优化 131
515 韦斯特鲁姆模型 131
52 高效团队 133
521 通过自主性、精通度和目标感来激励 134
522 与业务领域对齐 135
523 合理的规模 136
524 跨职能和 T 型 137
525 强所有权 139
526 持久性 140
527 可持续认知负荷 141
528 高信任度和高心理安全感 142
529 团队构成 143
53 优化流程 143
531 流对齐团队 145
532 赋能团队 146
533 复杂子系统团队 146
534 平台团队 147
54 小结 150
第 6 章 打造自主团队 152
61 什么是自主性 153
611 自主性为什么重要 153
612 自主性的限制 154
62 适度沟通 155
63 互动类型 156
631 协作型 157
632 服务型 158
633 促进型 159
64 支持自主性的工作方式 160
641 对齐目标 161
642 轻量化治理 162
643 信任但要验证 163
644 在技术上达成一致 164
645 个人贡献者角色 166
646 最小可行能力 167
647 创造学习空间 168
65 自主团队的责任 169
651 积极所有权 169
652 沟通与合作 170
653 遵守标准 171
654 维护一个团队页面 171
66 小结 173
第 7 章 工程赋能和预设路径 175
71 名称的含义 177
72 搭建平台 178
721 平台服务 180
722 组织层面的考量 181
723 构建最精简可行平台 183
724 专注于大多数人的需求 185
725 平台产品化 186
73 超越平台 188
731 供应商工程 189
732 API, 模板,标准库和示例 190
733 服务目录 191
734 洞察力 192
74 设置预设路径 193
741 包含的能力 196
742 可选的意义 198
743 保持小规模 200
744 如何偏离预设路径 200
745 将宝藏带回平台 202
746 内部开发者门户 202
75 打造实用平台 203
751 确保需求被满足 204
752 营销我们的产品 205
753 留意问题的出现迹象 207
76 构建预设路径的核心原则 207
761 可选的 209
762 有价值的 209
763 自助的 211
764 被支持的 212
765 易用的 213
766 具有指导性的 215
767 可组合扩展的 215
77 衡量影响 216
78 工程赋能的正确时机 218
79 小结 223
第 8 章 确保“谁构建,谁运行” 225
81 为什么微服务意味着 DevOps 226
811 按需发布 227
812 处理运维功能 228
82 以不同的方式进行构建 229
821 良好的运维手册 229
822 运行在其他人的服务器中 232
823 适应生产环境 232
83 在生产环境支持团队 233
831 专职的工作时间内运维支持 233
832 优化告警和文档 235
833 识别出幽灵森林 235
834 练习 236
84 非工作时间支持 238
841 允许人们选择退出 239
842 正式轮班制度 vs 全力以赴制度 240
843 确保呼叫很少 242
844 只针对关键系统 242
845 提供支持和指导 243
85 事故管理 244
851 无责备文化 245
852 上报事故 247
853 分配角色 248
854 事故期间 248
855 事故之后 250
856 从事故中学习 250
86 小结 253
第三部分 构建和运维
第 9 章 活跃的服务所有权 257
91 响应 Log4Shell 漏洞 258
92 一个反面教材:Equifax 和 Struts 漏洞 260
93 开发过程中的所有权 261
931 强所有权 262
932 弱所有权 262
933 共享所有权 263
94 一旦服务功能完备了 265
941 空所有权 266
942 名义所有权 266
943 积极所有权 266
95 积极所有权的含义 267
951 代码管理 268
952 升级和修补 268
953 迁移 269
954 生产支持 270
955 文档管理 270
96 了解服务资产 271
961 自研软件 272
962 依赖 272
963 第三方软件 273
97 服务目录中需要什么 275
971 基于图的模型 276
972 API 驱动 277
973 可扩展的 278
974 灵活的数据结构 278
975 提供整个资产的不同视图 280
98 所有权转让 281
981 成功的转让是什么样的 282
982 满足质量要求 282
983 运营方面的移交 283
984 替代 283
99 当我们陷入困境时 284
991 提供业务支持案例 284
992 从关键系统开始 285
993 尽力推测系统的所有者 286
994 从数据中交付价值 287
995 目标是持续优化 287
996 识别出负担过重的团队 288
997 服务不应永存 289
910 小结 290
第 10 章 得测试之利 291
101 为何测试 292
1011 正确地实现功能 295
1012 实现正确的功能 296
1013 捕捉回归缺陷 298
1014 满足服务质量要求 298
102 测试左移 299
103 什么才是好的测试 301
1031 尽快尽早发现问题 301
1032 易于修改 302
1033 直指问题 302
104 测试的种类 303
1041 测试金字塔 304
1042 单元测试 304
1043 服务测试 305
1044 端到端测试 307
1045 契约测试 309
1046 连贯性测试 310
1047 探索性测试 310
1048 跨功能测试 311
105 生产环境测试 312
1051 这安全吗 313
1052 预生产环境不是模拟生产环境 314
1053 总有别出心裁的用户 315
1054 总有变化测试不到 316
1055 不必把变更推给所有人 316
1056 监控即测试 319
106 基础设施测试 322
1061 混沌工程 323
1062 测试故障切换和数据恢复 324
107 质量不只源于测试 324
108 当你陷入困境 325
1081 自动化测试不足 325
1082 无效的测试 326
109 小结 327
第 11 章 治理与标准化:找准平衡点 328
111 为什么要治理 329
112 了解技术资产 329
113 记录何种信息 330
114 指导原则与政策 331
1141 指导原则自动化 333
1142 指导原则的内容 334
1143 金融时报的指导原则 334
115 共创指导原则 345
1151 技术治理小组(TGG) 346
1152 TGG 的价值 350
116 技术选型 351
1161 技术的生命周期 352
1162 为商业价值而创新 356
1163 用些无聊的技术 359
1164 精简选择 361
1165 哪些可以重复 362
1166 改变总会发生 363
117 先洞察再行动 363
118 其他组织的治理故事 364
1181 Monzo 的治理 364
1182 Skyscanner 的治理 366
119 当你陷入困境 368
1110 小结 369
第 12 章 内化弹性设计 371
121 什么是弹性 371
1211 分布式系统的弹性 373
1212 微服务的弹性 378
122 理解服务等级要求 379
1221 服务等级目标(SLO) 380
1222 错误预算 382
123 构建弹性服务 382
1231 冗余 383
1232 快速启动与优雅关闭 384
1233 合理的超时时长 384
1234 退避与重试 385
1235 幂等化请求 386
1236 保护自己 387
1237 验证服务弹性 387
1238 简化服务弹性设计 387
124 构建弹性系统 388
1241 缓存 388
1242 应对级联故障 389
1243 降级行为 390
1244 避免无效工作 391
1245 异步调用 392
1246 故障切换 393
1247 备份与恢复 393
1248 灾难恢复 394
125 构建弹性平台 394
1251 外部弹性 395
1252 内部工具 396
126 验证系统弹性 398
1261 混沌工程 399
1262 测试备份和重置 401
1263 熟能生巧 401
1264 负载测试 401
1265 从事故中学习 402
1266 一次只做一件事 402
127 当你陷入困境 403
128 小结 404
第 13 章 生产环境中的系统实践 406
131 微服务的运维挑战 407
1311 技术多样性的支持难题 409
1312 基础设施的短暂性 410
1313 快速变更 411
1314 警报过载 411
1315 弹性机制掩盖系统降级 412
132 内置可观测性 412
1321 日志 413
1322 监控和度量 415
1323 日志聚合 416
1324 OpenTelemetry 420
1325 关注事件 420
1326 分布式追踪 421
1327 归档观测数据 421
133 打造工具 422
134 聚焦问题 424
1341 正确告警 425
1342 健康检查 426
1343 监控业务成效 431
1344 了解系统常态 432
135 故障应急指南 433
136 故障排查 433
1361 维护核心文档 434
1362 洞察变更轨迹 436
1363 外源性故障隐患 436
1364 工具特性分析 437
137 从事故中学习 438
138 当你陷入困境 438
139 小结 439
第 14 章 保持系统演进 440
141 挑战源自何处 441
142 减轻变更冲击 442
1421 做长久打算 442
1422 规范路径的价值 442
1423 选择托管服务和 SaaS 方案 443
1424 提供 API 接口 444
1425 不可变的一次性基础设施 445
1426 退役和弃用 445
143 变更的分类 445
1431 紧急变更 446
1432 计划内的次要变更 446
1433 计划内的重大变更 446
144 应对变更 447
1441 技术资产的全景管理 448
1442 制定指导性政策 449
145 做出决策 450
1451 决策权归属 450
1452 工作排期权衡 450
146 管理变更 451
1461 保持清晰 452
1462 保持沟通 454
1463 保持同理心 457
1464 执行 462
147 当你陷入困境 463
148 总结 463
后记 465
附录 A 微服务评估 469
附录 B 推荐阅读 475
基本信息 | |
---|---|
出版社 | 中国电力出版社 |
ISBN | 9787523901564 |
条码 | 9787523901564 |
编者 | [英]萨拉 威尔斯(Sarah Wells) 著 |
译者 | |
出版年月 | 2025-09-01 00:00:00.0 |
开本 | 16开 |
装帧 | 平装 |
页数 | 500 |
字数 | 515000 |
版次 | 1 |
印次 | 1 |
纸张 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]