分布式系统架构架构:策略与难题求解
Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani
王岩, 邢砚敏, 吴兵华, 梁越 译
出版时间:2023年05月
页数:344
“对于每个要构建现代分布式系统的架构师来说,本书是必读的。”
——Aleksandar Seramoski
Thoughtworks首席咨询师

在软件架构中没有简单的决策。相反,这里困难重重,充满各种问题,并且没有最佳实践。通过本书,你将学会如何用批判性思维来考虑分布式架构中的利弊。
4位作者探讨了选择合适的分布式系统架构的策略,通过贯穿全书的Sysops Squad(一个虚构的技术小组)的传奇故事研究了架构的各种可能性,包括如何确定服务粒度、管理工作流和编排、管理和解耦契约、管理分布式事务,以及如何优化运维特征,例如可伸缩性、弹性和性能。
通过关注常见问题,本书提供了一些技巧来帮助你发现架构问题并进行权衡分析。
通过阅读本书,你将学会:
● 分析利弊并有效记录你的决策。
● 对服务粒度做出更好的决策。
● 理解分解单体应用的复杂性。
● 在高度分布式架构中处理数据。
● 在分解应用程序时管理工作流和事务的模式。
  1. 前言
  2. 第1章 没有最佳实践会怎么样
  3. 1.1 何为“难点”
  4. 1.2 永不过时的软件架构建议
  5. 1.3 数据在架构中的重要性
  6. 1.4 架构决策记录
  7. 1.5 架构适应度函数
  8. 1.6 架构与设计:保持定义简单
  9. 1.7 引入Sysops Squad的传奇故事
  10. 第一部分 分而治之
  11. 第2章 识别软件架构中的耦合
  12. 2.1 架构量子
  13. 2.2 Sysops Squad的传奇故事:理解量子
  14. 第3章 架构模块化
  15. 3.1 模块化的驱动因素
  16. 3.2 Sysops Squad的传奇故事:创建业务案例
  17. 第4章 架构分解
  18. 4.1 代码库能分解吗
  19. 4.2 基于组件的分解
  20. 4.3 战术分叉
  21. 4.4 Sysops Squad的传奇故事:走上分解之路
  22. 第5章 基于组件的分解模式
  23. 5.1 识别和调整组件模式
  24. 5.2 收集公共领域组件模式
  25. 5.3 扁平化组件模式
  26. 5.4 明确组件依赖项模式
  27. 5.5 构建组件领域模式
  28. 5.6 构建领域服务模式
  29. 5.7 总结
  30. 第6章 分离业务型数据
  31. 6.1 数据分解的驱动因素
  32. 6.2 分解单体数据
  33. 6.3 数据库类型的选择
  34. 6.4 Sysops Squad的传奇故事:多维数据库
  35. 第7章 服务粒度
  36. 7.1 粒度分解因素
  37. 7.2 粒度集成因素
  38. 7.3 找到正确的平衡
  39. 7.4 Sysops Squad的传奇故事:工单分配粒度
  40. 7.5 Sysops Squad的传奇故事:客户注册粒度
  41. 第二部分 合而为一
  42. 第8章 复用模式
  43. 8.1 代码复制
  44. 8.2 共享库
  45. 8.3 共享服务
  46. 8.4 边车和服务网格
  47. 8.5 Sysops Squad的传奇故事:公共基础设施逻辑
  48. 8.6 代码复用:何时带来价值
  49. 8.7 Sysops Squad的传奇故事:共享领域功能
  50. 第9章 数据所有权和分布式事务
  51. 9.1 分配数据所有权
  52. 9.2 单一所有权场景
  53. 9.3 公共所有权场景
  54. 9.4 共同所有权场景
  55. 9.5 数据所有权总结
  56. 9.6 分布式事务
  57. 9.7 最终一致性模式
  58. 9.8 Sysops Squad的传奇故事:工单处理的数据所有权
  59. 第10章 分布式数据访问
  60. 10.1 服务间通信模式
  61. 10.2 列schema复制模式
  62. 10.3 复制缓存模式
  63. 10.4 数据领域模式
  64. 10.5 Sysops Squad的传奇故事:工单分配的数据访问
  65. 第11章 管理分布式工作流
  66. 11.1 集中编排式通信
  67. 11.2 分散协作式通信
  68. 11.3 权衡集中编排与分散协作
  69. 11.4 Sysops Squad的传奇故事:工作流管理
  70. 第12章 事务Saga
  71. 12.1 事务Saga的8种模式
  72. 12.2 状态管理与最终一致性
  73. 12.3 管理Saga的手段
  74. 12.4 Sysops Squad的传奇故事:原子性事务和补偿更新
  75. 第13章 契约
  76. 13.1 严格契约与宽松契约
  77. 13.2 微服务中的契约
  78. 13.3 邮戳耦合
  79. 13.4 Sysops Squad的传奇故事:管理工单契约
  80. 第14章 管理分析型数据
  81. 14.1 以前的方法
  82. 14.2 数据网格
  83. 14.3 Sysops Squad的传奇故事:数据网格
  84. 第15章 打造你自己的权衡分析
  85. 15.1 找出彼此纠缠的部分
  86. 15.2 权衡利弊的技巧
  87. 15.3 Sysops Squad的传奇故事:尾声
