一句话:独立比较八种微服务分解工具,在四个基准应用上评估其优劣并提出未来研究方向。
将单体应用迁移到微服务架构是一项复杂任务,已有多种自动化分解技术,但各自在不同案例和评价标准上评估,难以横向比较。本文独立比较了八种实现不同分解原则的微服务分解工具,在四个精心挑选的基准应用上从定量和定性两个角度进行评估,并访谈了两个基准应用的开发者。分析揭示了现有方法的优缺点,并为未来研究提出建议,如针对不同类型应用元素进行差异化处理、根据具体应用定制分解策略与粒度等。
The microservice-based architecture – a SOA-inspired principle of dividing systems into components that communicate with each other using language-agnostic APIs – has gained increased popularity in industry. Yet, migrating a monolithic application into microservices is a challenging task. A number of automated microservice decomposition techniques have been proposed in industry and academia to help developers with the migration complexity. Each of the techniques is usually evaluated on its own set of case study applications and evaluation criteria, making it difficult to compare the techniques to each other and assess the real progress in this field. To fill this gap, this paper performs an independent study comparing eight microservice decomposition tools that implement a wide range of different decomposition principles with each other on a set of four carefully selected benchmark applications. We evaluate the tools both quantitatively and qualitatively, and further interview developers behind two of the selected benchmark applications. Our analysis highlights strengths and weaknesses of existing approaches, and provides suggestions for future research, e.g., to provide differential treatment of application elements of different types, to customize the decomposition strategy and granularity per specific application, and more.