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...
Main Authors: | , , , |
---|---|
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 |