Abstract

Microservice architecture (MSA) has become a de facto standard for developing complex web applications lately. Horizontal scalability, domain isolation, agility and the provision to use heterogenous technologies are some of the key factors for the growing popularity of this architecture. To automatically cater to varying load patterns, quite a lot of advancements have been made in the field of cloud computing, containerization and orchestrating mechanisms which aid to perform the auto scaling of the microservices. However, setting up the scaling policies, optimal upper and lower thresholds is a daunting task for large applications. It generally involves some initial guess work followed by multiple rounds of tuning based on the real time load variations. This process causes situations where either the service becomes unavailable to the load when the thresholds are on the lower side, (or) underutilization of the compute resources when they are on higher side. This paper aims to find a quantitative way of determining the thresholds and step-up policies by deducing the mathematical formulas. To solve this formidable problem, we propose a model in which the total resource consumption of a container running in the peak load scenario can be calculated by - (1) first identifying the critical transactions and their maximum concurrency rates,(2) then calculating the resource consumption of such transactions in a controlled environment and (3) finally applying those values to the mathematical formulas based on Gaussian functions to calculate the total resource consumption for the peak load scenario. Using the total resource consumption value and considering the network and startup latencies, an optimal upper threshold value for step-up functions can be calculated. In this paper, we calculated the upper threshold values using the above-mentioned approach and verified using a research project that the calculated value is indeed the minimum number of containers to handle load.

Highlights

  • In the last few years microservice architecture has garnered a huge popularity in the field of web development [3], [4] and software design

  • Auto scaling is a feature which is provided by the orchestrating software like Kubernetes, docker swarm etc., in conjunction with the public cloud platforms like AWS, Azure, GCP etc., This feature would automatically spin up more containers or roll back the same based on the load fluctuations all day long and would optimally size them based on the demand, without any human intervention

  • We developed microservices which are written in java programming language using spring boot technology

Read more

Summary

Introduction

In the last few years microservice architecture has garnered a huge popularity in the field of web development [3], [4] and software design This can primarily be attributed to the plethora of benefits associated to the framework like horizontal scalability, high availability, ease of deployments, multi cloud load distribution capability, domain isolation, agility in build and deployment cycles, etc., to name a few. For the compute resources to scale up or down quickly, it needed a slicker and light weight solution which can be started and stopped at a faster pace compared to the traditional virtual machines This thought process has given rise to

Objectives
Methods
Results
Conclusion
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.