## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i1.1729

## Implementasi High Availability Cluster Web Server Menggunakan Virtualisasi Container Docker
Muhammad Aldi Aditia Putra * , Iskandar Fitri, Agus Iskandar
Fakultas Teknologi Komunikasi dan Informatika, Informatika, Universitas Nasional, Jakarta, Indonesia Email: 1,* aldiaditiaputra@gmail.com, 2 tektel2001@yahoo.com, 3 agusiskandar1005@gmail.com
*) Email Penulis Korespondensi: aldiaditiaputra@gmail.com
Abstrak− Meningkatnya permintaan akan kebutuhan informasi dalam internet menyebabkan jalannya beban trafik pada web server semakin banyak. Maka dari itu dapat menyebabkan beban kerja pada suatu layanan web server mengalami kelebihan beban  (request),  sehingga  server  tersebut  mengalami  down  (overload).  Berdasarkan  penelitian  terdahulu  penerapan  load balancing dapat mengurangi beban traffic pada web server. Metode penelitian ini menggunakan load balancing pada server dengan  algoritma  round  robin  dan  least  connections  juga  single  server  sebagai  pembanding.  Parameter  yang  diukur  yaitu throughput, responses time, request per second, CPU utilization. Dari hasil pegujian didapat sistem load balancing Haproxy, algoritma  least  connection  lebih  unggul  dibandingkan  algoritma  round  robin.  Dihasilkan  nilai  request  per-detik  sebesar 2607.141 req/s dan  throughput  sebesar 9.25 MB/s untuk  least connection, sedangkan 2807.171 req/s dan 9.30 MB/s untuk round robin.
Kata Kunci: Cluster, Container, Docker, Load Balancing, Web Server
Abstract −The increasing demand for information on the internet causes the traffic load on the web server to increase. Therefore it can cause the workload on a web server service to be overloaded (request), so that the server is down (overloaded). Based on previous research the application of load balancing can reduce the burden of traffic on the web server. This research method uses load balancing on servers with round robin algorithm and least connections as well as a single server as a comparison. The parameters  measured  are  throughput,  responses  time,  requests  per  second,  CPU  utilization.  From  the  test  results  obtained Haproxy load balancing system, the least connection algorithm is superior to the round robin algorithm. Generated per-second request value of 2607,141 req / s and throughput of 9.25 MB / s for the least connection, while 2807,171 req / s and 9.30 MB / s for round robin.
Keywords : Cluster, Container, Docker, Load Balancing, Web Server

## 1. PENDAHULUAN
Meningkatnya permintaan akan kebutuhan informasi dalam internet menyebabkan jalannya beban traffic data pada web server semakin banyak akibat terlalu banyaknya request. Maka dari itu dapat menyebabkan beban kerja pada suatu  layanan web  server mengalami  kelebihan  beban  ( request ),  sehingga server tersebut  mengalami down ( overload ). Untuk menanggulangi permasalahan beban yang belebihan dalam suatu server maka diterapkannya konsep clustering , yaitu suatu teknologi untuk menggabungkan beberapa server untuk bekerja secara bersamaan yang  merupakan  seperti  satu  sistem  tunggal.  Dalam  pengimplementasiannya, clustering  web  server perlu menggunakan metode load balancing supaya beban traffic setiap masing masing web server dapat berjalan dengan optimal [1].
Sebelumnya  berdasarkan  penelitian  yang  telah  dilakukan  oleh  Hasta  Triangga  dkk  dihasilkan  bahwa penggunaan algoritma static round-robin lebih efisien. Hal ini ditunjukkan oleh grafik CPU load dimana ketika menggunakan algoritma static round-robin nilai rata-rata yang diperoleh untuk beban CPU sedikit lebih kecil dan throghput lebih besar dibandingkan dengan penggunaan algrotima least-connection, nilai  yang diperoleh untuk beban CPU adalah 0.1 %; 0,25%; dan 1.15% [2]. Penelitian yang dilakukan oleh Maya Rosalia dkk dengan sistem Haproxy load balancer dapat melayani hingga 2352.937 req/s sedangkan pada single virtual server hanya sampai 1428.161 req/s [3]. Penelitian yang dilakukan oleh Dimas Setiawan Afis dkk hasil throughput yang didapatkan dari load balancing yang menggunakan algoritma least connection dan round robin memiliki hasil yang berbeda. Load balancing yang menerapkan algoritma leastconn memberikan hasil throughput yang lebih  baik  dari  pada algoritma round robin [4].
Berdasarkan perancangan tersebut maka penerapan load balancing pada cluster web server menggunakan virtualisasi container docker dapat lebih efisien. Dikarenakan cluster web server adalah untuk  menggabungkan beberapa server dalam satu  kesatuan yang saling terhubung  satu  sama lain dan juga diperlukannya sistem load balancing menggunakan algoritma round robin dan least connection yang bekerja sebagai pembagi beban kerja traffic pada web server . Maka dari itu, untuk meminimalisir terjadinya overload pada web server diperlukannya load balancing web server agar dapat lebih mudah membagi beban kerja secara merata pada sebuah web server dibandingkan dengan menggunakan single server .

