Dibawah ini manakah pernyataan yang benar mengenai virtualisasi

Salah satu kendala yang paling awal saat dihadapi oleh tim developer pada saat melakukan pengembangan app adalah kekhawatiran jika aplikasi yang mereka kembangkan tidak berjalan secara sempurna ketika ketika dideploy. Perbedaan konfigurasi di environment milik seorang developer dengan server atau dengan developer yang lain merupakan penyebab utamanya. Hal ini juga sering dirasakan oleh sysadmin ketika mereka hendak mengupdate kernel. Ada beberapa app dalam server mereka jadi bermasalah karena belum mendukung kernel terbaru.

Sebenarnya solusi untuk permasalahan ini sudah ada sejak lama dengan hadirnya teknologi virtualisasi. Ada dua macam teknologi virtualisasi yaitu virtual machine dan container. Apa saja perbedaan dua teknologi virtualisasi ini? Mari kita kupas satu per satu dari teknologi virtualisasi tersebut.

Apa itu Virtual Machine

Virtual machine (VM) adalah sebuah emulasi dari sebuah sistem komputer. Secara sederhana, virtual machine membuat kita bisa membagi resource hardware dari satu hardware fisik menjadi beberapa sistem komputer.

Sebagai contoh, kita memiliki satu PC yang memiliki prosesor dengan 4 core, RAM sebesar 8 GB serta harddisk 500GB misalnya. Tanpa VM tentu kita hanya bisa menginstall 1 OS atau beberapa OS tapi tak bisa berjalan bersamaan. Dengan VM, kita bisa membagi sistem komputer menjadi dua masing-masing memiliki prosesor 2 core,  RAM 4GB, serta harddisk 250GB dan tentu saja pembagian resource hardware tidak harus sama rata. Dengan ini, maka kita dapat menginstall OS di setiap sistem komputer dan dapat menjalankannya secara bersamaan sehingga kita seolah memiliki 2 PC yang berbeda.

Teknologi ini sering digunakan untuk server dan memunculkan istilah Virtual Private Server (VPS) tapi sedikit pula digunakan oleh app developer karena project yang sedang dikerjakannya memiliki platform yang berbeda dengan platform yang dimiliki.

Keunggulan VM

  • Resource hardware yang eksklusif sehingga tidak terganggu jika ada apps yang lain tiba-tiba membutuhkan resource yang tinggi
  • Memiliki management tools dan security tools yang sudah matang
  • Secara umum memiliki tingkat keamanan sedikit lebih tinggi bila dibandingkan dengan container

Apa Itu Container

Berbeda dari VM, container adalah sebuah virtualisasi OS yang dapat membungkus suatu aplikasi beserta dependency dan environment-nya. Setiap container ini memiliki process yang terisolir sehingga tidak mengganggu host OS ataupun container yang lain. Prinsip container ini mirip dengan kontainer yang ada di kapal kargo di mana kapal kargo tersebut diibaratkan sebagai sistem komputer.

Jika dibandingkan dengan VM, secara pengaturan kontainer lebih mudah. Hal ini disebabkan karena konsep berbagi resource hardware dari container lebih fleksibel bila dibandingkan VM. Sebagai contoh, tadi disebutkan bahwa kita mempunyai 1 PC dengan 4 Core, RAM 8 GB, dan storage sebesar 500GB. Katakanlah kita mempunyai 2 container dengan kebutuhan RAM berbeda. Beberapa apps dalam container A membutuhkan RAM 5GB sedangkan apps dalam container B membutuhkan RAM 2GB. Dengan container, kita tak perlu menset kebutuhan hardware resource setiap container karena berada dalam satu sistem komputer. Sementara jika kita memakai VM dengan hardware resource yang sudah kita bagi sama rata seperti disebutkan di contoh sebelumnya, kita tidak mungkin memasang apps di container A di salah satu sistem komputer karena RAM maksimal yang bisa kita pakai hanyalah 4GB.

Faktor portabilitas juga menjadi kelebihan yang dimiliki oleh container. Para developer bisa membagikan container dengan format ISO image ke setiap perangkat yang dia pakai ataupun ke developer lain.

Platform Container

Linux Containers (LXC)

Platform ini merupakan cikal bakal lahirnya container. Linux Containers (LXC) ini adalah virtualisasi OS yang memungkinkan kita menjalankan beberapa sistem Linux di dalam satu sistem komputer secara bersamaan. Tentu saja platform ini hanya berlaku untuk Linux saja.

Docker

Pada awalnya, project pertama Docker adalah membangun single app LXC container, mengenalkan beberapa perubahan pada LXC sehingga lebih portabel dan fleksibel. Lama-kelamaan Docker berkembang hingga memiliki container runtime sendiri.

Keunggulan Container

  • Fleksibel dan scalable
  • Mengurangi resource yang dibutuhkan dalam IT Management
  • Waktu yang dibutuhkan untuk mengemas dan memasang app dalam container lebih cepat bila dibandingkan dengan VM

VM vs Container (Final Round)

Secara singkat, perbedaan antara VM dan Docker dapat dijabarkan dalam tabel berikut :

Virtual Machine

Container

Berat

Ringan

Performa terbatas pada konfigurasi VM

Performa maksimum tergantung pada hardware fisik

Virtualisasi pada level hardware

Virtualisasi pada level OS

Waktu start up dalam hitungan menit

Waktu start up dalam hitungan detik

Terisolasi penuh pada level hardware sehingga lebih aman

Terisolasi pada level proses

Tentu jika melihat rangkuman perbedaan antara VM dan Docker pada tabel di atas kita tahu bahwa VM dan container memiliki fungsi masing-masing. Untuk project yang bersifat monolitik di mana setiap apps yang kita kembangkan membutuhkan environment dan dependencies yang tidak terlalu berbeda maka menggunakan VM lebih bijak. Akan tetapi jika kita menggunakan arsitektur microservices dalam pengembangan software, penggunaan container lebih dianjurkan.

***

Jika Anda tertarik dalam pengembangan software dengan arsitektur microservice menggunakan Docker dan Kubernetes, Anda dapat mengikuti workshop cloud native di Inixindo Jogja.

Sebelumnya saya sudah membahas tentang Cloud Computing , salah satu teknologi yang sedang sangat berkembang di indonesia. masih berkaitan dengan dunia virtualisasi kali ini saya akan sedikit menjelaskan tentang pengertian Hypervisor. oke check it out…

Pengertian Hypervisor


Hypervisor adalah sebuah teknik virtualisasi yang memungkinkan beberapa operating system untuk berjalan bersamaan pada sebuah host. Dikatakan teknik virtualisasi karena OS yang ada bukanlah sebuah OS yang sesungguhnya, hanya sebuah virtual machine saja. Tugas dari hypervisor adalah untuk mengatur setiap operating system tersebut sesuai dengan gilirannya agar tidak mengganggu satu dengan yang lainnya. Terkadang, hypervisor juga disebut sebagai Virtual Machine Management (VMM), sesuai dengan tugasnya dalam mengatur beberapa virtual machine.

Pada setiap jenis komputer, seperti cluster computing, grid computing, PC ataupun mainframe, memiliki OS yang berbeda satu sama lain karena memiliki sistem yang juga berbeda. Setiap OS tersebut di desain sesuai dengan kebutuhan dari sistem masing masing. Untuk Hypervisor sendiri, didesain lebih mirip OS untuk mainframe dari pada Windows OS. Hal ini dikarenakan sebuah hypervisor, harus bisa mengatur beberapa sistem sekaligus, layaknya sebuah host melayani beberapa client pada mainframe.

Pada cloud computing, bukan hanya satu sistem saja yang harus diatur.Maka dari itu digunakanlah sebuah Hypervisor sebagai OS dari cloud computing. Hypervisor bertugas untuk mengatur beberapa virtual machine ini sehingga nantinya sebuah cloud computing bisa berjalan dengan baik.

Singkatnya tugas dari Hypervisor adalah untuk menjalankan dan mengatur Virtual Machine

Secara umum Hypervisor di bagi menjadi 2 jenis yaitu: Baremetal Architectur yang  dikenal dengan hypervisor tipe 1 dan Hosted Architecture yang dikenal dengan hypervisor tipe 2

Hypervisor Type 1 (Baremetal Architecture)

Dibawah ini manakah pernyataan yang benar mengenai virtualisasi

Hypervisor tipe ini berjalan langsung diatas perangkat keras server, artinya tidak di perlukan sistem operasi lain untuk menjalankan hypervisor tipe 1 ini . dengan begitu hypervisor memiliki akses langsung ke hardware tanpa harus melewati OS.Contoh hypervisor tipe 1 adalah VMware ESXi. Kalau dilihat dari teknik virtualisasi yang digunakan, jenis satu ini adalah jenis hardware assisted.

Hypervisor Type 2 (Hosted Architecture)

Dibawah ini manakah pernyataan yang benar mengenai virtualisasi

Hypervisor tipe ini  berperan sebagai software untuk menjalankan dan mengatur virtual machine. Akses resource hardware yang dibutuhkan oleh virtual machine harus melewati OS.Contoh hypervisor tipe 2 adalah VMware Server. Berbeda dengan tipe 1, tipe 2 ini lebih cenderung ke OS assisted hypervisor (para virtualization) dan juga full virtualization.