书名:分布式系统架构架构:策略与难题求解
译者:王岩, 邢砚敏, 吴兵华, 梁越 译
国内出版社:机械工业出版社
出版时间:2023年05月
页数:344
书号:978-7-111-72422-3
原版书书名:Software Architecture: The Hard Parts
原版书出版商:O'Reilly Media
Neal Ford
 
作为一名软件架构师与意见领袖,Neal Ford供职于ThoughtWorks(一家专注于端到端软件开发与交付的跨国IT咨询公司)。在加入ThoughtWorks之前,Neal是The DSW Group, Ltd.的技术总监 ── 这是一家在美国还算有名的培训与软件开发公司。Neal毕业于乔治亚州立大学,他拥有计算机科学的学位,专攻语言与编译器;同时他还辅修数学,专攻统计分析。现在他是一名软件设计师和开发者,此外也编撰培训材料、杂志文章和视频演讲,他还是几本图书的作者,包括《Developing with Delphi:Object-Oriented Techniques》(由Prentice-Hall出版)、《Jbuilder 3 Unleashed》(由Sams出版)和《Art of Java Web Development》(由Manning出版)等。他曾担任2006和2007版《No Fluff, Just Stuff文选》(Pragmatic Bookshelf)的编辑和作者。他擅长的编程语言包括Java、C#/.NET、Ruby、Groovy、函数式语言、Scheme、Object Pascal、C++和C等。他的咨询工作主要针对大规模企业应用的设计和开发。Neal曾在美国和其他国家进行现场授课,客户包括军方和很多世界500强的企业。作为演讲者,他同样在全球享有盛名,曾在世界各地举办的各种大型开发者会议上发表超过600场演讲。如果有兴趣了解更多关于Neal的信息,请访问他的网站:http://www.nealford.com。他也希望得到读者的反馈,他的邮件地址是nford@ thoughtworks.com。
Neal Ford a is software architect and Meme Wrangler at ThoughtWorks, a global IT consultancy
with an exclusive focus on end-to-end software development and delivery. Before joining
ThoughtWorks, Neal was the chief technology officer at The DSW Group, Ltd., a nationally
recognized training and development firm. Neal has a degree in computer science, specializing
in languages and compilers, from Georgia State University and a minor in mathematics,
specializing in statistical analysis. He is also the designer and developer of applications,
instructional materials, magazine articles, video presentations, and author of the books
Developing with Delphi: Object-Oriented Techniques (Prentice-Hall), JBuilder 3 Unleashed
(Sams), and Art of Java Web Development (Manning). He was editor of and contributor to the
2006 and 2007 editions of the No Fluff, Just Stuff Anthology (Pragmatic Bookshelf). His
language proficiencies include Java, C#/.NET, Ruby, Groovy, functional languages, Scheme,
Object Pascal, C++, and C. His primary consulting focus is the design and construction of largescale
enterprise applications. Neal has taught on-site classes nationally and internationally to
the military and to many Fortune 500 companies. He is also an internationally acclaimed
speaker, having spoken at over 100 developer conferences worldwide, delivering more than
600 talks. If you have an insatiable curiosity about Neal, visit his web site at http://
www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.
 
 
Mark Richards
 
Mark Richards是一位经验丰富的软件架构师,他参与了微服务架构、事件驱动架构和其他分布式架构的架构、设计和实现。
Mark Richards is an accomplished author and conference speaker working as a handson SOA and enterprise architect in the financial services industry. In addition to numerous published articles, he is the author of Java Transaction Design Strategies (C4Media), contributing author of 97 Things Every Software Architect Should Know (O’Reilly), and contributing author of No Fluff, Just Stuff Anthology Volumes 1 and 2
(Pragmatic Bookshelf). He is a recognized authority on messaging, Service-Oriented Architecture, and transaction management. Mark is a regular speaker on the NFJS
Software Symposium series and speaks at conferences around the world.
 
 
Pramod Sadalage
 
Pramod Sadalage是Thoughtworks的数据及DevOps总监,他擅长应用程序开发、敏捷数据库开发、演进式数据库设计、算法设计和数据库管理。
 
 
Zhamak Dehghani
 
Zhamak Dehghani是Thoughtworks的技术总监。她专注于企业中的分布式系统和数据架构领域,是多个技术咨询委员会的成员,包括Thoughtworks的技术委员会。Zhamak倡导一切事物的去中心化,包括架构、数据等。她是DataMesh的创始人。
 
 
购买选项
定价:139.00元
书号:978-7-111-72422-3
出版社:机械工业出版社