Anda di halaman 1dari 18

LONG SHORT-TERM MEMORY NEURAL NETWORK DALAM PREDIKSI

AUTO-SCALING PADA APLIKASI BERBASIS CONTAINER & CLOUD

PROPOSAL TUGAS AKHIR

Diajukan Untuk Memenuhi Salah Satu Syarat


Dalam Menempuh Ujian Sidang Sarjana
Di Program Studi Informatika

NPM : 0619103028
Nama : KURNIAWAN RAMDHANI
Konsentrasi : APPLIED NETWORKING

PROGRAM STUDI INFORMATIKA – FAKULTAS TEKNIK


UNIVERSITAS WIDYATAMA
BANDUNG
2022
REVIEW PROPOSAL TUGAS AKHIR

NPM : 0619103028

Nama : Kurniawan Ramdhani

Konsentrasi : Applied Networking

Judul : Long Short-Term Memory Neural Network dalam prediksi


Auto-Scaling pada Aplikasi berbasis Container & Cloud

Aspek Penilaian Hasil Review


Originalitas

Kelegkapan Informasi

Kelayakan Ilmu dan Waktu


Pelaksanaan

Kesimpulan:
Diterima/ Ditolak/ Diperbaiki
Alasan:

Bandung,
Menyetujui Mengetahui
Ka. Lab. Applied Networking Sek. Prodi Informatika

Ulil Surtia Zulpratita, S.T., M.T. Yan Puspitarani, S.T., M.T.


1. LATAR BELAKANG MASALAH
Kemajuan teknologi dalam cloud computing telah membentuk
terobosan baru dalam aplikasi berbasis cloud [1]. Sebuah komponen utama
dari cloud computing adalah teknologi virtualisasi yang memungkinkan
sumber daya dalam satu komputer di pecah menjadi beberapa bagian sumber
daya virtual lain seperti CPU, memory, dan storage, agar pengguna dapat
membuat sebuah sumber daya komputasi berdasarkan kebutuhan yang di
inginkan [2]. Saat ini, virtualisasi berbasis container menjadi salah satu solusi
alternatif dari VM (virtual machine) dan banyak digunakan sebagai standar
untuk deploy aplikasi berbasis cloud.

Auto-scaling adalah fitur dari cloud computing, tujuan utama dari


auto-scaling adalah untuk menyesuaikan sumber daya yang dibutuhkan
berdasarkan workload dan latency yang di inginkan [3]. Di sisi lain over-
provisioning dapat mengakibatkan pemborosan sumber daya dan biaya
layanan sementara under-provisioning dapat menyebabkan penurunan kinerja
performa dari suatu aplikasi berbasis cloud, maka pemilihan metode auto-
scaling yang tepat sangatlah krusial karena akan memberikan efek yang
signifikan dalam penyesuaian provisioning dan de-provisioning sumber daya
pada cloud secara otomatis. Dalam perancangan dan pengaplikasian auto-
scaler di container environment, masih terdapat banyak masalah yang harus
diselesaikan karena beberapa faktor, diantaranya karakteristik workload yang
dinamis, kebutuhan sumber daya yang berbeda, dan skema tarif yang
kompleks dari penyedia layanan cloud [4].

Untuk membuat auto-scaler yang sesuai dengan kondisi workload


yang dinamis cukup sulit. karena metode tradisional terbilang sangat lambat
dalam menyamai perubahan workload. Perkembangan terkini di bidang
Artificial Inteligence (AI) dan Machine Learning dapat membantu
memecahkan masalah untuk auto-scaling pada aplikasi berbasis container
dalam hal menyamai perubahan workload [5]. Long Short-Term Memory
(LSTM) neural network adalah salah satu dari model Time Series
Forecasting yang dapat di implementasikan pada auto-scaler. Karena LSTM
neural network mempelajari keputusan scaling berdasarkan keputusan
sebelumnya dan perilaku workload untuk mengambil keputusan scaling yang
akan datang [4]. LSTM disimpan dalam bentuk container engine sebagai
node manager untuk mengatur node worker. Berdasarkan eksperimen, LSTM
mempunyai kinerja yang lebih baik dari metode lainnya, seperti model auto-
regressive integrated moving average (ARIMA) dalam memprediksi
workload. Sebagai perbandingan dengan model ANN, model LSTM memiliki
performa yang lebih baik dalam metrik auto-scaler yang terkait dengan
provisioning dan elastisitas.

