Microservices-based Software Systems Reengineering: State-of-the-Art and Future Directions
Thakshila Imiya Mohottige (1), Artem Polyvyanyy (1), Rajkumar Buyya, (1), Colin Fidge (2), Alistair Barros (2) ((1) University of Melbourne, (2), Queensland University of Technology)

TL;DR
This paper surveys current research on reengineering software systems into microservices, highlighting static, dynamic, and hybrid approaches, and discusses future research directions in this evolving field.
Contribution
It provides a comprehensive overview of existing methods for identifying microservices within systems and discusses open challenges and future research opportunities.
Findings
Code analysis techniques dominate service identification methods.
Dynamic and hybrid approaches are less developed and remain open research areas.
The survey highlights the importance of reengineering for scalable, maintainable cloud-based systems.
Abstract
Designing software compatible with cloud-based Microservice Architectures (MSAs) is vital due to the performance, scalability, and availability limitations. As the complexity of a system increases, it is subject to deprecation, difficulties in making updates, and risks in introducing defects when making changes. Microservices are small, loosely coupled, highly cohesive units that interact to provide system functionalities. We provide a comprehensive survey of current research into ways of identifying services in systems that can be redeployed as microservices. Static, dynamic, and hybrid approaches have been explored. While code analysis techniques dominate the area, dynamic and hybrid approaches remain open research topics.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Cloud Computing and Resource Management · Advanced Software Engineering Methodologies
