Proactive resource management for cloud of services environments - Marques, Gonçalo João Lopes de Figueiredo d'Almeida (2022)
Over the last few years, the advancements in virtualization and containerization technologies have introduced the concept of the microservices architecture. Despite this architectural paradigm bringing many advantages to cloud providers, it also comes with some disadvantages since the division of monolithic applications into microservices with different, narrowly focused purposes and requirements creates the necessity for a monitoring system capable of accurately identifying the specific resources a service may be lacking and allocating them accordingly. The objective of this dissertation is to design, implement and test a service oriented monitoring system for kubernetes clusters using open source technologies, capable of dealing with the diversity of the requirements of the provided services. This system can also autonomously predict workload variations and resource shortages based on a forecasting module, and ensuring that additional resources are quickly and efficiently allocated whenever necessary. In order to accomplish this, we will be analysing the current monitoring techniques and challenges for service based cloud environments, evaluating the effectiveness of the monitoring tools provided by kubernetes, and designing an architecture that complements them with support service specific metrics, and integrating a workload prediction module to forecast workloads and allocate resources proactively. The system was deployed first on a smaller scale cluster, to determine the shortcomings of the kubernetes monitoring tools, and than on a larger scale public cloud to validate the proposed architecture in a realistic scenario. The tests was done with a dataset of user sessions, which was analysed to create daily user workload patterns and used to train the forecasting algorithm implemented in the monitoring system. The results show that the additions of the custom metrics module and the proactive module to the monitoring and scaling systems improve response time and the efficiency of scaling decisions, while reducing service level agreements violations and service downtime.