Dalam permasalahan yang terjadi pada Auto-scaling, penulis


mengusulkan implementasi Algorima time series forecasting dengan model
Long Short-Term Memory (LSTM) sebagai prediksi dalam auto-scaling.
Berdasarkan hal tersebut, maka penulis menyusun laporan tugas akhir ini
dengan judul “LONG SHORT-TERM MEMORY NEURAL NETWORK
DALAM PREDIKSI AUTO-SCALING PADA APLIKASI BERBASIS
CONTAINER & CLOUD”.

2. RUMUSAH MASALAH
Berdasarkan dari permasalahan yang dijelaskan pada bagian latar
belakang masalah, dapat dirumuskan permasalahan tersebut sebagai berikut:
a. Bagaimana cara mengatur sumber daya dalam aplikasi berbasis cloud?
b. Bagaimana cara membuat auto-scaler menjadi lebih efektif dalam
menentukan prediksi workload?
c. Bagaimana mengetahui akurasi prediksi yang dihasilkan?

3. TUJUAN
Penelitian yang dilakukan pada permasalahan yang sudah dijelaskan
memiliki tujuan sebagai berikut:
a. Untuk memaksimalkan manfaat dari fitur auto-scaling pada cloud.
b. Untuk membuat auto-scaler menggunakan algoritma Time Series
Forecasting model Long Short-Term Memory (LSTM) Neural Network
agar dapat meningkatkan elastisitas dan akurasi hasil prediksi.
c. Dapat melakukan pengujian dan analisis pada time series dataset yang
telah disediakan.

4. BATASAN MASALAH
Batasan dari permasalahan yang ada di dalam penelitian ini dibatasi oleh
beberapa hal sebagai berikut:
a. Penelitian menggunakan algoritma Long Short-Term Memory (LSTM)
untuk memprediksi workload.
b. Pengujian menggunakan dataset FIFA Worldcup98 yang memiliki log
timestamp yang terdiri dari client ID, request method, dan status.
c. Penelitian menggunakan dummy web apps berbasis container.

5. LANDASAN TEORI
5.1. Container
Container adalah lightweight package dari sebuah perangkat lunak
yang terdiri dari source code spesifik dari segi bahasa pemrograman yang
digunakan dan semua dependensinya sehingga perangkat lunak dapat berjalan
dari satu environment ke environment lainnya. Container mengisolasi
perangkat lunak dari environment-nya dan memastikan bahwa perangkat
lunak bekerja secara seragam terlepas dari perbedaan environment [6].
Container mempermudah untuk pembagian CPU, memory, storage
dan network resource dalam level sistem operasi dan mekanisme logical
packaging application dalam environment tempat perangkat lunak dijalankan.
Container dan virtual machines (VMs) mempunyai persamaan dari segi
resource isolation dan benefit dari allocation, namun keduanya mempunyai
fungsi yang berbeda karena container hanya memvirtualisasi sistem operasi
sedangkan virtual machines memvirtualisasi perangkat keras. Container lebih
portable dan efisien dibandingkan dengan virtual machine [7]. Perbedaan
arsitektur container dan virtual machines terdapat pada gambar 1.
Gambar 1. Perbedaan container dan virtual machines [6]

- Container adalah sebuah abstraksi pada application layer yang mengemas


