INNOQ联合创始人谈微服务的模式与反模式
极客时间编辑部
讲述:杜力大小:1.11M时长:02:26
最近,在柏林举行的 microXchg 2018 大会上,INNOQ 的联合创始人斯蒂芬·提勒卡瓦(Stefan Tilkov)在演讲中,以他的视角探讨了微服务项目的一系列模式与反模式。他特别强调,有些他认为是好模式的内容,其他人可能认为是反模式,反之亦然。
他首先讨论了微服务是一种设计模块的模式,在这种模式中他们将模块设计为单独的部署和运维单元,这些模块的实现有着非常高的自由度。模块基于网络进行通信,会在它们之间建立一个边界,这样的话会促进封装,在交互和协作的时候,更加难以违背模块的设计初衷。
1. 分布式单体应用
提勒卡瓦提到的第一个反模式是分布式单体应用(Distributed Monolith),或者称之为变坏的微服务。他将其描述为:系统是由规模随意、紧密耦合的模块所组成的,这些模块之间通过网络接口进行通信。这种结构通常是跟风或会议驱动所形成的,对业务领域的关注比较少。
2. 幻想解耦
在提勒卡瓦的经验中,团队引入微服务通常是为了更加灵活并且能够快速适应变化。“幻想解耦(Decoupling Illusion)”是一个反模式,在这种模式下团队会将系统拆分为模块,但是因为缺少领域相关的知识,所以并没有解决基础的问题,这样会背离利益相关者和业务需求。
而团队已经创建的模块会从两个或更多的利益相关者那里获取需求,这些需求还会依赖于其他的模块。这样的话,这些模块就必须要一起演化和部署。
3. 微平台
与“幻想解耦”对应的另外一个反模式叫做“微平台(Micro Platform)”,在这种反模式下,会将所有的内部 / 运维服务标准化到一个框架之中,并强制所有的团队采用。
这种反模式的主要推动力来自标准化的目标,有时候这种目标看起来很有道理,尤其是在项目的初期,但是这也会带来一些需求,也就是协调新的特性以及跨所有的团队进行更新。为了缓解这种状况,提勒卡瓦建议框架的使用是可选的。
除了以上这些,提勒卡瓦还介绍了“实体服务”、“DDDD 与 SCS”、“单体应用”等微服务的模式与反模式。
最后他总结到,没有哪个模式是最适合的模型,它们都依赖于具体的上下文,开发人员所选择的解决方案始终是由领域和所需的业务收益所驱动的。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论