## 2. METODE PENELITIAN
Dalam penggunaan web server clustering dibutuhkannya solusi untuk menangani permasalahan yang terjadi pada kinerja  suatu web  server akibat  terlalu  banyaknya request dari client sehingga  meningkatnya  skalabilitas  pada

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i1.1729
sistem terdistribusi. Maka load balancing menjadi solusi dalam menangani beban kerja pada web server . Tools yang digunakan pada load  balancing adalah HAProxy  yang merupakan open source untuk load  balancing dan dengan tujuan untuk  menangani permasalahn request yang berlebihan pada web server (overload) [5].

## 2.1 Kebutuhan Perangkat
Terdapat  beberapa  perangkat  yang  digunakan  dalam  penelitian  dalam  perancangan  sistem,  perangkat  yang dibutuhkan terdiri dari hardware dan software diantaranya: 1. Hardware : Laptop Windows 10, Processor i3-5005U, CPU 2.00GHz, RAM DDR3 8GB, HDD 500GB
2. Software : OS Ubuntu Server 16.0 (RAM 2GB memory 16MB pada masing – masing di Ubuntu server ).
3. Tools pendukung: HAProxy ( tools load balancing) dan Apache Benchmark ( tools pengujian load balancing pada web server ).
2.2 Perancangan Desain Sistem

## Gambar 1. Perancangan Desain Sistem
Rancangan topologi pada Gambar 1 dibangun menggunakan beberapa server dengan menggunakan konsep clustering yang  dimana  berguna  untuk  menggabungkan (replicate) beberapa server menjadi  satu  kesatuan  dan metode yang digunakan dalam clustering adalah load balancing yang ditujukan untuk membagi rata beban kerja pada suatu web server agar tidak terjadi down di salah satu server akibat terlalu banyaknya request dari client . load balancing berperan penting dalam pembagian data yang terjadi di sebuah web server. teknologi virtualisasi dapat  lebih  mudah  membuat  sebuah  simulasi  dari  perangkat  keras,  sistem  operasi,  dan  jaringan.  Virtualisasi digunakan  sebagai  sarana  untuk  improvisasi  skalabilitas  dari  perangkat  keras  yang  ada,  dengan  virtualisasi beberapa sistem operasi atau OS dapat berjalan secara bersamaan pada satu buah komputer. Aplikasi docker yang merupakan open source dapat lebih mudah mengemas ( replicate ) sebuah software aplikasi yang dibutuhkan pada web server dengan wadah yang disebut dengan container .  docker sendiri memiliki mode swarm yang digunakan untuk  mendistribusikan  permintaan  pada  setiap node  –  node secara  seimbang.  Swarm  memiliki  2  jenis  node, masing – masing node tersebut memiliki peran. Node utama berperan sebagai manager ( master ) untuk memantau

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i1.1729
kinerja note lainnya. Sementara note yang lain akan berperan sebagai worker , dimana kerja worker tersebut hanya untuk mejalankan tugas dari node manager tersebut. Kelebihan dari Docker swarm adalah jika salah satu service mati maka service akan digantikan dengan yang aktif [6].
Tabel 1 . List Container No Hostname Ip Address Operating System Memory CPU 1 CT1 192.168.43.100 Ubuntu Server 2GB 2 core 2 CT2 192.168.43.101 Ubuntu Server 2GB 2 core
Tabel  diatas  merupakan  spesifikasi  yang  diperlukan  dalam  membuat  sistem  pada container docker  dan berapa  jumlah  container  yang  diperlukan  pada  penelitian  ini.  Semua Container akan  diisi  dengan web  server aplikasi  dengan  mengetahui  pemanfaatan  sumberdaya  computer  dengan  menggunakan  virtualisasi container docker dan menjalankan serangkaian tes dan uji coba dengan aplikasi docker di virtual-machine dengan metode load balancing pada web server [7].

