书籍详情
《中台架构与实现:基于DDD和微服务》[44M]百度网盘|亲测有效|pdf下载
  • 中台架构与实现:基于DDD和微服务

  • 出版时间:2020-11-01
  • 热度:8544
  • 上架时间:2024-06-30 08:52:20
  • 价格:9.0
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

适读人群 :企业信息技术管理者,业务分析和建模人员,架构和设计人员,微服务开发人员,计划从事信息系统架构设计相关工作的人员。 适合有2年以上的设计或开发经验的中级以上人员

(1)作者是某大型保险公司架构师,有10余年软件架构经验,擅长DDD、中台和分布式微服务架构设计。
(2)本书为基于DDD思想的中台建设和微服务拆分与设计提供指导,给出了体系化的前、中、后台协同设计方法。
(3)注重实战,汇聚大量分布式架构的*新设计方法、思想和理念,同时包含大量的案例和代码。
(4)交互式的行文风格,文字有活力,内容不刻板,简洁易懂。

内容简介

这是一部系统讲解如何基于DDD思想实现中台和微服务协同设计和落地的著作。
它将DDD、中台和微服务三者结合,一方面,它为中台的划分和领域建模提供指导,帮助企业更好地完成中台建设,实现中台的能力复用;一方面,它为微服务的拆分和设计提供指导,帮助团队提升分布式微服务的架构设计能力。给出了一套体系化的基于DDD思想的企业级前、中、后台协同设计方法。
本书注重实战,汇聚了大量分布式架构的*新设计方法、思想和理念,同时包含大量的案例和代码,是理论与实践相结合的*佳经验分享。交互式的行文风格,文字有活力,内容不刻板,简洁易懂。
本书共分为六个部分:
第壹部分 认识中台(第1~4章)
主要从业务中台、数据中台、技术中台以及与之匹配的组织架构等多个方面分析传统企业中台转型应该具备的能力,带你初步了解DDD是如何指导中台和微服务设计,并厘清它们的协作关系。
第二部分 DDD基本原理(第5~11章)
通过浅显易懂的案例讲解DDD的核心基础知识、设计思想、原则和方法等内容,了解它们之间的协作和依赖关系,做好中台实践前的准备工作。
第三部分 中台领域建模和微服务设计(第12~19章)
首先,通过案例手把手带你用DDD方法完成中台和微服务的全流程设计,深刻理解DDD在中台领域建模和微服务设计中的步骤、方法、设计思想和价值;然后,通过一个完整案例带你了解用DDD设计方法完成领域建模与微服务设计的全流程。
第四部分 前端设计(第20~21章)
引入微前端和单元化的设计思想,通过前端微服务化和单元化设计思想,解决业务中台建设完成后前端应用仍然为单体和前后端服务集成复杂的难点。此外,还探讨了基于领域模型的单元化设计方法。
第五部分 中台设计案例(第22章)
采用自顶向下的领域建模策略,通过案例讲解中台设计的完整流程。涵盖业务领域分解、中台领域建模、微服务和微前端设计、单元化设计以及业务和数据如何融合等内容。
第六部分 总结(第23~24章)
结合作者多年的设计经验和思考,阐述单体应用向微服务架构的演进策略、如何避免陷入DDD设计的常见误区、微服务设计原则以及分布式架构下的关键设计等内容。

作者简介

欧创新
某大型保险公司架构师,拥有十多年的软件架构设计经验。热衷于DDD、中台和分布式微服务架构设计。在DDD、中台和分布式微服务架构设计方面有深厚的积累,擅长分布式微服务架构设计。
极客时间《DDD实战课》专栏作者,在InfoQ发表多篇关于DDD、中台、微服务和微前端技术实践的有深度和影响力文章。


邓頔
某大型保险公司高级工程师,全国青年岗位能手。致力于基于DDD的企业级中台微服务架构改造实践,精通前端开发相关技术栈,拥有丰富的企业级微前端实战经验。

目录