source code beserta dependensinya secara bersamaan. Beberapa container
dapat berjalan di mesin yang sama dan berbagi kernel OS dengan
container yang lain, masing-masing berjalan sebagai proses yang terisolasi
di sisi pengguna. Container mengambil lebih sedikit ruang daripada
virtual machines (container image biasanya hanya berukuran puluhan
MB), dapat menangani lebih banyak aplikasi dan membutuhkan lebih
sedikit VM dan sistem operasi.
- Virtual machines (VMs) adalah sebuah abstraksi dari fisik hardware yang
mengubah satu server menjadi banyak server. Hypervisor memungkinkan
beberapa VM berjalan di satu mesin. Setiap VM menyertakan Salinan
lengkap dari sebuah sistem operasi, aplikasi, binaries dan libraries yang
diperlukan dan menghabiskan puluhan GB ruang penyimpanan. VM juga
lebih lambat dalam proses boot dibandingkan dengan container.

5.2. Auto-scaling
Auto-scaling adalah salah satu fitur dari cloud platform untuk
memberikan elastisitas pada sebuah cloud application. Fitur ini membuat
aplikasi secara otomatis dapat menyesuaikan workload sesuai dengan prediksi
kebutuhan yang diperlukan [8]. auto-scaling dapat diaplikasikan dengan
bantuan container orchestration framework dimana deploying dan managing
sebuah aplikasi, terdistribusi sebagai suatu set container dalam sebuah cluster
node [9]. Docker swarm adalah salah satu dari container orchestration
framework. Sebuah arsitektur sederhana containerized system dideploy dalam
sebuah cluster node yang diperlihatkan dalam gambar 2.

Gambar 2. Arsitektur sederhana containerized system dalam auto-scaling [4]

Sistem tersusun dari beberapa node yang terhubung dengan peran


yang berbeda diatur oleh Docker Swarm. Terlepas dari peran masing-masing,
setiap node menjalankan docker container engine agar dapat menyimpan
sebuah container. Node terdiri dari 2 tipe, yaitu manager dan worker.
- Node manager berfungsi untuk mengatur cluster dan deployed container
dengan Docker Swarm. Manager node bertanggung jawab untuk menjaga
keadaan cluster dengan terus menerus memeriksa node yang sedang aktif
ataupun node yang akan bergabung dengan cluster. Manager node juga
menangani penjadwalan seperti deploying, removing, starting, dan
stopping semua container [8]. Selain itu Manager node juga menyimpan
sebuah containerized auto-scaler yang dapat menambah elastisitas pada
sistem dengan mengatur jumlah replika dari sebuah container
berdasarkan prediksi workload yang dibutuhkan.
- Node worker berfungsi hanya untuk menyimpan containers yang sedang
aktif. Dalam arsitektur tersebut, setiap worker node menyimpan
containerized load balancer yang berfungsi sebagai system gateway yang
akan menerima semua request yang masuk. Load balancer kemudian
akan mendistribusikan workload secara merata ke seluruh worker node
yang lainnya. load balancer memiliki peran yang sangat penting dalam
sebuah aplikasi web untuk mendapatkan performa yang lebih baik.

Auto-scaling menggunakan konsep abstraksi umum yang disebut


MAPE (monitor, analyze, plan dan execute) control loop, dimana control
cycle terus menerus berulang dari waktu ke waktu. Seluruh fase dari MAPE
loop memberikan dampak yang signifikan pada efisiensi auto-scaler. Dalam
pengimplementasian, inti dari auto-scaler akan disimpan pada fase analyzer
dan planner [4].

Gambar 3. Arsitektur auto-scaler [4]


Pada arsitektur auto-scaler di gambar 3, terdapat empat fase utama
dan Time Series Database. Database tersebut menyimpan berbagai data yang
disediakan oleh fase monitor dan digunakan oleh analyzer. Output dari fase
analyzer digunakan oleh fase planner untuk memprediksi workload dan
menentukan jumlah (menambahi atau mengurangi) replika container yang
dibutuhkan untuk memenuhi workload yang akan datang. Estimasi jumlah
replika container yang dibutuhkan, ditentukan oleh Restimated pada rumus (1).