## 3. HASIL DAN PEMBAHASAN

## 3.1 Parameter Pengujian
Parameter pengujian yang dilakukan pada sistem load balancing, diantaranya: throughput, response time, request per second, dan CPU utilization [8]. 1. Throughput
Throughput adalah bandwidth aktual  yang  terukur  pada  ukuran  waktu  tertentu  di  jaringan.  Pengujian  pada throughput merupakan  parameter  variabel  dari  QoS  ( Quality  of  Service )  yang  ditujukan  untuk  melihat performansi  jaringan  dari  segi  kecepatan  pengiriman  paket  yang  dilakukan  dengan  mengirim  dan memanfaatkan bandwidth yang ada.
2. Response Time
Pengujian response time ditujukan guna mengukur seberapa cepat suatu container dapat menerima request dari client .
3. Request per second
Pengujian request per second dilakukan dengan mengirim layanan per satuan detik dari client yang kemudian dikirimkan ke web server untuk mengetahui kinerja server yang menggunakan sistem load balancing . 4. CPU Utilization
Pengujian dilakukan untuk  meninjau penggunaan resources oleh container dari  sisi  CPU ( processor ) untuk melihat perbedaan penggunaan CPU pada setiap container saat menjalankan load balancing .

## 3.2 Skenario Pengujian
Skenario  pengujian  dilakukan  pada  setiap web  server aplikasi  yang  ada  dalam container ,  pengujian  dilakukan untuk  melihat kemampuan web server dengan load balancing dan web server tanpa load balancing . Dilakukan permintaan  ( request )  untuk  menguji  kemampuan web  server , request yang  diuji  sebesar  1000,  3000,  5000  dan 7000 [9]. Adapun skenarionya sebagai berikut:
1. Pengujian dengan load balancing menggunakan algoritma Round Robin dan least connections . 2. Pengujian tanpa load balancing menggunakan Single Server .

