![]()
内容推荐 本书探讨了选择合适的分布式系统架构的策略。作者通过一个虚构的技术小组(Sysops Squad)的故事,研究了架构的各种可能性,包括如何确定服务粒度、管理工作流和编排、管理和解耦契约、管理分布式事务,以及如何优化运维性特征,例如可伸缩性、弹性和性能。本书分为两大部分:第1部分主要处理架构结构,即事物如何静态耦合在一起;第二部分讨论各种技术来克服与分布式架构相关的困难,包括管理服务通信、契约、分布式工作流、分布式事务、数据所有权、数据访问和分析型数据。 目录 前言 第1章 没有最佳实践会怎么样 1.1 何为“难点” 1.2 永不过时的软件架构建议 1.3 数据在架构中的重要性 1.4 架构决策记录 1.5 架构适应度函数 1.6 架构与设计:保持定义简单 1.7 引入Sysops Squad的传奇故事 第一部分 分而治之 第2章 识别软件架构中的耦合 2.1 架构量子 2.2 Sysops Squad的传奇故事:理解量子 第3章 架构模块化 3.1 模块化的驱动因素 3.2 Sysops Squad的传奇故事:创建业务案例 第4章 架构分解 4.1 代码库能分解吗 4.2 基于组件的分解 4.3 战术分叉 4.4 Sysops Squad的传奇故事:走上分解之路 第5章 基于组件的分解模式 5.1 识别和调整组件模式 5.2 收集公共领域组件模式 5.3 扁平化组件模式 5.4 明确组件依赖项模式 5.5 构建组件领域模式 5.6 构建领域服务模式 5.7 总结 第6章 分离业务型数据 6.1 数据分解的驱动因素 6.2 分解单体数据 6.3 数据库类型的选择 6.4 Sysops Squad的传奇故事:多维数据库 第7章 服务粒度 7.1 粒度分解因素 7.2 粒度集成因素 7.3 找到正确的平衡 7.4 Sysops Squad的传奇故事:工单分配粒度 7.5 Sysops Squad的传奇故事:客户注册粒度 第二部分 合而为一 第8章 复用模式 8.1 代码复制 8.2 共享库 8.3 共享服务 8.4 边车和服务网格 8.5 Sysops Squad的传奇故事:公共基础设施逻辑 8.6 代码复用:何时带来价值 8.7 Sysops Squad的传奇故事:共享领域功能 第9章 数据所有权和分布式事务 9.1 分配数据所有权 9.2 单一所有权场景 9.3 公共所有权场景 9.4 共同所有权场景 9.5 数据所有权总结 9.6 分布式事务 9.7 最终一致性模式 9.8 Sysops Squad的传奇故事:工单处理的数据所有权 第10章 分布式数据访问 10.1 服务间通信模式 10.2 列schema复制模式 10.3 复制缓存模式 10.4 数据领域模式 10.5 Sysops Squad的传奇故事:工单分配的数据访问 第11章 管理分布式工作流 11.1 集中编排式通信 11.2 分散协作式通信 11.3 权衡集中编排与分散协作 11.4 Sysops Squad的传奇故事:工作流管理 第12章 事务Saga 12.1 事务Saga的8种模式 12.2 状态管理与最终一致性 12.3 管理Saga的手段 12.4 Sysops Squad的传奇故事:原子性事务和补偿更新 第13章 契约 13.1 严格契约与宽松契约 13.2 微服务中的契约 13.3 邮戳耦合 13.4 Sysops Squad的传奇故事:管理工单契约 第14章 管理分析型数据 14.1 以前的方法 14.2 数据网格 14.3 Sysops Squad 的传奇故事:数据网格 第15章 打造你自己的权衡分析 15.1 找出彼此纠缠的部分 15.2 权衡利弊的技巧 15.3 Sysops Squad的传奇故事 尾声 导语 在软件架构中没有简单的决策。相反,这里困难重重,充满各种问题,并且没有最佳实践。通过本书,你将学会如何用批判性思维来考虑分布式架构中的利弊。 4位作者探讨了选择合适的分布式系统架构的策略,通过贯穿全书的Sysops Squad(一个虚构的技术小组)的传奇故事研究了架构的各种可能性,包括如何确定服务粒度、管理工作流和编排、管理和解耦契约、管理分布式事务,以及如何优化运维特征,例如可伸缩性、弹性和性能。 通过关注常见问题,本书提供了一些技巧来帮助你发现架构问题并进行权衡分析。 |