序1
序2 为不确定而架构
前言
绪论 1
第一部分 认识中台
第1章 数字化中台初步认识与建设策略 13
1.1 平台是中台吗 13
1.2 中台到底是什么 14
1.3 传统企业中台的建设策略 15
1.4 如何实现前中后台的协同 17
1.4.1 前台 17
1.4.2 中台 18
1.4.3 后台 19
1.5 本章小结 20
第2章 企业中台能力框架 21
2.1 中台能力总体框架 21
2.2 业务中台 22
2.3 数据中台 23
2.4 技术中台 25
2.5 研发运营 28
2.6 云平台 29
2.7 能力聚合 29
2.8 组织架构及中台建设方法 30
2.9 本章小结 31
第3章 微服务设计为什么要选择DDD 32
3.1 软件架构的演进史 32
3.2 微服务拆分和设计的困境 34
3.3 为什么DDD适合微服务 35
3.4 本章小结 37
第4章 DDD、中台和微服务的关系 39
4.1 DDD和中台的本质 40
4.2 DDD、中台和微服务的协作 41
4.3 如何完成中台业务建模 43
4.4 本章小结 46
第二部分 DDD基本原理
第5章 领域和子域:有效分解问题域 49
5.1 领域的基本概念 49
5.2 领域的分解过程 50
5.3 子域的分类和属性 52
5.4 本章小结 53
第6章 限界上下文:定义领域边界的利器 54
6.1 什么是通用语言 54
6.2 什么是限界上下文 57
6.3 进一步理解限界上下文 58
6.4 限界上下文和微服务的关系 59
6.5 限界上下文与子域的关系 60
6.6 本章小结 61
第7章 实体和值对象:领域模型的基础单元 62
7.1 实体 62
7.2 值对象 64
7.3 实体和值对象的关系 68
7.4 本章小结 69
第8章 聚合和聚合根:怎样设计聚合 70
8.1 聚合 70
8.2 聚合根 71
8.3 聚合的设计步骤 73
8.4 聚合的设计原则 74
8.5 聚合的设计模式 75
8.5.1 仓储模式 76
8.5.2 工厂模式 80
8.6 本章小结 81
第9章 领域事件:解耦微服务的关键 83
9.1 领域事件 83
9.1.1 微服务内的领域事件 84
9.1.2 微服务之间的领域事件 85
9.2 领域事件案例 85
9.3 领域事件驱动实现机制 86
9.4 领域事件运行机制 89
9.5 本章小结 90
第10章 DDD分层架构 91
10.1 什么是DDD分层架构 91
10.1.1 用户接口层 92
10.1.2 应用层 93
10.1.3 领域层 94
10.1.4 基础层 94
10.1.5 DDD分层架构的重要原则 95
10.2 DDD分层架构如何推动架构演进 95
10.2.1 微服务架构的演进 95
10.2.2 微服务内服务的演进 96
10.3 三层架构如何演进到DDD分层架构 97
10.4 本章小结 98
第11章 几种微服务架构模型对比分析 99
11.1 洋葱架构 99
11.2 六边形架构 100
11.3 三种微服务架构模型的对比和分析 101
11.4 从三种架构模型看中台和微服务设计 103
11.4.1 中台建设要聚焦领域模型 103
11.4.2 微服务要有合理的架构分层 104
11.4.3 应用逻辑与基础资源的解耦 105
11.5 本章小结 106
第三部分 中台领域建模与微服务设计
第12章 如何用事件风暴构建领域模型 109
12.1 事件风暴概述 110
12.2 基于事件风暴的领域建模 111
12.2.1 产品愿景分析 111
12.2.2 场景分析 112
12.2.3 领域建模 113
12.2.4 微服务拆分与设计 115
12.3 本章小结 116
第13章 如何用DDD重构中台业务模型 117
13.1 传统企业应用建设分析 117
13.2 如何避免重复造轮子 119
13.3 如何构建中台业务模型 119
13.3.1 自顶向下的策略 119
13.3.2 自底向上的策略 120
13.4 业务模型重构过程中的领域对象 126
13.5 本章小结 128
第14章 如何用DDD设计微服务代码模型 129
14.1 DDD分层架构与微服务代码模型 129
14.2 微服务代码模型 130
14.2.1 一级代码目录 130
14.2.2 各层代码目录 131
14.2.3 微服务总目录结构 134
14.3 本章小结 135
第15章 如何保证领域模型与代码模型一致 136
15.1 领域对象的整理 136
15.2 从领域模型到微服务落地 137
15.2.1 领域层的领域对象 138
15.2.2 应用层的领域对象 140
15.2.3 领域对象与代码对象的映射 142
15.3 本章小结 144
第16章 如何实现微服务的架构演进 145
16.1 演进式架构 145
16.2 我们设计的是微服务还是小单体 146
16.3 微服务边界的作用 147
16.4 正确理解微服务的边界 149
16.5 本章小结 149
第17章 服务和数据在微服务各层的协作 150
17.1 服务视图 150
17.1.1 服务的类型 150
17.1.2 服务的调用 151
17.1.3 服务的封装与组合 153
17.1.4 两种分层架构的服务依赖关系 155
17.2 数据视图 158
17.3 本章小结 160
第18章 基于DDD的微服务设计实例 161
18.1 项目基本信息 161
18.2 战略设计 161
18.2.1 产品愿景 162
18.2.2 场景分析 163
18.2.3 领域建模 165
18.2.4 微服务拆分 166
18.3 战术设计 167
18.3.1 分析微服务领域对象 167
18.3.2 设计微服务代码结构 171
18.4 后续的工作 173
18.5 本章小结 173
第19章 基于DDD的微服务代码详解 174
19

前言/序言

