Towards Resource-Efficient Reactive and Proactive Auto-Scaling for Microservice Architectures
19 Pages Posted: 6 Aug 2024
Abstract
Microservice architectures have become increasingly popular in both academia and industry, providing enhanced agility, elasticity, and maintainability in software development and deployment. To simplify scaling operations in microservice architectures, container orchestration platforms such as Kubernetes feature Horizontal Pod Auto-scalers (HPAs) designed to adjust microservice resources to accommodate fluctuating workloads. However, existing HPAs are not suitable for resource-constrained environments, as they make scaling decisions based on the individual resource capacities of microservices, leading to service unavailability, resource mismanagement, and financial losses. Furthermore, the inherent delay in initializing and terminating microservice pods hinders HPAs from timely responding to workload fluctuations, further exacerbating these issues. In addition, the architectures of existing HPAs exhibit several challenges, including single point of failure and the absence of coordinated scaling operations. To address these concerns, we propose Smart HPA and ProSmart HPA, reactive and proactive horizontal pod auto-scalers. These auto-scalers integrate centralized and decentralized styles. Smart HPA optimizes resource exchange in constrained environments, while ProSmart HPA uses machine learning to manage resource demands proactively, reducing delays and enabling preemptive resource sharing. Our experiments show Smart HPA outperforms Kubernetes HPA, and ProSmart HPA surpasses both by reducing resource overutilization, overprovisioning, underprovisioning, and increasing resource allocation to microservice applications.
Keywords: Software Architecture, Auto-scaling, Microservices, Resource Management, Self-Adaptation, Kubernetes
Suggested Citation: Suggested Citation