Learning Predictive Autoscaling Policies for CloudHosted Microservices Using TraceDriven Modeling Autoscaling methods are important to ensure response time guarantees for cloudhosted microservices. Most of the existing stateoftheart autoscaling methods use rulebased reactive policies with static thresholds defined either on monitored resource consumption metrics such as CPU and memory utilization or applicationlevel metrics such as the response time. However, it is challenging to determine the most appropriate threshold values to minimize resource consumption and performance violations. Whereas, predictive autoscaling methods can help to address these challenges. These methods require considerable time to collect sufficient performance traces representing different resource provisioning possibilities for a target infrastructure to train a useful predictive autoscaling model. In this paper, we tackle this problem by proposing a system that models the response time of microservices through stress testing and then uses a tracedriven simulation to learn a predictive autoscaling model for satisfying response time requirements automatically. The proposed solution reduces the need for collecting performance traces to learn a predictive autoscaling model. Our experimental evaluation on AWS cloud using a microservice under realistic dynamic workloads validates the proposed solution. The validation results show excellent performance to satisfy the response time requirement with only 4.5% extra cost for using the proposed autoscaling method compared to the reactive autoscaling method.

SD: A DivergenceBased Estimation Method for Service Demands in Cloud Systems Estimating performance models parameters of cloud systems presents several challenges due to the distributed nature of the applications, the chains of interactions of requests with architectural nodes, and the parallelism and coordination mechanisms implemented within these systems. In this work, we present a new inference algorithm for model parameters, called state divergence (SD) algorithm, to accurately estimate resource demands in a complex cloud application. Differently from existing approaches, SD attempts to minimize the divergence between observed and modeled marginal state probabilities for individual nodes within an application, therefore requiring the availability of probabilistic measures from both the system and the underpinning model. Validation against a case study using the Apache Cassandra NoSQL database and random experiments show that SD can accurately predict demands and improve system behavior modeling and prediction.