知识卡片
DDD、中台、微服务的铁三角协作关系
内容
DDD、中台、微服务三者出自完全不同的背景——DDD和微服务源于西方软件工程界,中台诞生于中国的阿里巴巴,三者提出的时间也相隔多年,但在实践中却形成了紧密的铁三角关系:中台的本质是抽象出来的业务模型,微服务是这个业务模型的系统实现,而DDD作为方法论恰好可以同时指导这两端。这个协作关系能成立,关键在于DDD自身有战略设计和战术设计两把利器,分别对应中台建设和微服务建设两个不同的落地目标:中台建设的过程本质是业务领域不断细分、同类通用能力被聚合重构的过程,这正是DDD战略设计最擅长的领域建模工作,战略设计划出的限界上下文和构建出的领域模型,直接就是中台的业务模型;而中台完成领域建模之后,这个领域模型可以直接作为微服务设计的输入,限界上下文成为微服务拆分的边界和依据,这正是DDD战术设计与微服务设计无缝衔接的地方。可以说业务中台和微服务正是DDD理论落地的最佳实战场景——没有DDD,中台和微服务各自都缺少一套系统方法论来指导边界划分;没有中台和微服务,DDD划出的边界也缺少实际的业务模型和系统载体去承接。
结构图:
flowchart LR
DDD["DDD(方法论)"]
Strategy["DDD战略设计<br/>业务视角、领域建模"]
Tactic["DDD战术设计<br/>技术视角、代码落地"]
Mid["中台<br/>(抽象出的业务模型)"]
Micro["微服务<br/>(业务模型的系统实现)"]
DDD --> Strategy
DDD --> Tactic
Strategy -- "限界上下文+领域模型<br/>=中台业务模型" --> Mid
Mid -- "领域模型作为<br/>微服务设计输入" --> Tactic
Tactic -- "聚合/实体/值对象等<br/>映射为代码" --> Micro
参考来源
- 位置:《中台架构与实现:基于DDD和微服务》第4章《DDD、中台和微服务的关系》(源文件:_epub-src/OEBPS/Text/chapter2-4.xhtml)
- 结论依据:原文说明"中台是抽象出来的业务模型,微服务是业务模型的系统实现,DDD作为方法论可以同时指导中台业务建模和微服务建设……这是因为DDD有两把利器,那就是它的战略设计和战术设计方法……DDD战略设计最擅长的就是领域建模。在中台完成领域建模后,DDD战略设计构建的领域模型就可以作为微服务设计的输入……DDD的战术设计又恰好可以与微服务设计完美无缝结合",直接支撑本卡片结论。
- 原始内容:中台是抽象出来的业务模型,微服务是业务模型的系统实现,DDD作为方法论可以同时指导中台业务建模和微服务建设,三者相辅相成,完美结合……可以说,业务中台和微服务正是DDD实战的最佳场景。