当中台遇上DDD,如何设计微服务?
时间:2022-03-03 22:24:01 | 来源:行业动态
时间:2022-03-03 22:24:01 来源:行业动态
当前,中台、微服务是业界关注的热点话题。如果将两者放到DDD的背景下,如何建立DDD、中台和微服务的统一语言?如何将三者融合完成协同设计?《中台架构与实现:基于DDD和微服务》作者、极客时间《DDD实战课》专栏作者欧创新在主题分享中回答了这些问题。
欧创新表示,从企业架构角度来讲,业务中台属于业务架构的范畴,业务中台重构的过程本质是基于复用目的的企业级业务架构重构。在业务量不大的时候,我们用传统的集中式架构就可以解决复杂问题。而当面对海量互联网业务比如双十一,企业原来的架构就不足以解决业务和应用的扩展性问题,因此我们需要将原来大的问题域拆小,将单体应用拆分为微服务,进而上云。所以,DDD和微服务都是解决复杂问题的设计思想。
在DDD概念里,如果只从业务架构角度分析的话,中台本质上是从领域到更细的子域划分过程中的一个桥梁,只从业务领域角度分析,它可能对应DDD领域中的某一个核心子域或通用子域。
对于DDD与中台和微服务的关系,欧创新认为,中台本质是领域中的某一个子域,需要抽象并标准化,按照单一职责原则建立可复用的领域模型。微服务是中台最佳技术实现。DDD是一种可以同时指导中台业务建模和微服务设计的方法论,遵循高内聚低耦合的原则,完成从业务端领域建模到应用端微服务实现的无缝落地。
我们看到DDD和中台设计两种知识体系的融合需要建立两者通用语言,团队通用语言也是DDD不断强调的内容。一般对于小的项目我们可以直接从问题域开始事件风暴,完成领域建模。而对于企业级中台而言,业务领域非常大,我们需要做好顶层设计,划分子域,确定中台的大致边界,然后基于这个边界开展事件风暴,划分限界上下文,完成领域建模,它是一个自上而下的设计过程。
DDD博大精深,但DDD也不是万能的银弹。将中台和DDD视作一种思维方式和设计思想,结合企业实际情况灵活运用才是王道。 欧创新说。