Elergy: elasticidade em nuvem para gerenciar desempenho e energia em aplicações baseadas na arquitetura de microsserviços
Description
The microservice architecture divides the application functionalities into several small services. This allows a manager to scale, distribute, evaluate and implement each microservice individually. This means that a developer can write each microservice using a different framework or language, may have a number of different nodes and may have different rules of elasticity. This architecture is suitable for cloud computing since each Docker container packaged a microservice. Using elasticity, it is possible to allocate and deallocate resources according to some metrics, such as CPU, in order to improve application performance. There are several studies that use elasticity to improve the performance of the application, but few works that aim to improve the energy cost. In addition, most solutions use reactive elasticity. In this form of elasticity, when some metric reaches, one action performs. Already in proactive elasticity, some prediction algorithm, such as machine learning and time series, predicts future values of a metric and make decisions in advance. In this way, this work proposes the EnergyElastic model, a model that combines proactive resource elasticity with energy management. For the proactive elasticity, the model uses the ARIMA time series model, which aims to predict a metric to make allocation decisions and deallocation of containers according to the workload. For energy management, the system will migrate containers between servers in order to deactivate machines that are underutilized. In addition, we demonstrated a micro-service-based application model which will be the implementation supported by Elergy. We modeled four workloads that will be used to evaluate the model: constant, wave, increasing and decreasing. Finally, we show preliminary values prediction results with the simulation of real workloads. For each workload, we demonstrate the best ARIMA model. They are basically two expected contributions. The first is to provide proactive elasticity of applications that run on microservices. The second is a heuristic for elasticity decisions aimed at reducing energy consumption with minimal impact on performance. To evaluate the impact of the Elergy decisions, we mensured the execution time, energy index and cost, with and without the model, comparing the results. The results show that Elergy reduced up to 27.92% the energy. Regarding the cost, it was possible to obtain a lower cost of 17.44%.CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior