当中台遇上DDD,我们该如何设计微服务?

众所周知,微服务架构能让系统的开发与运维管理变得简单高效,还能提高系统的可用性。随着微服务的不断流行,我们开始在自己的业务中落地微服务。

但是当实际执行时,我们才发现就算采用了微服务架构也不能解决问题,反而带来很多开发与运维上的负担。

于是我们试着去找解决方案,最后发现其实是自己划分微服务的方法错了,我们应该用 DDD(领域驱动设计) 的思想去指导微服务的实践。

什么是 DDD 呢?DDD 与微服务之间有着什么样的联系?为什么最近的中台文章也开始大谈 DDD?

简单来说,DDD 的本质是一种软件设计方法,而微服务架构是具体的实现方式。微服务架构虽好,但是他并没有给出如何对复杂系统进行分解的具体方法论,而 DDD 正好就是解决方案。

DDD 强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。

中台本质是领域模型,微服务是领域模型的系统落地,DDD 是一种设计思想,它可以同时指导中台领域建模型和微服务设计,这就是 DDD、中台和微服务的铁三角关系。

推荐阅读