Enhancing Workload Predictions Using Service Interactions in Cloud-Native Microservices

Isham Mahajan, Deepak Nadig · 2024

Container orchestration systems, such as Kuber-netes, often rely on manual resource allocation to manage re-sources, which can be inefficient and inflexible due to the frequent over-provisioning or underprovisioning of resources. Kubernetes horizontal pod autoscaler (HPA), vertical pod autoscaler (VPA), and Google Kubernetes Engine (GKE) Autopilot are primarily threshold-based, making them reactive rather than proactive as they adjust resources after exceeding utilization thresholds, leading to temporary degradation in quality of service (QoS). While some solutions utilize calls per minute (CPM) counts for requests to microservices to estimate resource consumption dynamically, they do not fully exploit distributed traces or associated microservices' interdependencies. We hypothesize that we can gain deeper insights into future workload patterns by exploiting microservices' interaction and the CPM counts for each pair of communicating microservices. In this paper, we propose a comprehensive machine learning workflow to assess whether factoring in the interdependencies between microservices results in improved workload prediction. Our findings indicate that an LSTM model performs well, with average mean absolute error (MAE) and root mean square error (RMSE) values of 7.02 and 10.54, respectively. The highest$R^{2}$score observed was 0.07. This suggests that although incorporating distributed traces and inter-microservice CPM counts provides valuable insights, the models fail to capture the full complexity of workload dynamics. These results highlight the potential for enhancing workload prediction accuracy and underscore the need to refine these methods further to achieve more proactive and efficient resource allocation in container orchestration systems.

Read the paper · More papers on PaperTik