从单体架构到微服务:重构方法分类解析
1. 引言
如今,越来越多的组织倾向于将现有的企业级应用迁移到云端。这样做的原因是多方面的,包括高可用性和冗余性、自动扩展、更便捷的基础设施管理以及符合最新的安全标准,这些都确保了开发和运营流程更加敏捷和一体化,也就是所谓的 DevOps。在这种新范式的推动下,业务应用的设计、构建、部署和维护方式发生了根本性的变化。
为了让现有的单体应用能够适应云端环境,它们需要以灵活、松耦合的专业服务组合形式运行,这就是近年来兴起的微服务架构风格。然而,随着时间的推移,单体应用可能会变得庞大、复杂,甚至在后期陷入僵化,积累的技术债务会导致结构模糊,使得产品难以维护。而且,单体应用在模块级扩展方面往往能力不足,通常只能通过复制整个应用实例来应对工作负载的变化,这在大多数情况下是一种低效的资源利用方式。
微服务架构作为一种新的架构风格,有望解决这些问题。它最初是软件工程行业实践中的一种趋势,由 Lewis 和 Fowler 详细描述。在微服务架构中,需要将上下文相关的模块识别并封装成服务,实现内部高内聚和外部松耦合。为了充分发挥这种设计的优势,功能需要以适当的粒度进行拆分。但无论是从头开始构建基于微服务架构的新应用,还是将成熟的单体应用重构为微服务,都可能是一项耗时费力的工作。
本研究旨在通过比较和分类学术文献中提出的重构方法,填补科学研究的空白。研究结果可以帮助架构师和开发人员了解当前可用的重构方法,从而促进他们的具体转型过程。研究人员也可以通过快速了解该领域的现状,从这些发现中受益。研究的关键目标可以表述为一个研究问题:
研究问题 :在将单体应用架构分解为微服务的背景下,现有的架