Microservices based architectures are increasingly widespread in the cloud software industry. Still, there is a shortage of auto-scaling methods designed to leverage the unique features of these architectures, such as the ability to independently scale a subset of microservices, as well as the ease of monitoring their state and reciprocal calls. We propose to address this shortage with ATOM, a model-driven autoscaling controller for microservices. ATOM instantiates and solves at run-time a layered queueing network model of the application. Computational optimization is used to dynamically control the number of replicas for each microservice and its associated container CPU share, overall achieving a fine-grained control of the application capacity at run-time. Experimental results indicate that for heavy workloads ATOM offers around 30%-37% higher throughput than baseline model-agnostic controllers based on simple static rules. We also find that model-driven reasoning reduces the number of actions needed to scale the system as it reduces the number of bottleneck shifts that we observe with model-agnostic controllers.

Autoscaling, Layered queueing network, Microservices, Performance optimization
39th IEEE International Conference on Distributed Computing Systems, ICDCS 2019
Department of Systems and Computer Engineering

Gias, A.U. (Alim Ul), Casale, G. (Giuliano), & Woodside, C.M. (2019). ATOM: Model-driven autoscaling for microservices. In Proceedings - International Conference on Distributed Computing Systems (pp. 1994–2004). doi:10.1109/ICDCS.2019.00197