[ ]
total
W predicted (1)
Restimated =
W max
container
Algoritma pada gambar 4, menjelaskan fungsi algoritma pada fase
planner. Langkah pertama, algoritma menghitung nilai dari Restimated lalu
membandingkan nya dengan jumlah dari replika container saat ini ¿ ¿) untuk
membuat keputusan scaling (baris ke 1). Jika tidak ada perubahan pada
jumlah container maka tidak ada perubahan yang akan dilakukan (baris 2-3).
Jika nilai estimasi Restimated lebih besar dari ¿ ¿), planner akan meneruskan
perintah scale-up pada executor (baris 4-6). Cooldown timer (CDT)
digunakan untuk menghitung waktu setelah semua perintah scale-up
dijalankan. CDT berfungsi untuk mempertahankan stabilitas jumlah replika
container dengan memberikan interval waktu pada proses scaling untuk
mengatasi perubahan mendadak pada workload. Namun, jika Restimated lebih
kecil dari jumlah replika saat ini, perintah scale-down tidak akan di teruskan
ke executor terkecuali jika interval waktu CDT telah selesai (baris 7-12).

Gambar 4. Planner Algorithm


Ketika mengirimkan perintah scale down, planner akan mengikuti
strategi GDS (Gradually Decreasing Strategy) yang bertujuan untuk
memperkecil replika container ke angka yang kurang dari perkiraan replika
container yang dihasilkan oleh SDR (Scaling Down Ratio) (baris 9-10)
karena planner mengikuti aturan GDS, hanya beberapa container yang akan
dihentikan di suatu waktu hingga jumlah replika container mencapai kriteria
yang telah ditentukan oleh jumlah minimum replika Rmin . tujuan utama GDS
adalah untuk menghindari oscillations yang disebabkan oleh penyesuaian
scaling yang terlalu sering di eksekusi.

5.3. Long Short-Term Memory (LSTM)


Long Short-Term Memory (LSTM) adalah generasi penerus dari
Recurrent Neural Network (RNN). Dimana LSTM dapat menangani masalah
vanishing dan exploding gradient yang terdapat pada RNN dengan
mengaplikasikan pendekatan arsitektur yang berbeda. Kemampuan ini
membuat LSTM sangat cocok untuk memprediksi urutan waktu berikutnya
dalam Time Series Data seperti workload dari waktu ke waktu [10].
LSTM unit terdiri dari tiga gates yaitu forget, input dan output.
Tujuan dari gate ini adalah untuk mengatur jumlah data yang lewat di gate
tersebut. Setiap gate terdiri atas fungsi sigmoid dan sebuah operasi perkalian.
Fungsi sigmoid mengeluarkan output dengan nilai diantara 0 dan 1
sebagaimana ditentukan oleh gabungan h(t - 1) dan x(t). Hasil dari Fungsi
sigmoid kemudian di kali dengan input untuk menghasilkan nilai dari gate
[4]. untuk setiap input vector ke dalam LSTM network, unit tersebut akan
memproses data input seperti pada gambar 3.
Gambar 5. Arsitektur Long Short-Term Memory (LSTM) [4]

i. Input vector x(t) digabungkan dengan hidden state vector h(t – 1)


sebelumnya untuk menghasilkan sebuah vector baru yang akan menjadi
input untuk ketiga gates disamping fungsi tanh.
ii. Forget gate mengontrol jumlah cell state sebelumnya untuk
dipertahankan dalam unit LSTM berdasarkan:

f ( t )=sig ¿ (2)

dimana W dan b adalah nilai untuk weight dan bias.

iii. Sebuah nilai kandidat untuk cell state C̅(t) saat ini dihitung oleh:

C ( t )=tanh ⁡¿ (3)

iv. Input gate menentukan jumlah dari C̅(t) yang akan dimasukin kedalam
cell state saat ini dengan mengalikannya dengan i(t), dimana hal itu
ditentukan oleh rumus :
i (t )=sig ¿ (4)

v. Hasil akhir cell state saat ini dapat dihitung oleh :

C ( t )=f ( t )∗C ( t−1 )+ i ( t )∗C ( t ) (5)

