Cargando…

Defining and measuring microservice granularity—a literature overview

BACKGROUND: Microservices are an architectural approach of growing use, and the optimal granularity of a microservice directly affects the application’s quality attributes and usage of computational resources. Determining microservice granularity is an open research topic. METHODOLOGY: We conducted...

Descripción completa

Detalles Bibliográficos
Autores principales: Vera-Rivera, Fredy H., Gaona, Carlos, Astudillo, Hernán
Formato: Online Artículo Texto
Lenguaje:English
Publicado: PeerJ Inc. 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8444086/
https://www.ncbi.nlm.nih.gov/pubmed/34604522
http://dx.doi.org/10.7717/peerj-cs.695
_version_ 1784568419720364032
author Vera-Rivera, Fredy H.
Gaona, Carlos
Astudillo, Hernán
author_facet Vera-Rivera, Fredy H.
Gaona, Carlos
Astudillo, Hernán
author_sort Vera-Rivera, Fredy H.
collection PubMed
description BACKGROUND: Microservices are an architectural approach of growing use, and the optimal granularity of a microservice directly affects the application’s quality attributes and usage of computational resources. Determining microservice granularity is an open research topic. METHODOLOGY: We conducted a systematic literature review to analyze literature that addresses the definition of microservice granularity. We searched in IEEE Xplore, ACM Digital Library and Scopus. The research questions were: Which approaches have been proposed to define microservice granularity and determine the microservices’ size? Which metrics are used to evaluate microservice granularity? Which quality attributes are addressed when researching microservice granularity? RESULTS: We found 326 papers and selected 29 after applying inclusion and exclusion criteria. The quality attributes most often addressed are runtime properties (e.g., scalability and performance), not development properties (e.g., maintainability). Most proposed metrics were about the product, both static (coupling, cohesion, complexity, source code) and runtime (performance, and usage of computational resources), and a few were about the development team and process. The most used techniques for defining microservices granularity were machine learning (clustering), semantic similarity, genetic programming, and domain engineering. Most papers were concerned with migration from monoliths to microservices; and a few addressed green-field development, but none address improvement of granularity in existing microservice-based systems. CONCLUSIONS: Methodologically speaking, microservice granularity research is at a Wild West stage: no standard definition, no clear development—operation trade-offs, and scarce conceptual reuse (e.g., few methods seem applicable or replicable in projects other than their initial proposal). These gaps in granularity research offer clear options to investigate on continuous improvement of the development and operation of microservice-based systems.
format Online
Article
Text
id pubmed-8444086
institution National Center for Biotechnology Information
language English
publishDate 2021
publisher PeerJ Inc.
record_format MEDLINE/PubMed
spelling pubmed-84440862021-09-30 Defining and measuring microservice granularity—a literature overview Vera-Rivera, Fredy H. Gaona, Carlos Astudillo, Hernán PeerJ Comput Sci Distributed and Parallel Computing BACKGROUND: Microservices are an architectural approach of growing use, and the optimal granularity of a microservice directly affects the application’s quality attributes and usage of computational resources. Determining microservice granularity is an open research topic. METHODOLOGY: We conducted a systematic literature review to analyze literature that addresses the definition of microservice granularity. We searched in IEEE Xplore, ACM Digital Library and Scopus. The research questions were: Which approaches have been proposed to define microservice granularity and determine the microservices’ size? Which metrics are used to evaluate microservice granularity? Which quality attributes are addressed when researching microservice granularity? RESULTS: We found 326 papers and selected 29 after applying inclusion and exclusion criteria. The quality attributes most often addressed are runtime properties (e.g., scalability and performance), not development properties (e.g., maintainability). Most proposed metrics were about the product, both static (coupling, cohesion, complexity, source code) and runtime (performance, and usage of computational resources), and a few were about the development team and process. The most used techniques for defining microservices granularity were machine learning (clustering), semantic similarity, genetic programming, and domain engineering. Most papers were concerned with migration from monoliths to microservices; and a few addressed green-field development, but none address improvement of granularity in existing microservice-based systems. CONCLUSIONS: Methodologically speaking, microservice granularity research is at a Wild West stage: no standard definition, no clear development—operation trade-offs, and scarce conceptual reuse (e.g., few methods seem applicable or replicable in projects other than their initial proposal). These gaps in granularity research offer clear options to investigate on continuous improvement of the development and operation of microservice-based systems. PeerJ Inc. 2021-09-08 /pmc/articles/PMC8444086/ /pubmed/34604522 http://dx.doi.org/10.7717/peerj-cs.695 Text en © 2021 Vera-Rivera et al. https://creativecommons.org/licenses/by/4.0/This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Computer Science) and either DOI or URL of the article must be cited.
spellingShingle Distributed and Parallel Computing
Vera-Rivera, Fredy H.
Gaona, Carlos
Astudillo, Hernán
Defining and measuring microservice granularity—a literature overview
title Defining and measuring microservice granularity—a literature overview
title_full Defining and measuring microservice granularity—a literature overview
title_fullStr Defining and measuring microservice granularity—a literature overview
title_full_unstemmed Defining and measuring microservice granularity—a literature overview
title_short Defining and measuring microservice granularity—a literature overview
title_sort defining and measuring microservice granularity—a literature overview
topic Distributed and Parallel Computing
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8444086/
https://www.ncbi.nlm.nih.gov/pubmed/34604522
http://dx.doi.org/10.7717/peerj-cs.695
work_keys_str_mv AT verariverafredyh definingandmeasuringmicroservicegranularityaliteratureoverview
AT gaonacarlos definingandmeasuringmicroservicegranularityaliteratureoverview
AT astudillohernan definingandmeasuringmicroservicegranularityaliteratureoverview