《中台架构与实现:基于DDD和微服务》已正式出版啦

各位朋友,久等了!

《中台架构与实现:基于DDD和微服务》已在机械工业出版社正式出版,京东和当当有售,搜书名即可得。全书22万余字,共计305页。从如何利用DDD完成业务中台领域建模、业务领域边界划分和微服务的拆分和设计,到微前端与微服务相结合的单元化设计思想,再到如何采用单元化、产品化和模块化的设计思想,组建分布式架构多项目并行开发团队,完成中台建设等诸多问题在书中都能够找到答案。

DDD不是新事物,它2003年诞生于集中式架构盛行的年代,在沉寂了十多年后,在分布式微服务架构时代大放异彩。在云原生时代,DDD设计思想适合旧书新读。从单体到微服务,再到Serverless架构,为了降低云上应用的启动时间、占用更少资源和更高的弹性扩缩效率,应用部署单元的代码将会越来越少,更快、更轻、更敏捷的应用运行时技术是云原生计算的持续目标。

DDD不仅可以指导当前火热的业务中台建设,完成业务领域边界和微服务边界的划分和设计,轻松应对业务模式变化和微服务架构演进。同样,在云计算的下一站--Serverless架构下,领域事件驱动模型、领域模型内更细粒度的聚合边界和松耦合的设计思想,也与Serverless架构的设计思想高度适配,可谓两相皆宜,相得益彰。

技术常变,思想则永恒!在充满不确定的时代,凡事预则立,不预则废。心中有边界,脚下有乾坤,分而治之,方能轻松应对业务和技术的快速发展和变化。

为何写作本书

当前基于微服务架构来构建企业级应用已成为业界趋势。微服务架构很好地实现了应用解耦,可以更好地实现应用上云,解决单体应用扩展和弹性伸缩能力不足的问题。鉴于众多互联网企业微服务架构转型后带来的成功和收益,越来越多的传统企业也开始从单体架构向微服务架构转型。但在演进的过程中,微服务到底应该怎样拆分和设计,拆多小才算合理?这已经成为业内重点关注的话题。

继阿里巴巴成功完成中台战略转型后,很多大型企业也紧随其后开启了中台数字化转型。作为中台,需要将通用的业务能力沉淀到中台业务模型,实现企业级业务能力复用。中台建设面临的首要问题是如何按照可复用原则完成企业级业务模型重构。而在中台落地时,又会面临微服务拆分和设计的问题。这两个问题一前一后,对任何企业来说都是不小的挑战。

现在市面上关于微服务开发和技术的学习资料非常多。但在中台数字化转型过程中,关于如何进行业务领域边界划分,如何完成中台领域建模实现能力复用,如何完成单体应用拆分和微服务设计,如何实现前中后台的协同设计等,可参考和借鉴的资料并不是很多,即便有一些,真正理解和实施起来也是困难重重。

中台越来越火,微服务越来越热,参与的人也越来越多,但是市面上一直没有一套体系化的理论与方法来指导中台和微服务建设。那是否有成熟的理论或方法来指导中台领域建模以及微服务拆分和设计呢?答案是肯定的,那就是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战术设计,根据领域模型指导完成微服务和微前端设计和落地。

5)问题导向,一切都是为了解决实际问题。本书引入了大量成熟的中台与前台相关技术和设计方法,体系化地解决了企业中台建设过程中前台、中台和后台的协同设计,以及共享、联通与融合的问题。引入微前端设计思想,解决中台微服务化后,前端仍存在因单体而产生的前端集成和开发复杂的问题。为此,书中首次提出了基于领域模型的、单元化的设计思想,以领域模型为基准,向上构建微前端以实现领域模型的前端页面逻辑,向下构建微服务以实现领域模型的核心领域逻辑。将微服务和微前端集成组合为组件级业务单元,实现微前端页面逻辑和微服务接口能力的企业级复用。设计时,我始终强调应结合企业实际情况,选择最合适的方法和工具解决企业的实际问题,具体情况具体分析,灵活、体系化地运用技术和方法,通过常见问题分析和经验总结,避免陷入常见设计误区。