vi. Output gate mengontrol jumlah C̅(t) yang akan lewat ke cell selanjutnya
menggunakan rumus (5), dimana hasil akhir hidden state h(t) dihitung
oleh rumus (6).

o ( t )=sig ¿ (6)
h ( t )=o ( t )∗tanh ⁡(C ( t ) ) (7)

LSTM Artifical Neural Network (ANN) digunakan untuk membuat


sebuah neural network untuk memprediksi workload yang akan datang.
Arsitektur neural network tersebut terdiri dari 10 neural cells input layer, 30
LSTM unit hidden layer, dan 1 neural cell output layer. Dimana input layer
akan mendapatkan data dalam 10 step terakhir untuk memprediksi workload
yang akan terjadi dalam step setelahnya.

Gambar 6. Arsitektur neural network

Arsitektur neural network dapat memprediksi nilai selanjutnya


dalam time series dari 10 observasi yang telah dilakukan. Multi-step
prediction dapat memprediksi beberapa kemungkinan nilai yang akan
selanjutnya keluar, hal ini sangat penting dalam sebuah auto-scaler untuk
mendapatkan keputusan scaling. Terdapat dua macam multi-step prediction,
yaitu direct dan recursive. Direct bekerja dengan melatih model untuk
memprediksi nilai yang akan muncul setelah beberapa step seperti pada
gambar 5. Sedangkan recursive menggunakan riwayat data untuk
memprediksi beberapa nilai yang akan muncul berikutnya, setelah itu nilai
yang telah diprediksi akan digunakan secara rekursif dengan
menambahkannya ke dalam riwayat data untuk memprediksi nilai yang akan
keluar selanjutnya seperti pada gambar 6.

Gambar 7. Prediksi direct multi-step [4]

Gambar 8. Prediksi recursive multi-step [4]

Prediksi LSTM model akan di evaluasi berdasarkan Mean Square


Error (MSE) seperti pada rumus (8) dan koefisien dari determinasi (R2)
dalam rumus (9). Dimana nilai y, ŷ dan y̅ mewakili nilai aktual, nilai prediksi,
dan nilai mean dari y. Sebagai tambahan, dalam beberapa kasus mean
absolute error (MAE) dan root-mean-square error (RMSE) dipertimbangkan
untuk evaluasi.

1
n
(8)
MSE ( y , ŷ )= ∑ ( y −¿ ŷ i )² ¿
n i=1 i
n
(9)
∑ ( y i− ŷi ) 2
R2=1− i=1
n

∑ ( y i− y̅ i )2
i =1

1
nsamples −1
(10)
MAE ( y , ŷ )=
nsamples
∑ ¿ y i−¿ ŷ i∨¿¿
i=0

√ 1
nsamples −1
(21)
RMSE ( y , ŷ ) =
n samples
∑ ( y i− ŷi ) ²
i=0

6. METODOLOGI
Metodologi yang digunakan dalam meyelesaikan penulisan tugas akhir ini
meliputi:
6.1 Identifikasi Masalah
Berdasarkan latar belakang yang dijelaskan, penulis memberikan
informasi tentang masalah yang akan digunakan sebagai bahan penelitian,
diantaranya:

a. Container-based Cloud Application menggunakan sistem pembayaran


berlangganan dengan model pay-as-you-go yang menyesuaikan dengan
penggunaan resource dan service yang digunakan.
b. Penggunaan Auto-scaling dapat mempermudah sistem untuk melakukan
scaled up/scaled down disetiap waktu agar bisa menyesuaikan
penggunaan resource dan service yang digunakan tanpa interferensi
manusia.
c. Penggunaan algoritma Long Short-Term Memory (LSTM) dapat
digunakan untuk meningkatkan performa auto-scaler dalam memprediksi
workload yang akan datang.

6.2 Studi Literatur


Melakukan pencarian referensi, teori, dan data dari berbagai sumber
pustaka seperti jurnal, buku, dan website yang berhubungan dengan topik
yang dibahas di dalam penelitian tugas akhir.

6.3 Analisis dan Perancangan


