From Monolith to Microservices: A Classification of Refactoring Approaches 阅读笔记
PDF path:/home/ljw/Nutstore Files/Nutstore/Anhui University/Microservice
Abstract
- 微服务架构缺少合适的重构技术, 寻找到合适的服务粒度划分,发挥微服务架构的优势
- 本文介绍了重构的概念,比较了10种重构方法,大多数方法只能应用于特定的应用场景,
Instruction
- 这是一篇综述,instruction主要比较了微服务和单体架构的优缺点
Architectural Refactoring and Decomposition
- 介绍了架构重构和分解的相关概念,分解边界等
Research Method and Search Strategy
- 介绍了查找文献的策略和根据:ACM Digital Library, IEEE Xplore and Google Scholar
Results
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
(img-KzMBh5ZY-1633660146618)
Classification
分析选择的十种方法,确定不同的分类策略,进行分类
- Static Code Analysis aided approaches require the application’s source code and derive a decomposition from it (through possible intermediate stages).
- Meta-Data aided approaches require more abstract input data, like architectural descriptions in form of UML diagrams, use cases, interfaces or historical VCS data.
- Workload-Data aided approaches aim to find suitable service cuts by measuring the application’s operational data (e.g. communication, performance) on module or function level and use this data to determine a fitting decomposition and granularity.
- Dynamic Microservice Composition approaches try to solve the problem more holistically by describing a Microservices runtime environment.
Decsion guide
- 根据流程图可以迅速找到适合特定业务场景的方法
Conclusion
- 调查结果表明缺乏实际适用的方法来提供足够的工具支持和指标来验证结果。
- 目前提出的方法大多只适用于特定的业务场景,所需的输入数据不相同
- 潜在的未来研究可以集中在使用足够的示例或实际应用程序测试不同的方法。首先要确定相关的评估指标
未来的工作
- novel approaches that combine static code analysis with operations data generated during runtime to achieve an optimally tailored partitioning
- quality attributes and related metrics to quantitatively assess the result of a decomposition in advance
- other means to automate and facilitate the transformation of monolithic architectures out of large, heterogeneous code bases.