分布式系统架构:架构策略与难题求解pdf下载pdf下载

分布式系统架构:架构策略与难题求解百度网盘pdf下载

作者:
简介:本篇主要提供分布式系统架构:架构策略与难题求解pdf下载
出版社:机械工业出版社京东自营官方旗舰店
出版时间:2023-05
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

编辑推荐

适读人群 :架构师、CTO、运维人员、软件工程师

《软件架构:架构模式、特征及实践指南》 [Fundamentals of Software Architecture]作者Neal Ford新作。


在软件架构中没有简单的决策。相反,这里困难重重,充满各种问题,并且没有最佳实践。通过本书,你将学会如何用批判性思维来考虑分布式架构中的利弊。
4位作者探讨了选择合适的分布式系统架构的策略,通过贯穿全书的Sysops Squad(一个虚构的技术小组)的传奇故事研究了架构的各种可能性,包括如何确定服务粒度、管理工作流和编排、管理和解耦契约、管理分布式事务,以及如何优化运维特征,例如可伸缩性、弹性和性能。
通过关注常见问题,本书提供了一些技巧来帮助你发现架构问题并进行权衡分析。
通过阅读本书,你将学会:
*分析利弊并有效记录你的决策。
*对服务粒度做出更好的决策。
*理解分解单体应用的复杂性。
* 在高度分布式架构中处理数据。
*在分解应用程序时管理工作流和事务的模式。



内容简介

本书探讨了选择合适的分布式系统架构的策略。作者通过一个虚构的技术小组(Sysops Squad)的故事,研究了架构的各种可能性,包括如何确定服务粒度、管理工作流和编排、管理和解耦契约、管理分布式事务,以及如何优化运维性特征,例如可伸缩性、弹性和性能。

本书分为两大部分:

第1部分主要处理架构结构,即事物如何静态耦合在一起;

第2部分讨论各种技术来克服与分布式架构相关的困难,包括管理服务通信、契约、分布式工作流、分布式事务、数据所有权、数据访问和分析型数据。

作者简介

Neal Ford是全球性技术咨询公司Thoughtworks的技术总监、软件架构师及meme wrangler。
Mark Richards是一位经验丰富的软件架构师,在设计和实现微服务架构、面向服务的架构和分布式架构方面有丰富的经验。
Pramod Sadalage是Thoughtworks的数据及DevOps总监,他擅长应用程序开发、敏捷数据库开发、演进式数据库设计、算法设计和数据库管理。
Zhamak Dehghani是Thoughtworks的技术总监,专注于分布式架构和新兴技术领域。她也是Data Mesh的创始人。

精彩书评

“本书为构建微服务和分析整个技术栈中架构决策的细微差别提供了理论指导。在本书中,你将了解构建分布式系统时可以做出的架构决策,并了解每个决策的利弊。对于要构建现代分布式系统的架构师来说,这本书是必读的。”

— Aleksandar Serafimoski,Thoughtworks首席咨询师


“对于热衷于架构的技术专家来说,本书是必读的。本书对模式的解读非常棒。”

— Vanya Seth,Thoughtworks India技术主管


“无论你是一位有抱负的架构师,还是一位经验丰富的团队领导,都无须手忙脚乱,本书将详细指导你在创建企业级应用程序和微服务的过程中取得成功。”

— Venkat Subramaniam博士,获奖作者及 Agile Developer公司的创始人


“本书为读者提供了关于拆分高度耦合的系统并重新构建的宝贵见解、实践和真实示例。通过获得有效的权衡分析技能,你将能做出更好的架构决策。”

—Joost van Wenen,Infuze Consulting的管理合伙人兼联合创始人


“我喜欢读这本关于分布式架构的综合性著作!它将对基本概念的扎实讨论与提供大量的实用建议完美结合。”

—David Kloet,软件架构师


“拆分一个大泥球并不是容易的事。从代码到数据,本书将帮助你分析哪些服务应该提取出来,哪些服务应该留在一起。”

—Ruben Diaz-Martinez,Codesai软件开发人员


“本书将为你提供理论背景和实践框架,以帮助你解决现代软件架构中面临的难题。”

—James Lewis,Thoughtworks技术总监


目录

前言1


第1章 没有最佳实践会怎么样5

1.1 何为“难点”6

1.2 永不过时的软件架构建议6

1.3 数据在架构中的重要性7

1.4 架构决策记录8

1.5 架构适应度函数9

1.6 架构与设计:保持定义简单15

1.7 引入Sysops Squad的传奇故事17


第一部分 分而治之