## 3.3 Hasil Pengujian
Gambar 2. Hasil Pengujian Nilai Throughput 0 5 10 15 1000 3000 5000 7000 M B/ s Request T H R O U G H P U T round robin least connections single server

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i1.1729
Dari diagram diatas menunjukkan apabila nilai throughput naik dikarenakan meningkatnya jumlah beban ( request )  yang  dimasukkan,  apabila  semakin  besar  nilai throughput yang  diberikan maka  performansinya  akan semakin bagus nilai throughput yang didapat. Dari hasil pengujian yang dilakukan dengan sistem load balancing menggunakan algoritma round robin dan least connections maka nilai throughput yang didapat secara keseluruhan lebih baik dibandingkan dengan single server , dikarenakan dapat lebih mudah melayani permintaan request yang datang secara bersamaan apabila menggunakan sistem load balancing karena server yang digunakan lebih dari satu server .  Maka  nilai throughput cenderung  baik  dengan  menggunakan  algoritma round  robin dan least connections dibandingkan dengan single server . Karena nilai dari hasil maksimal throughput sebesar 9.22 MB/s apabila server tersebut menerima 7000 request dengan sistem load balancing yang menggunakan algoritma round robin pada docker, untuk algoritma least connections sebesar 9.25 MB/s.
Gambar 3. Hasil Pengujian Nilai Response Time
Hasil  pengujian  dari  2 server dengan  menggunakan round  robin dan least  connections dapat  lebih  stabil dibandingkan dengan Single Server . Karena nilai response time yang didapat  lebih kecil dengan menggunakan round robin dan least  connections , karena single server hanya menggunakan 1 buah web server . maka dari  itu nilai response time yang didapat  sangat besar dan membutuhkan waktu  yang sangat lama apabila mendapatkan request dari client .  Berdasarkan  nilai response time yang  telah  diuji  rata-rata  yang  didapat  pada  sistem load balancing menurun  karena  nilai throughput yang  didapat  cenderung  naik  maka  akan  lebih  cepat  untuk mengirimkan response pada client . Dibandingkan dengan response yang didapat pada single server . Nilai response time pada  Docker  dengan  request  7000  data    menggunakan  algoritma Round Robin yaitu  2,128 second dan algoritma least connections yaitu 2,127 second .
Gambar 4. Hasil Pengujian Request Per Second
Dari  grafik  diatas  menunjukkan  bahwa  menggunakan round  robin dan least  connections maka  jumlah request yang diterima akan lebih besar,dan performasi dari server juga akan lebih baik. Dikarenakan jumlah user yang semakin meningkat. Hal ini membuktikan bahwa dengan menggunakan round robin dan least connections pada web server , data yang dikirim juga akan dibagi menjadi rata disetiap masing – masing server dibandingkan dengan hanya menggunakan satu single web server dalam menerima permintaan banyaknya request dari client . Dengan menggunakan algoritma Round Robin dihasilkan nilai maksimal yaitu 2807.171 Req/s, least connections dengan nilai 2607.141 Req/s.
0 1 2 3 4 1000 3000 5000 7000 Seco n d (s ) Request R E S P O N S E  T I M E round robin least connections single server
0 1000 2000 3000 4000 1000 3000 5000 7000 R eq/ s Request R E Q U E S T / S E C round robin least connections single server

## JURNAL MEDIA INFORMATIKA BUDIDARMA
ISSN 2614-5278 (media cetak), ISSN 2548-8368 (media online) Available Online at https://ejurnal.stmik-budidarma.ac.id/index.php/mib DOI 10.30865/mib.v4i1.1729
Gambar 5. Hasil pengujian CPU Utilization
Pada pengujian CPU utilization , nilai penggunaan CPU didapat dengan menggunakan aplikasi htop untuk memonitoring resource yang terpakai  pada server, Semakin kecil persentase penggunaan CPU yang dihasilkan maka semakin bagus sistem tersebut dan juga semakin ringan sistem tersebut untuk dijalankan pada server [10]. terlihat  bahwa Single  Server selalu  mendapat  nilai  CPU utilization lebih  tinggi  dibanding  dengan  sistem  yang menggunakan round robin dan least connections . Hal tersebut disebabkan karena penggunaan dalam single server mendapatkan  beban  kerja  yang  jauh  lebih  tinggi  dibandingkan  dengan  menggunakan round  robin dan least connections . Terjadi penurunan pada sistem load balancing dengan menggunakan algoritma round robin dan least connections karena beban kerja dibagi secara merata pada server lainnya dan tidak terpusat pada satu buah web server .  Maka menggunakan konsep clustering web server pada virtualiasasi container docker akan menghemat penggunaan resource yang ada.

