Anda di halaman 1dari 5

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Teknologi virtualisasi dewasa ini makin banyak diminati karena efisiensinya


yang tinggi dan kemudahan penggunaan dan maintenance yang ditawarkan.
Dengan virtualisasi, pengguna dapat memanfaatkan 70% hingga 80% tingkat
utilisasi perangkat keras yang awalnya hanya 10% hingga 15% [1] pada teknologi
konvensional.

Teknologi virtualisasi banyak digunakan dalam cloud computing. Sumber


daya yang divirtualisasi pada cloud dapat diatur lebih efisien dan lebih mudah.
Dalam sebuah survey yang dilakukan oleh RightScale pada Januari 2017 kepada
sejumlah 1002 responden dengan 485 diantaranya adalah penggiat enterprise
dengan jumlah karyawan lebih dari 1000 orang, 95% diantaranya telah mengadopsi
Cloud Computing, baik dalam private cloud, public cloud, maupun hybrid cloud.
Jumlah ini diprediksi akan terus bertambah seiring dengan kepopuleran cloud
computing dan kemudahan yang ditawarkan, terlebih untuk enterprise.

Cloud computing bergantung pada teknologi virtualisasi yang membutuhkan


sumber daya seperti server dan membagi-baginya menjadi sumber daya virtual
yang disebut Virtual Machine (VM) [2]. Performansi dari sebuah VM mempunyai
dampak yang sangat besat terhadap overall performance dari sebuah aplikasi cloud
[13]. Level abstraksi tambahan yang digunakan ketika mengimplementasikan
virtualisasi dapat mengurangi workload performance. Terlebih lagi VM terkenal
mempunyai overhead yang besar sehingga sangat mempengaruhi performansinya.
Hal ini menjadi pertimbangan yang cukup besar mengingat cloud computing
membutuhkan kinerja yang baik.

Dibandingkan dengan VM, container terkenal akan overheadnya yang kecil,


sehingga memiliki performansi yang jauh lebih baik dari segi entitas virtualisasi
[2]. Container merupakan sebuah lightweight OS yang dapat berjalan baik pada host
system maupun server, yang menjalankan perintah native untuk Core CPU,
mengeliminasi kebutuhan akan level emulasi atau hanya dalam kompilasi waktu.
Container memungkinkan pengguna untuk menghemat konsumsi sumber daya
tanpa overhead virtualisasi dan juga menyediakan isolasi [3]. Selain itu, VM akan
melakukan boot up kernelnya sendiri, sedangkan container menggunakan kernel
milik host [13][14] sehingga boot up time container cenderung jauh lebih cepat
daripada VM [15].

Oleh karena itu, semakin ramai pengguna cloud computing beralih ke


container daripada VM dalam implementasinya, menjadikan service cloud yang
dijalankan lebih cepat diinisiasi dan memungkinkan untuk membangun suatu cloud
application yang besar dan scalable. Dalam satu dekade terakhir ini, lightweight
container-based virtualization telah menjadi alternatif untuk hypervisor-based
virtualization pada cloud [16][17]. Bahkan, dalam contoh kasus pada data center di
Google, sejumlah 2 milyar container dijalankan setiap minggunya, seperti yang
diberitakan oleh Jack Clark, The Register UK pada 23 Mei 2016. Selain itu,
perusahaan-perusahaan seperti Uber, ebey, dan Baidu pun mulai menggunakan
Docker dalam menyediakan layanannya [17]. Hal ini dikarenakan kontainerisasi
dinilai sebagai sebuah cara yang mudah dan efisien dalam berbagi sebuah bagian
dari OS dan membagikannya ke dalam banyak aplikasi terisolasi. Dibandingkan
dengan membangunkan sebuah VM yang memakan waktu dalam hitungan menit,
membangun sebuah container dapat dilakukan hanya dalam hitungan detik, karena
kita tidak perlu untuk menginisiasi sebuah OS.

Saat ini, berbagai nama produk Container terus bermunculan. Mulai dari
LXC, Docker, LXD, hingga container andalan CoreOS yang disebut-sebut sebagai
pesaing Docker dan memiliki keunggulan yang jauh lebih baik dari segi keamanan.
Dalam sebuah konferensi annual [4] yang khusus membahas teknologi Container,
ContainerCon, para peneliti seringkali membandingkan jenis container yang
digunakan dan container mana yang memiliki performansi paling baik dalam
aplikasi tertentu yang dijalankan. Hal inilah yang akan penulis bandingkan dalam
tugas akhir ini, yaitu menganalisis performansi dari tiga aplikasi cloud computing
yang paling populer, yaitu FTP Server, Mail Server, dan Web Server, yang
dijalankan pada tiga container yang paling sering disebut namanya, yaitu Docker,
LXC, dan LXD.
1.2. Penelitian Terkait

Sejak kemunculan teknologi chroot pada 1979 [13] dan perkembangan


