图片来源:pexels.com
最近我看到团队里,又有人为“微服务到底应该拆多小”这个问题争得面红耳赤,而且各执一词,谁也说服不了谁,都觉得自己挺有道理。
其实,自从阿里完成了中台战略转型,很多大公司都开启了中台数字化战略转型,中型公司也跃跃欲试。随之而来的,就是这两年微服务越来越热,参与的人越来越多。
事实上,微服务解决了集中式架构的单体应用等不少问题,比如扩展性、弹性伸缩能力、小规模团队的敏捷开发等等,但看到这些好处的同时,也伴随着一些隐患:不少项目因为前期微服务拆分过度,导致项目复杂度过高,无法上线和运维。
此外,其落地实践过程中也争论不断,比如:
综合来看,微服务拆分困境产生的根本原因,就是不知道业务或微服务的边界在什么地方。说到这儿,估计不少人要说“用 DDD 来做微服务设计啊”。诚然,用 DDD 设计思想实现的微服务边界确实清晰很多,业务领域划分也十分合理,但 DDD 的知识点很多,而且体系庞大,相对抽象,大多数人都缺少实践经验和案例指导。就拿我自己来说吧,刚开始接触 DDD 时,我就发现其术语非常多且陌生,更别提用它来设计领域模型了。估计不少人跟我一样,哪怕知道 DDD 的好处,但也感到无从下手。这里,分享给你一张 DDD 核心知识图谱。这张图谱来自欧创新,他是人保高级架构师,圈里人应该都很熟悉。作为一个奋斗在架构一线十多年的技术人,他从 2015 年就开始接触微服务,有很多用 DDD 研究和落地微服务的经验,热衷于采用 DDD 的设计方法实现中台领域建模,专注基于 DDD 的微服务设计和开发。刚接触 DDD 的时候,我就看过他在 InfoQ 上发表的文章,把微服务设计方法、过程、模板、代码目录、设计原则等内容写得十分详细,还以一个项目为例讲了基于 DDD 的微服务设计过程,给了我不少启发。后来,看到他开设了专栏《DDD 实战课》,我第一时间就订阅了,越读越有料,既有详细的理论,又有可操作可落地的实践,跟着学下来,感觉收获非常大。这里,推荐给你。现在搞活动,秒杀+口令加起来到手 ¥69 ,平均下来一章才2块钱,很划算。这差不多是今年的最低价了,除非你是新用户,能 ¥59.9 就到手。在专栏中,他详细讲解了DDD 十大核心概念,同时深入 DDD 分层架构,带你弄懂微服务架构各层之间的关系,掌握事件风暴和领域建模,并且用一个典型案例,带你完整走一遍 DDD 战略设计和战术设计的全流程。这个专栏,我是跟着更新学完的,讲真刷新了我对 DDD 的理解:从业务角度来设计拆分系统,纵向解耦业务形成不同的微服务,横向解耦业务形成微服务内部不同的层。有时间,我一定是要二刷的。发文前看了下,超过 13,000 人已经订阅了,口碑也很不错,截了些评论供你参考:
在专栏最后,老欧说了这么一段话“所谓高手,就是跨过山河和大海!每一步都是积累,每一步都是经验,每一步都算数!”,我对这句话还挺有感触的,工作和学习本就没有一蹴而就的,总是要靠一步一个脚印慢慢积累。也希望你能认真读完专栏里的每一篇文章,具体的可以看看课程目录: