Perbedaan VM (Virtual Machine) dengan Container

Perbedaan VM (Virtual Machine) dengan Container


Dasar dari berjalannya aplikasi tentu saja membutuhkan server, network, infrastruktur hardware, bahkan storage. Dengan teknologi virtualisasi kita bisa menggunakan virtual machine dan container sebagai pengganti itu semua. Lalu apa itu container? apa bedanya dengan virtual machine?

Definisi Container

Container adalah paket atau aplikasi yang mengandalkan isolasi virtual untuk menjalankan aplikasi yang dapat menjalankan sistem operasi kernel secara simultan tanpa memerlukan mesin virtual (VMs).

Jika kita flashback kembali ke tahun 60–70an. Proses isolasi virtual sudah ada dan dikembangkan sebagai bagian dari Linux. Saat itu isolasi proses dilakukan pada chroot. Bentuk modernnya saat ini diekspresikan dalam bentuk containerization, seperti pada aplikasi docker dan LXC. Kedua jenis bentuk container ini menjadi dasar bagi developer untuk menaruh aplikasi dari infrastruktur yang ada dibawahnya / mendasarinya.

Container juga memiliki image. Image ini dianalogikan sebagai disk dimana aplikasi / sistem operasi sudah terkonfigurasikan dapat berjalan. Sebagai contohnya, Jika kita ingin menjalankan webserver yang memiliki database, dan aplikasi server didalamnya. Kita bisa menggunakan teknologi container ini yang dimana berjalan masing masing.

Bagaimana Cara Kerja Container ?

Container menyediakan fleksibilitas secara keseluruhan dibanding kita menggunakan server secara fisik dan virtual machine. Container dapat langsung berjalan diatas Sistem Operasi (OS) tanpa menggunakan hypervisor. Seperti pada gambar berikut, container berjalan secara langsung diatas Sistem Operasi (OS). Container dapat membagi resource pada OS beserta fungsinya. Hal ini sangat menguntungkan secara performa dan penggunaan resource dikarenakan aplikasi yang digunakan hanya menggunakan resource berdasarkan apa yang dipakai saja.

Apa Perbedaan Container dengan Virtual Machine ?

Kedua teknologi ini berjalan diatas virtualisasi. Namun, antara container dan virtual machine memiliki perbedaan yang mendasar. Apa saja perbedaannya ?

1. Alokasi resource pada Container dan Virtual Machine berbeda

Virtual Machine mengambil resource berdasarkan pengaturan yang sudah ditentukan saat instalasi. Alokasi ini bersifat terisolasi. Sebagai contohnya VM 1 memiliki pengaturan RAM 2 GB dan kapasitas HDD 120 GB. Saat VM 1 dijalankan. VM 1 hanya bisa menggunakan RAM maksimal sebanyak 2 GB. Ketika VM 1 hanya menggunakan sedikit penggunaan RAM (misalnya hanya 512 MB). Resource sisa dari penggunaan tersebut tetap menjadi milik VM 1 dan tidak dapat digunakan dengan VM lainnya. Hal ini berbeda dengan container. Container memiliki alokasi resource yang dapat dibagi langsung oleh Host Server itu sendiri. Container akan mengambil alokasi resource yang ada di Hardware sesuai dengan yang container butuhkan

2. VM Membutuhkan Hypervisor sedangkan Container Tidak

VM hanya dapat berjalan pada hypervisor. Sedangkan Container tidak. Hal inilah yang menjadi perbedaan dasar dari arsitektur VM dan Container. Container dapat berjalan langsung diatas Sistem Operasi. Sedangkan VM tidak.

3. Penggunaan Kernel

Pada dasarnya VM menggunakan kernel tersendiri untuk menjalankan aplikasi didalamnya. Sedangkan container tidak diizinkan untuk mengakses kernel.

Komentar