Avaliação de desempenho para elasticidade de ambientes conteinerizados: estudo experimental e de modelagem do Kubernetes - Paulo, Katharine Padilha de (2021)
The microservice architecture became a trend for application development and deployment in cloud applications due to its capability of reducing service complexity and increase elasticity. Containers emerged as an alternative to virtual machines, and together with tools such as Kubernetes, have been empowering the usage of microservices. Provisioning and deprovisioning resources is a key factor to achieve elasticity, and consequently availability and responsiveness in cloud applications. Therefore, the efficient instantiation of containers is one requirement for the elastic behavior of web applications. This study analyzes the performance of containers instantiation, and the Kubernetes autoscaling mechanism. On the container instantiation process it was considered factors such as image size, and caching. Experiment results indicated that image sizes had a large impact in the instantiation time with low cache levels. This study presents a Markov Chain model, a Non-Markovian Petri Net model and a Stochastic Petri Net model using phase-type approximation through moment matching technique. A sensitivity analysis performed with the proposed models shows a linear relationship between instantiation time, image size and cache. The analysis checked the impact of each factor on the total response time, indicating strategies for performance improvements. The proposed SPN model with phase-type approximation achieves a better representation of the actual behavior of the system, by fitting the data obtained from the experiments not only on average values, but on the overall response time distribution. Besides, this study also presents a Stochastic Petri Net model to represent the Kubernetes autoscaling mechanism. The model includes monitoring, dimensioning, admission and processing. The model was analyzed using transient and stationary simulation for the following metrics: for the average number of Pods in the period and average utilization of the period. A sensitivity analysis was performed to analyze the relationship between the average number of pods, the number of users, the service time and the interval between requests. The analysis showed that the increase in load, due to the increase in the number of users or the arrival rate, implies a faster scaling. As well as increased of the service time. It can be seen that the model successfully represents the automatic scaling behavior of Kubernetes. Therefore, since the execution of what-if analyses in production environments is not an easy task, having an accurate model to assess the system performance in different scenarios can be a very important advantage to cloud systems administrators.