## 4. KESIMPULAN
Berdasarkan pengujian yang dilakukan, dapat disimpulkan bahwa:
1. Ditinjau dari segi performansi, kemampuan sistem load balancing dengan dua buah web server cluster dalam melayani request client jauh  lebih  baik  dibandingkan  dengan Single  Server ,  karena  mengacu  pada  konsep cluster computing dimana penggunaan cluster dalam  sebuah server tidak  membebankan atau  terpusat  pada satu server saja sehingga tidak memberatkan server .
2. Pada sistem load balancing Haproxy, algoritma least connection lebih unggul dibandingkan algoritma round robin . Dihasilkan nilai request per-detik sebesar 2607.141 req/s dan throughput sebesar 9.25 MB/s untuk least connection , sedangkan 2807.171 req/s dan 9.30 MB/s untuk round robin .
3. CPU Utilization yang didapat dengan menggunakan load balancing menggunakan algoritma round robin dan algoritma least connections menghasilkan nilai total yang lebih kecil dibanding single server .

## REFERENCES
[1] Y. T. Sumbogo, M. Data, dan R. A. Siregar, “Implementasi Failover dan Autoscaling Kontainer Web Server Nginx Pada Docker Menggunakan Kubernetes,” J. Pengemb. Teknol. Inf. dan Ilmu Komput. Univ. Brawijaya , vol. 2, no. 12, hal. 6849–6854, 2018.
[2] H. Triangga, I. Faisal, dan I. Lubis, “Analisis Perbandingan Algoritma Static Round-Robin dengan Least-Connection Terhadap Efisiensi Load Balancing pada Load Balancer Haproxy,” J. Nas. Inform. dan Teknol. Jar. , vol. 4, no. 1, hal. 70–75, 2019.
[3] M. Rosalia, R. Munadi, dan R. Mayasari, “Implementasi High Availability Server Menggunakan Metode Load Balancing Dan Failover Pada Virtual Web Server Cluster,” e-Proceeding Eng. , vol. 3, no. 3, hal. 4496–4503, 2016.
[4] M.  Rexa,  M.  Bella,  M.  Data,  dan  W.  Yahya,  “Implementasi  Load  Balancing  Server  Web  Berbasis  Docker  Swarm Berdasarkan Penggunaan Sumber Daya Memory Host,” vol. 3, no. 4, hal. 3478–3487, 2019.
[5] D. S. Afis, M. Data, dan W. Yahya, “Load Balancing Server Web Berdasarkan Jumlah Koneksi Klien Pada Docker Swarm,” vol. 3, no. 1, hal. 925–930, 2019.
[6] T.  P.  Kusuma,  R.  Munadi,  dan  D.  D.  Sanjoyo,  “Implementasi  dan  Analisis  Computer  Clustering  System  dengan Menggunakan Virtualisasi Docker,” e-Proceeding Eng. , vol. 4, no. 3, hal. 1–6, 2017.
[7] M. F. R. Bik, “Implementasi Docker Untuk Pengelolaan Banyak Aplikasi Web (Studi Kasus : Jurusan Teknik Informatika UNESA),” J. Manaj. Inform. , vol. 7, no. 2, hal. 46–50, 2017.
[8] R.  A.  Pratama,  R.  Mayasari,  dan  D.  D.  Sanjoyo,  “Implementasi  Web  Server  Cluster  Menggunakan  Metode  Load Balancing Pada Container Docker, Lxc, Dan Lxd,” e-Proceeding Eng. , vol. 5, no. 3, hal. 5028–5035, 2018.
[9] M. A. Nugroho dan R. Kartadie, “Analisis Kinerja Penerapan Container untuk Load Balancing Web Server,” JIPI (Jurnal Ilm. Penelit. dan Pembelajaran Inform. , vol. 1, no. 02, hal. 7–15, 2016.
[10]  R.  Li,  Y.  Li,  dan  W.  Li,  “An  Integrated  Load-balancing  Scheduling  Algorithm  for  Nginx-Based  Web  Application Clusters,” J. Phys. Conf. Ser. , vol. 1060, no. 1, 2018.
0 50 100 1000 3000 5000 7000 P ercen t (% ) Request C P U  U T I L I Z AT I O N
load balancing
least connections single server