A Comparative Study of Meta-Data-Based Microservice Extraction Tools

A Comparative Study of Meta-Data-Based Microservice Extraction Tools

Kerem Akkaya, Tolga Ovatman
DOI: 10.4018/IJSSMET.298677
Article PDF Download
Open access articles are freely available for download

Abstract

Microservices are state-of-the-art architectural patterns for developing highly resilient and scalable applications to be hosted on the web. One of the tedious and challenging aspects on applying microservice pattern is the process of transforming legacy "monolithic" software to microservices. This process, named microservice extraction, is mostly done manually because of its complicated nature and the need for domain expertise. In this study, meta-data driven tools that aim to perform automatic extraction of microservices are focused. Initially, the studies that perform automatic microservice extraction are reviewed to identify public meta-data based tools. Afterwards, the identified tools are investigated by their relative success in extracting microservices. Reviewed tools suffer over-decomposition during extraction and most of them fail to provide a mature basis when considered to exhibit practical value to be used in real-world cases.
Article Preview
Top

Introduction

Microservices are the state of art architectural style for building highly scalable and reusable software, typically used in web-based systems. Although there exist many different definitions of the concept, a possible brief definition for a microservice can be: “a composable and reusable, loosely coupled functionality, encapsulated in a fine-grained manner, that may depend on other internal microservices when served”.

Different techniques can be applied to ensure this property and provide a better throughput during replica runs. Microservices are gradually replacing “monolithic services” as its predecessor. Although it is hard to provide a brief description of a monolithic service, a possible definition might be: “a coarsely encapsulated end-to-end functionality that can be served independent of other internal services”.

Service oriented computing and web services have been a major architectural pattern in web-based software development in 2010s (Sbaï and Guerfel, 2016; Kim and Lennon, 2017). There have been many studies performed on various aspects of service-oriented computing and web services such as context-awareness of services and security of service composition (Guermah et al, 2021; Rouached, 2021). Recently with the emergence of cloud-based systems, service-oriented computing research has begun to transform as well (Guerfel et al., 2017; Kumar and Bhardwaj, 2020). In this advancing field, microservices are the state-of-the-art architectural patterns that seizes the development strategy of modern cloud-based web applications.

There are some factors behind the software industry's incline towards microservices. Most of these factors stem from the incapabilities of legacy monolithic services and recent developments in software technology that enable fine-grained governance of software services. Some of these factors can be listed as follows:

  • Obstacles and costs in reusing and integration of monolithic services.

  • Virtualization and cloud-based technologies that enable rapid deployment and automatic scaling of service instances.

  • Recent developments in monitoring and tracking deployed software components.

  • Expanding tool support for software development life-cycle automation.

This gradual shift towards microservices brings about its own set of challenges. An example to such challenges is the migration from legacy software to microservices. The major effort, for this challenge, is on decomposing a living monolithic software at hand to identify an equivalent set of microservices whilst keeping the functionality of the legacy software. This decomposition and identification effort is called “microservice extraction (or decomposition)” in the literature. Most of the time, such an extraction requires a great amount of architectural and domain expertise. There exists recent effort and even tool support in software literature that try to automate this task using different software development artifacts.

This study aims to evaluate meta-data based microservice extraction tools over a set of case studies to identify the current capabilities and shortcomings of the tool support in the literature by applying a comparative analysis (Gupta and Garg, 2015). In the study, publicly available, microservice extraction tools present in the literature are used to extract microservices from six different projects where two of these projects are real world banking software. Present capabilities of the tools are evaluated from a user level perspective and the results are compared both in a cross-tool manner and by direct comparison with manual microservice extraction.

This study adds to the software engineering body of knowledge with the following contributions:

Complete Article List

Search this Journal:
Reset
Volume 15: 1 Issue (2024)
Volume 14: 1 Issue (2023)
Volume 13: 6 Issues (2022): 2 Released, 4 Forthcoming
Volume 12: 6 Issues (2021)
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 4 Issues (2016)
Volume 6: 4 Issues (2015)
Volume 5: 4 Issues (2014)
Volume 4: 4 Issues (2013)
Volume 3: 4 Issues (2012)
Volume 2: 4 Issues (2011)
Volume 1: 4 Issues (2010)
View Complete Journal Contents Listing