Melakukan analisis dan perancangan dari sistem yang akan digunakan.
Diantaranya adalah kebutuhan yang harus disiapkan dan jenis data yang
dibutuhkan.

6.4 Implementasi
Melakukan implementasi dari algoritma prediksi forecasting dengan
model Long Short-Term Memory (LSTM) dengan dataset berupa timestamp
request HTTP .

6.5 Kesimpulan
Membuat kesimpulan berdasarkan data hasil implementasi.
7. JADWAL PENELITIAN TUGAS AKHIR

Minggu

NO Kegiatan 1 1
1 2 3 4 5 6 7 8 9 10 1 12 13 14 5 16

Studi
Literatur dan
1
Pengumpulan
data

Pengerjaan
2
Tugas Akhir

Analisis dan
3
Perancangan

4 Implementasi

5 Pengujian

6 Sidang

Pembuatan
7
Laporan

Tabel 1. Jadwal Penelitian Tugas Akhir

8. USULAN PEMBIMBING
- b
- a
DAFTAR PUSTAKA

[1] V. B and B. R, "Next generation cloud computing : new trends and research
directions," Future Generation Computer System, vol. 79, pp. 849-861,
2018.

[2] A. M and E. B. H, "Virtualization in cloud computing: existing solutions and


new approach," 2nd International Conference on Cloud Computing
Techonlogies and Applications (CloudTech), pp. 116-123, 2016.

[3] A.-D. Y, P. F, D. N and M. P, "Elasticity in cloud computing: state of the art


research challange," IEEE Trans Serv Computing, vol. 11, pp. 430-447,
2018.

[4] M. Imdoukh, I. Ahmad and M. G. ALfailakawi, "Machine learning-based


auto-scaling for containerized applications," in Neural Computing and
Applications, Kuwait, 2019.

[5] P. R, M. T and B. Y, "Difficulity of training Recurrent Neural Networks," in


International Conference on Machine Learning, 2013.

[6] Docker, Inc., "What is a Containers?," Docker, [Online]. Available:


https://www.docker.com/resources/what-container/. [Accessed 10 12 2022].

[7] Google Cloud, "What are Containers?," Google, [Online]. Available:


https://cloud.google.com/learn/what-are-containers. [Accessed 15 12 2022].

[8] Docker, "Orchestration," [Online]. Available: https://docs.docker.com/get-


started/orchestration/. [Accessed 18 12 2022].

[9] E. Truyen, D. V. Landuyt, D. Preuveneers, B. Lagaisse and W. Joosen, "A


Comprehensive Feature Comparison Study of Open-Source Container
Orchestration Frameworks," in Computer Science , 2019.

[10] A. Tsantekidis, N. Passalis and A. Tefas, "Deep Learning for Robot


Perception and Cognition," Thessaloniki, Greece, 2022.
[11] M. G.-A. M. M. Ali Shahidinejad, "Resource provisioning using workload
clustering in cloud computing environment: a hybrid approach," in Cluster
Computing, Urmia, 2020.

[12] A. K. Mohammad Masdari, "A survey and classification of the workload


forecasting methods in cloud computing," in Cluster Computing, Urmia,
Iran, 2020.

[13] VMware, "What is container orchestration?," VMware, [Online]. Available:


https://www.vmware.com/topics/glossary/content/container-orchestration.
[Accessed 20 12 2022].

[14] R. Moreno-Vozmediano, R. S. Montero and E. H. a. I. M. Llorente,


"Efficient resource provisioning for elastic Cloud services based on machine
learning techniques," in Journal of Cloud Computing: Advances, System and
Application, London, 2019.

[15] H. Zhao, H. Lim, M. Hanif and C. Lee, "Predictive Container Auto-Scaling


for Cloud-Native Applications," in 2019 International Conference on
Information and Communication Technology Convergence (ICTC), Jeju,
South Korea, 2019.

[16] Amazon Web Services, "AWS Auto Scaling," Amazon, [Online]. Available:
https://aws.amazon.com/autoscaling/. [Accessed 17 12 2022].

Anda mungkin juga menyukai