《DDD实战》读书笔记五(中台介绍及DDD、中台、微服务三者的关系)

  • 中台
  • 中台概念
  • 阿里的定义
  • 定义理解
  • 中台要做什么
  • 业务中台
  • 数据中台
  • 前中后台的协同
  • 前台
  • 中台
  • 业务中台
  • 数据中台
  • DDD、中台和微服务的关系
  • DDD本质
  • 中台本质
  • DDD、中台和微服务的协作模式
  • 协作模式
  • 中台建模


中台

中台概念

阿里的定义

  • 中台是一个基础的理念和框架,我们要把所有的基础服务用中台的思路建设,进行联通,共同支持上端的业务。业务中台更多的是支持在线业务,数据中台提供了基础数据处理能力和很多的数据产品给所有业务方用。
  • 业务中台、数据中台、算法中台等一起提供对上层业务的支撑。

定义理解

  • 中台是一种企业级的能力,提供企业级的整体解决方案,解决企业、集团甚至生态圈的能力共享、联通和融合的问题,支持业务和商业模式创新,通过平台联通和数据融合为用户提供一致的体验更敏捷支撑前台一线业务。

中台要做什么

业务中台

  • 传统企业不仅要将通用能力中台化,实现通用能力沉淀、共享、复用,这里的通用能力就是DDD的通用域;
  • 传统企业还要将核心能力中台化,满足不同渠道的核心业务能力共享和复用的需求,避免“后端双核心,前端两张皮”的问题,这里的核心能力对应DDD的核心域。

数据中台

  • 还要解决微服务拆分后的数据孤岛、数据融合和业务创新等问题。

前中后台的协同

适配中台和微服务架构 中台与微服务_领域模型

  • 中台设计和规划时,需要整体考虑前中后台的协同,实现不同渠道应用的页面、流程和服务的共享,还有核心业务链路联通及前台流程和数据融合、共享,支持业务和商业模式的创新。

前台

  • 前端设计时可以借鉴微前端的设计思想,在企业内不仅实现前端解耦和复用,还可以根据核心链路和业务流程,通过对微前端页面的动态整合和流程编排实现前端业务融合。

中台

业务中台
  • 业务中台的建设可采用领域驱动设计,通过领域建模,将可复用的公共能力从各个单体剥离,沉淀并组合,采用微服务架构建设成可共享的通用能力中台。
  • 建设中台过程中会产生越来越多独立部署的微服务。这样虽然提升了应用弹性和高可用能力,但是由于微服务物理隔离,原来内部调用的会变成跨微服务,加上前后端分离,微服务拆分会导致数据进一步分离,增加了企业级应用集成难度。
数据中台
  • 数据中台的主要目标就是打通数据孤岛,实现业务融合和创新。数据中台主要完成数据融合和加工,萃取数据业务价值,支持业务创新对外提供数据共享服务。
  • 完成企业全域数据采集和存储,实现不同业务类别中台数据的汇总和集中管理。
  • 按照标准数据规范和模型,将数据按照不同主题或场景进行加工和处理,形成面向不同主题和场景的数据应用。
  • 建立业务需求驱动的数据体系,基于各维度数据,深度萃取数据价值,支持业务和商业模式的创新。

DDD、中台和微服务的关系

  • 中台是抽象出来的业务模型,微服务是业务模型的实现,DDD是方法论同时指导中台业务建模和微服务建设,三者之间相辅相成。
  • 中台在企业架构上偏向业务模型,形成中台的过程就是业务领域不断细分的过程。这个过程中会将同类通用业务能力进行聚合和业务重构,再根据上下文和业务内聚原则建立领域模型。
  • 中台建模完成后,通过微服务进行建设。DDD设计与微服务完美结合,可以说中台和微服务是DDD实战的最佳场景。

DDD本质

  • 研究和解决业务问题时,DDD会按照一定的规则将业务领域进行细分,领域细分到一定程度后,DDD会将问题范围限定在特定边界,并在边界内建立领域模型,进而用代码实现该领域模型,解决相应的业务问题。

中台本质

  • 中台的本质就是提炼各个业务板块共同需求,进行业务和系统抽象,形成通用的可复用业务模型,打造成组件化产品,供前台使用。

DDD、中台和微服务的协作模式

  • 传统企业可以将需要共享的公用能力进行领域建模,建设可共享的通用中台。除此之外,还可以将核心能力进行领域建模,建设面向不同渠道的可复用的核心中台。
  • 如果将企业内整个业务域作为一个问题域,企业内所有业务就是一个领域。在进行领域细分时,从DDD视角,子域分为核心域、通用域。从中台视角业务域细分后的业务中台可分为核心中台和通用中台。

协作模式

  • 根据DDD首先建立通用语言规则,将DDD的方法引入中台设计时,首先建立中台和DDD的通用语言。这里的子域跟中台一致,就可以将子域统一为中台。
  • 中台进一步细分,最终完成业务领域建模。中台业务领域功能不同,限界上下文的数量和大小就会不一样,领域模型也不一样。
  • 完成业务建模后,采用DDD设计出聚合、实体、领域事件、领域服务及应用服务等领域对象,再利用分层架构完成微服务设计。

中台建模

  • 按照业务流程(通常适用于核心域)或功能属性、集合(通常用于通用域),将业务域分为多个中台,再根据功能属性或重要性归类到核心中台或通用中台。核心中台考虑核心竞争力,通用中台考虑共享和复用能力。
  • 选取中台,根据用例、业务场景找出实体、聚合和限界上下文,依次进行领域分解,建立领域模型。
  • 以主领域模型为基础,扫描其他中台领域模型,检查并确定是否存在重复或需要重组的领域对象、功能,提炼并重构主领域模型,完成最终的领域模型设计。
  • 选择其他主领域模型重复第三部,直到完成所有主领域模型完成比对和重构。
  • 基于领域模型完成微服务设计,完成系统落地。