namespace dan cgroups, para peneliti melakukan riset terkait perbandingan
performansi antara hypervisor dan container. Dalam [2] [3] dan [5] secara garis
besar membahas mengenai analisis komparasi antara container dan hypervisor
untuk diaplikasikan dalam Cloud Computing, baik dalam IaaS maupun PaaS dan
didapatkan hasil bahwa container memiliki perbedaan performansi yang sangat
kecil dengan hypervisor. Selain itu, Morabito [5] juga menyarankan untuk
membandingkan hasil tersebut dengan LXD. Gupta [20] membandingkan
performansi Docker, VM, dan LXD yang berjalan di atas VMware ESX
environment dan mendapati bahwa LXD bekerja sedikit lebih baik dari Docker
dalam hal multiprocessor test. Rabindra K Barik [2] menganalisis performansi VM
dalam segi Guest OS, efisiensi, keamanan, storage, isolation, networking, dan
bootup time dan seperti penelitian lainnya, overhead virtualisasi pada container
hampir dapat diabaikan namun memiliki overhead yang cukup signifikan pada
hardware ultilization. Sampathkumar [19] melakukan beberapa benchmark untuk
mengukur performansi CPU, memory, dan disk I/O pada infrastruktur LXC, Xen,
dan KVM dan menyimpulkan bahwa LXC lebih disarankan untuk
memvirtualisasikan infrastruktur yang secara desain bersifat dinamis dan tidak
membutuhkan isolasi sumber daya yang tinggi untuk permintaan infrastrukturnya.

Maka, dengan mengadaptasi dari penelitian-penelitian sebelumnya yang telah


dilakukan, tugas akhir ini akan membandingkan dan menganalisis performansi
antara native dan Container Docker, LXC, dan LXD yang menjalankan tiga buah
layanan cloud, yaitu FTP Server, Mail Server, dan Web Server dengan
menggunakan benchmark tools open source yang tersedia, yaitu sysbench dan
phoronix test suite untuk overall performance, dan apache benchmark dan Apache
jmeter untuk pengujian masing-masing layanan server.

1.3. Perumusan Masalah

Berdasarkan deskripsi latar belakang dan penelitian terkait, maka dapat


dirumuskan beberapa masalah di tugas akhir ini yaitu :
1. Apakah terdapat perbedaan performansi dalam menjalankan layanan cloud
pada container dan pada native?
2. Container mana yang memiliki tingkat performansi paling baik dari
container lainnya?
3. Dalam parameter apakah suatu container memiliki performansi yang lebih
baik?
4. Container apakah yang memiliki performansi paling baik saat menjalankan
layanan FTP Server?
5. Container apakah yang memiliki performansi paling baik saat menjalankan
Mail Server?
6. Container apakah yang memiliki performansi paling baik saat menjalankan
Web Server?

1.4. Batasan Masalah

Asumsi yang digunakan dalam penelitian ini adalah:


1. Server yang digunakan bekerja dalam kinerja terbaiknya sesuai klaim dan
spesifikasi yang tertera sehingga mengabaikan lagging yang mungkin
terjadi saat menjalankan penelitian ini.
2. Analisis yang dilakukan dari segi matrix overall performance dan layanan
Web Server, FTP Server, dan utilitas Mail Server
3. Layanan cloud yang diujikan adalah berbasis protocol TCP [13]
4. Konfigurasi networking pada masing-masing platform container
menggunakan default bridge yang sudah terinstall ketika container
diluncurkan.

1.5. Tujuan dan Manfaat Penelitian

Penelitian ini akan menganalisis performansi dari tiga Container yang


berbeda, yaitu Docker, LXC, dan LXD ketika menjalankan FTP Server, Mail
Server, dan Web Server, dan membandingkannya dengan performa dari native itu
sendiri berdasarkan matrix overall performance, yaitu pembacaan kecepatan RAM
Speed, IOzone Read/Write, dan CPU. Dari sisi layanan, dibandingkan waktu
masing-masing server yang terinstall dalam container ketika melayani HTTP
Request, FTP Request, dan juga ultilisasi server saat menjalankan Mail Server.
Diharapkan hasil dari penelitian ini dapat menjadi rujukan bagi penggiat enterprise
ataupun pengguna layanan cloud computing dalam memilih container sesuai
dengan service yang akan dijalankan.
Manfaat penelitian ini adalah memberikan rekomendasi kepada penggiat
layanan cloud tentang teknologi mana yang lebih baik digunakan, native atau
container, ketika akan menggunakan layanan FTP server, mail server, atau web
server.

1.6. Metodologi Penelitian


Metodologi dalam proses penyelesaian penelitian ini terdiri dari beberapa
tahapan yaitu:
1. Studi literatur
Melakukan pendalaman materi terkait topik containerization. Literatur yang
digunakan sebagai bahan rujukan dalam Tugas Akhir ini umumnya berasal
dari hasil penelitian dalam paper journal, paper conference, maupun dari
textbook international.
2. Perancangan
Melakukan perancangan arsitektur simulasi yang akan digunakan seperti
topologi jaringan dan lain-lain.
3. Simulasi
Mensimulasikan program sesuai arsitektur yang telah dirancang. Proses
simulasi antara satu container dengan yang lain dilakukan secara bergantian
di atas infrastruktur/hardware yang sama.
4. Pengujian dan analisis
Melakukan pengujian terhadap parameter-parameter overall performance
system dan lain.
5. Pembuatan laporan
Segala proses yang dilakukan pada tahap pengujian dan analisis akan
dibukukan.

Anda mungkin juga menyukai