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...
Saved in:
Main Author: | |
---|---|
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 |
id |
id-itb.:85041 |
---|---|
spelling |
id-itb.:850412024-08-19T13:50:00ZDEVELOPMENT OF PREDICTIVE AUTOSCALING ON RABBITMQ CONSUMER POD IN KUBERNETES Liusudarso, Kent Indonesia Final Project autoscaling, Kubernetes, RabbitMQ, time series forecasting. INSTITUT TEKNOLOGI BANDUNG https://digilib.itb.ac.id/gdl/view/85041 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. text |
institution |
Institut Teknologi Bandung |
building |
Institut Teknologi Bandung Library |
continent |
Asia |
country |
Indonesia Indonesia |
content_provider |
Institut Teknologi Bandung |
collection |
Digital ITB |
language |
Indonesia |
description |
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. |
format |
Final Project |
author |
Liusudarso, Kent |
spellingShingle |
Liusudarso, Kent DEVELOPMENT OF PREDICTIVE AUTOSCALING ON RABBITMQ CONSUMER POD IN KUBERNETES |
author_facet |
Liusudarso, Kent |
author_sort |
Liusudarso, Kent |
title |
DEVELOPMENT OF PREDICTIVE AUTOSCALING ON RABBITMQ CONSUMER POD IN KUBERNETES |
title_short |
DEVELOPMENT OF PREDICTIVE AUTOSCALING ON RABBITMQ CONSUMER POD IN KUBERNETES |
title_full |
DEVELOPMENT OF PREDICTIVE AUTOSCALING ON RABBITMQ CONSUMER POD IN KUBERNETES |
title_fullStr |
DEVELOPMENT OF PREDICTIVE AUTOSCALING ON RABBITMQ CONSUMER POD IN KUBERNETES |
title_full_unstemmed |
DEVELOPMENT OF PREDICTIVE AUTOSCALING ON RABBITMQ CONSUMER POD IN KUBERNETES |
title_sort |
development of predictive autoscaling on rabbitmq consumer pod in kubernetes |
url |
https://digilib.itb.ac.id/gdl/view/85041 |
_version_ |
1822998898538446848 |