Adaptivni Sistemi Avtomatičnogo Upravlinnâ (May 2023)

Proactive automatic up-scaling for Kubernetes

  • D. Gutman,
  • O. Syrota

DOI
https://doi.org/10.20535/1560-8956.42.2023.278925
Journal volume & issue
Vol. 1, no. 42
pp. 32 – 38

Abstract

Read online

Modern challenges in microservice architecture requires autoscaling (upscaling and down-scaling). As an example Black Friday can be considered when load to system increases significantly and obviously more computing capabilities are need to serve it. Automatic up-scaling can allow devops team work as normal even in situations of extreme load to the system. Up-scaling and spinning up of new instance can take a while and make user wait for better system’s performance until new instance is be up and running. That is why up-scaling activities should be started as early as possible. The only solution is to use prediction on load and start up-scaling earlier having prediction of future load trend. In this article automatic up-scaling is for Kubernetes in focus as Kubernetes is defacto a standard for container orchestration. Authors propose solution, providing git-reference to source code. Solution is implemented as Java-based application which uses time-series database (InfluxDB in this case) to understand microservice load. Solution utilizes two prediction models - Exponential Smoothing (ES) and Double Exponential Smoothing (DES). Two models are used to compare with each other. Performance tests are conducted to analyze two main use-cases – use case of slow load growth and case of rapid load growth. Based on experiments it is found that for all cases pro-active up-scaling works better than reactive one. Value from pro-active approach is more visible for case of rapid load growth. If to compare ES and DES between each other, in both cases DES showed better results. Future improvement of the solution could be to make a solution as extension to Kubernetes eco-system for easy plugging-in to Kubernetes infrastructure. Also one of the improvement could be supporting of Prometheus as timeseries database. Ref. 20, pic. 3, tabl. 2

Keywords