Improving microservice-based applications with runtime placement adaptation

Abstract Microservices are a popular method to design scalable cloud-based applications. Microservice-based applications (μApps) rely on message passing for communication and to decouple each microservice, allowing the logic in each service to scale independently. Complex μApps can contain hundreds...

Full description

Bibliographic Details
Main Authors: Adalberto R. Sampaio, Julia Rubin, Ivan Beschastnikh, Nelson S. Rosa
Format: Article
Language:English
Published: Brazilian Computing Society (SBC) 2019-02-01
Series:Journal of Internet Services and Applications
Subjects:
Online Access:http://link.springer.com/article/10.1186/s13174-019-0104-0
_version_ 1818355344678584320
author Adalberto R. Sampaio
Julia Rubin
Ivan Beschastnikh
Nelson S. Rosa
author_facet Adalberto R. Sampaio
Julia Rubin
Ivan Beschastnikh
Nelson S. Rosa
author_sort Adalberto R. Sampaio
collection DOAJ
description Abstract Microservices are a popular method to design scalable cloud-based applications. Microservice-based applications (μApps) rely on message passing for communication and to decouple each microservice, allowing the logic in each service to scale independently. Complex μApps can contain hundreds of microservices, complicating the ability of DevOps engineers to reason about and automatically optimize the deployment. In particular, the performance and resource utilization of a μApp depends on the placement of the microservices that compose it. However, existing tools for μApps, like Kubernetes, provide minimal ability to influence the placement and utilization of a μApp deployment. In this paper, we first identify the runtime aspects of microservice execution that impact the placement of microservices in a μApp. We then review the challenges of reconfiguring a μApp based on these aspects. Our main contribution is an adaptation mechanism, named REMaP, to manage the placement of microservices in an μApp automatically. To achieve this, REMaP uses microservice affinities and resource usage history. We evaluate our REMaP prototype and demonstrate that our solution is autonomic, lowers resource utilization, and can substantially improve μApp performance.
first_indexed 2024-12-13T19:39:50Z
format Article
id doaj.art-60c10cebe9d34b838fcdc2de98352993
institution Directory Open Access Journal
issn 1867-4828
1869-0238
language English
last_indexed 2024-12-13T19:39:50Z
publishDate 2019-02-01
publisher Brazilian Computing Society (SBC)
record_format Article
series Journal of Internet Services and Applications
spelling doaj.art-60c10cebe9d34b838fcdc2de983529932022-12-21T23:33:44ZengBrazilian Computing Society (SBC)Journal of Internet Services and Applications1867-48281869-02382019-02-0110113010.1186/s13174-019-0104-0Improving microservice-based applications with runtime placement adaptationAdalberto R. Sampaio0Julia Rubin1Ivan Beschastnikh2Nelson S. Rosa3Center of Informatics, UFPEDepartment of Electrical and Computer Engineering, UBCDepartment of Computer Science, UBCCenter of Informatics, UFPEAbstract Microservices are a popular method to design scalable cloud-based applications. Microservice-based applications (μApps) rely on message passing for communication and to decouple each microservice, allowing the logic in each service to scale independently. Complex μApps can contain hundreds of microservices, complicating the ability of DevOps engineers to reason about and automatically optimize the deployment. In particular, the performance and resource utilization of a μApp depends on the placement of the microservices that compose it. However, existing tools for μApps, like Kubernetes, provide minimal ability to influence the placement and utilization of a μApp deployment. In this paper, we first identify the runtime aspects of microservice execution that impact the placement of microservices in a μApp. We then review the challenges of reconfiguring a μApp based on these aspects. Our main contribution is an adaptation mechanism, named REMaP, to manage the placement of microservices in an μApp automatically. To achieve this, REMaP uses microservice affinities and resource usage history. We evaluate our REMaP prototype and demonstrate that our solution is autonomic, lowers resource utilization, and can substantially improve μApp performance.http://link.springer.com/article/10.1186/s13174-019-0104-0MicroservicesRuntime adaptationOptimization
spellingShingle Adalberto R. Sampaio
Julia Rubin
Ivan Beschastnikh
Nelson S. Rosa
Improving microservice-based applications with runtime placement adaptation
Journal of Internet Services and Applications
Microservices
Runtime adaptation
Optimization
title Improving microservice-based applications with runtime placement adaptation
title_full Improving microservice-based applications with runtime placement adaptation
title_fullStr Improving microservice-based applications with runtime placement adaptation
title_full_unstemmed Improving microservice-based applications with runtime placement adaptation
title_short Improving microservice-based applications with runtime placement adaptation
title_sort improving microservice based applications with runtime placement adaptation
topic Microservices
Runtime adaptation
Optimization
url http://link.springer.com/article/10.1186/s13174-019-0104-0
work_keys_str_mv AT adalbertorsampaio improvingmicroservicebasedapplicationswithruntimeplacementadaptation
AT juliarubin improvingmicroservicebasedapplicationswithruntimeplacementadaptation
AT ivanbeschastnikh improvingmicroservicebasedapplicationswithruntimeplacementadaptation
AT nelsonsrosa improvingmicroservicebasedapplicationswithruntimeplacementadaptation