绞杀者分解
问题陈述
微服务架构将应用程序构建为一组松耦合的微服务,每个服务都应以敏捷的方式独立开发,以实现持续交付/部署。当使用微服务架构构建大型复杂应用程序时,主要问题是如何设计松耦合的微服务,或者如何将大型应用程序分解成小型松耦合的服务?
解决方案
我们可以使用绞杀者模式来定义微服务。绞杀者应用程序有两种类型的服务:
现有行为 - 这些服务体现了以前驻留在单体中的行为。
新功能 - 这些服务实现了新的行为。
因此,随着开发时间的推移,微服务会增加,而单体则会随着功能从单体迁移到绞杀者应用程序而缩小。
示例
考虑一个在线书店的例子。最初,我们只开发了图书目录管理服务,其他服务由遗留的单体应用程序支持。在开发过程中,越来越多的服务被开发出来,功能也从单体中迁移出去。
因此,当开发新服务时,单体会被“绞杀”,旧组件会被停用,新的微服务会被部署并支持新功能。绞杀者模式可以通过三个步骤实现:
转换 - 独立开发微服务以实现单体的特定功能。
共存 - 单体和微服务都将工作。用户可以从这两个组件访问功能。
消除 - 一旦新开发的功能准备好投入生产,就从单体中移除该功能。
优势
测试驱动开发 - 由于服务是分块开发的,因此我们可以将 TDD 用于业务逻辑并确保代码质量。
独立团队 - 团队可以并行地处理单体和微服务,从而形成强大的交付机制。
广告