KONSEP, KELEBIHAN, KEKURANGAN CONTAINERIZATION BERSERTA TEKNOLOGI DAN STUDI KASUS CONTAINERIZATION
Konsep
Containerization
Containerization
memungkinkan container untuk berjalan di environment yang berbeda dengan cara
mengabstraksi sistem operasi dan infrastruktur fisik. Sebuah aplikasi yang
dijadikan container berbagi kernel host operating system dengan container yang
lain. Bagian sistem operasi yang dibagi itu bersifat “Read-only”. Biasanya,
dalam satu container hanya terdapat satu buah service atau microservice.
Kelebihan :
1. Menjalankan
container tidak menggunakan banyak sumber daya. Jadi seseorang dapat menambahkan
lebih banyak beban kerja komputasi pada server yang sama.
2. Dibandingkan
dengan mesin virtual, ukuran rata-rata suatu container berada dalam kisaran
puluhan atau ratusan MB, sedangkan mesin virtual mengkonsumsi beberapa
gigabytes. Server dapat menampung lebih banyak kontainer.
3. Kontainer
cepat! Membuat container hanya membutuhkan beberapa detik. Waktu respons cepat
ketika menyangkut aktivitas pengguna. Kontainer membantu mengurangi waktu yang
dibutuhkan untuk pengembangan, pengujian, dan penyebaran.
4. Menemukan
kesalahan dan menyelesaikannya mudah dengan container. Mengapa ? Karena tidak
ada perbedaan antara menjalankan aplikasi secara lokal atau pada server uji.
Kekurangan
:
1. Keamanan
adalah masalah dengan virtualisasi berbasis container dibandingkan dengan mesin
virtual tradisional. Dalam container, Kernel dan komponen lain dari sistem
operasi host dibagikan. Mereka memiliki akses root! Jadi container kurang
terisolasi satu sama lain. Secara keseluruhan, itu tergantung pada jenis
aplikasi dan modifikasi.
2. Ada
kurang fleksibilitas dalam sistem operasi. Jika Anda ingin menjalankan
kontainer dengan sistem operasi yang berbeda, Anda harus memulai server baru.
Teknologi
yang digunakan untuk Containerization
Docker adalah sebuah
platform containerization yang sangat populer dan semakin populer. Docker memberikan
kemudahan untuk menggunakan ataupun membangun 'isolated' environment untuk
aplikasi. Penggunaan containerization dapat membantu kita dalam memahami konsep
microservices, dimana satu container hanya untuk satu fungsi saja.
Bagaimana penggunaan Docker
itu sendiri?
Docker dapat kita jalankan
melalui terminal dengan command yang cukup sederhana, seperti pada gambar
berikut.
Menyalakan dan mematikan
sebuah container dapat dilakukan dengan command 'start' dan 'stop' melalui
command line, demikian juga untuk melihat informasi container apa saja yang
sedang berjalan dengan command ‘docker ps’.
Untuk memulai menggunakan
Docker pun sesederhana melakukan download dan install docker, kemudian Docker
dapat digunakan melalui command line. Serupa dengan virtualization yang membuat
VM melalui image dari OS, containerization pada docker pun membutuhkan image
untuk dapat menyalakan sebuah containers. Sebagai contoh, untuk dapat
menjalankan 'docker start mysql' kita perlu memiliki image dari container
tersebut terlebih dahulu, bisa melalui Docker Hub ataupun membuatnya sendiri
dengan menggunakan Dockerfile. Setelah memiliki image terkait,
kita bisa menjalankannya dengan menggunakan perintah 'docker run', dimana pada
momen tersebut kita dapat melakukan berbagai konfigurasi seperti port
forwarding, pemberian nama untuk container yang dibuat, bahkan melakukan pengaturan
environment variable dari container tersebut.
Demikian hal-hal paling minimum yang perlu diketahui untuk memulai petualangan ke negeri Docker. Masih banyak command pada Docker yang dapat dieksplorasi, seperti 'docker save' dan 'docker load' yang sangat berguna dalam development. Fungsi dua command tersebut sangat sederhana, namun sangat membantu developer dalam satu tim untuk memiliki konfugurasi yang sama. Contoh sederhananya adalah ketika kita mengembangkan aplikasi, kita bisa menggunakan docker container untuk MySQL dan melakukan berbagai konfigurasi terkait database (mungkin mengatur user, privillege, dll). Karena kita menjalankan MySQL Containers, maka dengan menjalankan command 'docker save' kita bisa membagikan image tersebut pada rekan satu tim, sehingga mereka cukup menggunakan 'docker load' dan akan memiliki image dari MySQL containers yang telah dikonfigurasi, sehingga satu tim memiliki environment MySQL yang sama.
Studi
kasus implementasi dari Containerization
Perancangan dan Implementasi Container dengan Konsep Swarm dan Metode
Ingress Load Balancing Menggunakan Docker
Masjid Alumni IPB ingin
mengembangkan suatu sistem yang disebut masjid berbagi. Masjid berbagi
merupakan suatu sistem berbasis aplikasi web dan mobile dan terhubung ke cloud.
Masjid berbagi dibuat untuk pengelolaan dan berbagi informasi tentang kegiatan
masjid-masjid. Semua aplikasi dan informasi disimpan pada server masjid berbagi
sehingga server masjid berbagi harus dapat melayani permintaan oleh
masjid-masjid. Pada penelitian ini bertujuan untuk perancangan dan implementasi
container menggunakan docker dengan menerapkan docker swarm dan load balancing
ingress. Penelitian ini dibagi kedalam empat tahap utama yaitu komunikasi
(analisis lingkungan), penerapan container, pengujian dan analisis. Pada
penelitian dilakukan perbandingan penerapan dengan satu sampai lima container
untuk mengetahui pengaruh banyak container dengan respon server, request yang
dapat dilayani dan throughput. Hasil penelitian menunjukkan semakin banyak
container lebih baik daripada hanya menggunakan satu container karena dapat
meningkatkan respon time dan banyak sucess request. Tetapi banyaknya container
harus tetap diperhatikan.
References
K, Y. (2018, Mei 03). Docker Tutorial : Pengenalan Awal &
Instalasi. Retrieved from NIAGA HOSTER:
https://medium.com/network-evolution/penjelasan-mudah-untuk-memahami-container-f8ad6d482cea#:~:text=Containerization%20memungkinkan%20container%20untuk%20berjalan,system%20dengan%20container%20yang%20lain.
Mengenal
Teknologi Containerization. (2017, 03). Retrieved from nostratech:
http://blog.nostratech.com/2017/03/mengenal-teknologi-containerization.html
Komentar
Posting Komentar