为何写作本书
当前基于微服务架构来构建企业级应用已成为业界趋势。微服务架构很好地实现了应用解耦,可以更好地实现应用上云,解决单体应用扩展和弹性伸缩能力不足的问题。鉴于众多互联网企业微服务架构转型后带来的成功和收益,越来越多的传统企业也开始从单体架构向微服务架构转型。但在演进的过程中,微服务到底应该怎样拆分和设计,拆多小才算合理?这已经成为业内重点关注的话题。
继阿里巴巴成功完成中台战略转型后,很多大型企业也紧随其后开启了中台数字化转型。作为中台,需要将通用的业务能力沉淀到中台业务模型,实现企业级业务能力复用。中台建设面临的首要问题是如何按照可复用原则完成企业级业务模型重构。而在中台落地时,又会面临微服务拆分和设计的问题。这两个问题一前一后,对任何企业来说都是不小的挑战。
现在市面上关于微服务开发和技术的学习资料非常多。但在中台数字化转型过程中,关于如何进行业务领域边界划分,如何完成中台领域建模实现能力复用,如何完成单体应用拆分和微服务设计,如何实现前中后台的协同设计等,可参考和借鉴的资料并不是很多,即便有一些,真正理解和实施起来也是困难重重。
中台越来越火,微服务越来越热,参与的人也越来越多,但是市面上一直没有一套体系化的理论与方法来指导中台和微服务建设。那是否有成熟的理论或方法来指导中台领域建模以及微服务拆分和设计呢?答案是肯定的,那就是DDD(Domain Driven Design,领域驱动设计)。
2003年埃里克·埃文斯(Eric Evans)出版了《领域驱动设计》,从此DDD诞生。在沉寂了十多年后,随着微服务架构的流行,DDD强势崛起,成为很多企业微服务的主流设计方法。DDD首先从业务领域入手,划分业务领域边界,采用事件风暴工作坊方法,分析并提取业务场景中的实体、值对象、聚合根、聚合、领域事件等领域对象,根据限界上下文边界构建领域模型,将领域模型作为微服务设计的输入,进而完成微服务详细设计。用DDD方法设计出来的微服务,业务和应用边界非常清晰,符合“高内聚,低耦合”的设计原则,可以轻松适应业务模型变化和微服务架构演进。
微服务与DDD的共生关系主要从两方面来体现。一方面是微服务提倡将应用进行服务化拆分,通过业务领域边界实现应用服务边界的划分。另一方面,DDD恰好提供了一种基于业务限界上下文边界来实现微服务“高内聚,低耦合”的服务构建方法。将两者合理搭配使用,研发组织可以轻松实现面向服务的设计,享受持续交付与架构演进。
DDD与微服务,乃至中台设计的结合,目前仍是一个非常新的领域。很多人可能并不清楚它们的关系,不知道该如何利用DDD来完成中台和微服务的协同设计。
基于上述背景,本书聚焦业务中台设计和建设,系统地阐述了基于DDD的中台和微服务建设的方法体系,主要包括中台业务边界划分和领域模型构建,微服务、微前端设计理念与实践,以及如何进行前中后台的协同设计和单元化设计等内容。
本书主要特点
纵观全书,本书具有以下6个显著特点。
1)深入浅出,浅显易懂。本书打破了常规采用大量理论知识堆砌来讲解DDD知识的方式,用大量场景化的案例类比和分析,带你深入理解DDD基础知识和核心设计思想,解决了DDD知识体系过于庞大而难以理解和微服务落地困难的问题。
2)结构合理,从DDD理论到微服务实践完美结合。本书从理解DDD基础理论知识和核心设计思想出发,结合多个企业级业务场景,完成了DDD全流程的领域建模和微服务设计,对服务设计与技术落地等实现细节进行了大量的示例说明。结合案例设计,完成了微服务代码的开发,并对代码实现进行了详细的代码分析和讲解,帮助你避免开发过程常见问题的发生。可以说,本书从理论中来,到实践中去,能够有效指导中台和微服务的设计和开发。
3)化繁为简,从宏观业务分析到微观技术实现面面俱到。DDD、微服务与中台三者中的任何一项,放在任何一家企业,都是一项非常庞杂且复杂度非常高的工作。本书分别从DDD设计视角和中台建设视角进行对比分析,梳理了DDD、微服务与中台三者之间的协作关系。特别强调从业务领域出发,利用DDD战略设计和战术设计方法同时指导中台领域建模和微服务设计。可以说,DDD是中台和微服务设计的最佳指导方法,而微服务则是中台的最佳技术实现,它们就是这样的铁三角协作关系。我们将三者结合,从企业领域到子域的战略设计、宏观业务领域边界划分到微服务内底层领域对象的逐级细化设计,降低软件产品建设的复杂度,实现从宏观战略到技术实现细节的无缝衔接。
4)案例翔实,建立了企业级的中台建设方法体系。本书涵盖了前台、中台和后台建设及设计的完整方法,建立了一套标准的中台领域建模和微服务设计方法及流程,可以很好地指导企业完成中台设计和微服务落地。通过大量复杂业务场景的详细案例设计和分析,将DDD、中台和微服务三者结合,以近乎手把手的方式详细介绍了中台和微服务的设计方法和步骤。在中台业务建模时,你可以利用DDD战略设计,分解业务领域,从事件风暴入手,根据限界上下文边界构建可复用的中台领域模型。在中台落地时,你可以利用DDD战术设计,根据领域模型