6)文字简洁,易于阅读。本书部分内容来源于我在极客时间的专栏《DDD实战课》,整体采用与读者交互的行文风格,经过多重打磨,文字有活力,内容不刻板,更加简洁易懂。

本书阅读对象

本书是一本关于中台、微服务和微前端设计与建设的书,采用了DDD设计思想和方法,适合的阅读对象主要分为下面几类:

从事企业数字化转型的企业管理者;

从事企业技术架构和微服务设计的架构师;

从事企业业务架构设计和业务建模的业务人员;

从事微服务设计和开发的高级技术人员;

希望从事中台和微服务架构设计的人员;

对DDD、微服务和中台设计感兴趣的学习者。

如何阅读本书

本书主要包含24章,共分为6部分。

第一部分 认识中台(第1~4章)

本部分包括4章,主要介绍中台相关背景知识,认识并理解中台的真正含义,从业务中台、数据中台、技术中台以及与之匹配的组织架构等多个方面分析传统企业中台转型应该具备的能力,带你初步了解DDD是如何指导中台和微服务设计,并厘清它们的协作关系的。

第二部分 DDD基本原理(第5~11章)

为了让你能够更加深刻地理解DDD,本部分通过一些浅显易懂的案例,帮助你学习并深刻理解DDD的核心基础知识、设计思想、原则和方法等内容,了解它们之间的协作和依赖关系,解决DDD概念理解困难的问题,做好中台实践前的准备工作。本部分包括7章,主要讲解DDD的关键核心知识体系,包括领域、子域、核心子域、通用子域、支撑子域、限界上下文、实体、值对象、聚合、聚合根、领域事件和DDD分层架构等知识。

第三部分 中台领域建模与微服务设计(第12~19章)

本部分包括8章,主要介绍DDD是如何通过战略设计构建中台业务模型,以及如何通过战术设计指导微服务拆分和设计的。在这一部分,我会用多个实际案例,带你用DDD方法完成中台和微服务的全流程设计,深刻理解DDD在中台领域建模与微服务设计中的步骤、方法、设计思想和价值。

1)了解如何用事件风暴方法构建领域模型。

2)了解如何用DDD设计思想构建企业级可复用的中台业务模型。

3)了解如何用DDD设计微服务代码模型,如何将领域模型映射到微服务以建立领域模型与微服务代码模型的映射关系,如何完成微服务架构演进等。

最后用一个案例将DDD所有知识点串联在一起,带你深入了解如何用DDD的设计方法完成领域建模与微服务设计的全流程,并对代码示例进行了详细分析和讲解。

第四部分 前端设计(第20章和第21章)

本部分包括两章,主要介绍微前端的设计思想,通过前端微服务化和单元化的设计思想,解决业务中台建设完成后前端应用解耦和前后端服务集成复杂的难点。书中阐述了如何借鉴微服务的设计思想来解构前端应用,实现前端应用的拆分解耦,并结合实践介绍前端架构的转型策略与技术落地。

另外,本部分还探讨了基于领域模型的单元化设计方法。通过微服务与微前端组合后的单元化设计,既可以降低企业级前台应用集成的复杂度,又可以让企业具有更强的产品快速发布和业务响应能力。这种能力能给我们的团队组建、研发模式、业务能力发布等带来非常大的价值。

第五部分 中台设计案例(第22章)

本部分包括一章,通过保险订单化设计案例,采用自顶向下的领域建模策略,带你走一遍中台设计的完整流程。案例中涵盖业务领域分解、中台领域建模、微服务和微前端设计、单元化设计以及如何实现业务和数据融合等内容,希望能够帮助你加深对DDD、中台、微服务和微前端等知识体系、设计思想和技术体系的全面理解,更好地投入DDD、中台和微服务建设实践中。

第六部分 总结(第23章和第24章)

本部分是全书的总结,包括两章。书中结合我多年的设计经验和思考,带你了解单体应用向微服务架构的演进策略,如何避免陷入DDD设计的常见误区,微服务设计原则以及分布式架构下的关键设计等内容。

你可能感兴趣的:(《中台架构与实现:基于DDD和微服务》已正式出版啦)