第2章 识别软件架构中的耦合25

2.1 架构量子27

2.2 Sysops Squad的传奇故事:理解量子38


第3章 架构模块化41

3.1 模块化的驱动因素44

3.2 Sysops Squad的传奇故事:创建业务案例51


第4章 架构分解55

4.1 代码库能分解吗56

4.2 基于组件的分解61

4.3 战术分叉62

4.4 Sysops Squad的传奇故事:走上分解之路66


第5章 基于组件的分解模式68

5.1 识别和调整组件模式71

5.2 收集公共领域组件模式78

5.3 扁平化组件模式84

5.4 明确组件依赖项模式92

5.5 构建组件领域模式98

5.6 构建领域服务模式103

5.7 总结106


第6章 分离业务型数据107

6.1 数据分解的驱动因素108

6.2 分解单体数据123

6.3 数据库类型的选择131

6.4 Sysops Squad的传奇故事:多维数据库146


第7章 服务粒度152

7.1 粒度分解因素154

7.2 粒度集成因素162

7.3 找到正确的平衡169

7.4 Sysops Squad的传奇故事:工单分配粒度171

7.5 Sysops Squad的传奇故事:客户注册粒度173


第二部分 合而为一


第8章 复用模式179

8.1 代码复制180

8.2 共享库182

8.3 共享服务186

8.4 边车和服务网格190

8.5 Sysops Squad的传奇故事:公共基础设施逻辑194

8.6 代码复用:何时带来价值196

8.7 Sysops Squad的传奇故事:共享领域功能198


第9章 数据所有权和分布式事务202

9.1 分配数据所有权203

9.2 单一所有权场景204

9.3 公共所有权场景204

9.4 共同所有权场景206

9.5 数据所有权总结212

9.6 分布式事务213

9.7 最终一致性模式215

9.8 Sysops Squad的传奇故事:工单处理的数据所有权224


第10章 分布式数据访问227

10.1 服务间通信模式228

10.2 列schema复制模式230

10.3 复制缓存模式231

10.4 数据领域模式234

10.5 Sysops Squad的传奇故事:工单分配的数据访问236


第11章 管理分布式工作流239

11.1 集中编排式通信241

11.2 分散协作式通信244

11.3 权衡集中编排与分散协作251

11.4 Sysops Squad的传奇故事:工作流管理252


第12章 事务Saga257

12.1 事务Saga的8种模式258

12.2 状态管理与最终一致性279

12.3 管理Saga的手段282

12.4 Sysops Squad的传奇故事:原子性事务和补偿更新284


第13章 契约290

13.1 严格契约与宽松契约291

13.2 微服务中的契约295

13.3 邮戳耦合299

13.4 Sysops Squad的传奇故事:管理工单契约301


第14章 管理分析型数据303

14.1 以前的方法303

14.2 数据网格309

14.3 Sysops Squad 的传奇故事:数据网格314


第15章 打造你自己的权衡分析317

15.1 找出彼此纠缠的部分318

15.2 权衡利弊的技巧321

15.3 Sysops Squad的传奇故事:尾声331


前言/序言

架构师首先是一个政治角色,其次才是技术角色。这是我作为架构师恪守的格言。相比于技术的简单明了和对错分明,政治似乎充满了难以言喻的暧昧与妥协。然而,从另一方面看,暧昧代表高度的不确定性,妥协意味着寻找共赢。这正是最能发挥架构师价值的地方:在不确定的环境中,通过技术寻找共赢的解决方案。

本书的作者正是其中翘楚。Neal、Pramod、Zhamak与我同为技术雷达撰写者,共事多年,相知甚深。我与Mark Richards虽然不认识,但听Neal谈及其人其言,深感也是我辈中人。他们通力协作,在本书中讨论了架构师最大的难点:如何做“权衡”。最理想的架构不难,最先进的架构更是搜索可得,而最恰当的解决方案只能权衡再三,大胆假设、小心求证而来。其中心酸奥妙,本不足为外人道。四位作者娓娓道来,曲尽其妙,此书实在是难得的佳作。

—徐昊,Thoughtworks中国区CTO


推行领域驱动设计(DDD)多年,数据架构治理一直是一块顽石。面对大部分数据集中架构的应用系统,数据治理是否应该领域化、如何领域化已困扰我多年。本书通过一个完整案例,展现了系统走向分布式架构过程中,数据如何有效进行领域治理的过程,启发良多。架构就是权衡取舍,深以为是!

—肖然,Thoughtworks创新技术总经理,DDDChina联合创始人