DEVELOPMENT OF PREDICTIVE AUTOSCALING ON RABBITMQ CONSUMER POD IN KUBERNETES

In application development, the need that often arises is the handling of time- consuming tasks, such as file compression, PDF merging, and others. This need can be addressed with task queues. The main idea behind task queues is to avoid working on time-consuming tasks immediately and having to...

Full description

Saved in:
Bibliographic Details
Main Author: Liusudarso, Kent
Format: Final Project
Language:Indonesia
Online Access:https://digilib.itb.ac.id/gdl/view/85041
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Institut Teknologi Bandung
Language: Indonesia
Description
Summary:In application development, the need that often arises is the handling of time- consuming tasks, such as file compression, PDF merging, and others. This need can be addressed with task queues. The main idea behind task queues is to avoid working on time-consuming tasks immediately and having to wait until they are completed. A queue system like RabbitMQ, requires consumers (workers) who perform tasks on the queue. The optimal number of consumers needed to keep the queue from getting longer is determined by the length of the current task queue. This can be automated with the autoscaling feature provided by Kubernetes. Autoscaling will automatically adjust the number of consumer components based on the threshold of the specified queue length. But the traditional autoscaling feature still has a scaling delay caused by the overhead time required for the consumer to reach ready state. This causes latency in the application as well as inefficiency in resource usage when there are fluctuations in workload. So, a proactive method is needed that can perform scaling before changes in workload occur. In this final project, a predictive autoscaling system based on a time series-based prediction model is developed to project future workloads based on historical workload data. The results of this prediction will be used to determine the appropriate time and number of consumers. The results achieved show that the predictive autoscaling system can improve responsiveness to workload changes, optimise resource usage, and reduce unnecessary operational costs. The evaluation was conducted through a series of comprehensive tests comparing the performance of the predictive system with traditional autoscaling methods. It is concluded that this predictive approach is effective in addressing the issues at hand, making a significant contribution to the management of RabbitMQ-dependent applications on Kubernetes.