GNU/Linux >> Belajar Linux >  >> Ubuntu

Kontainer vs Mesin Virtual (VM):Apa Bedanya?

Pendahuluan

Kedua mesin virtual dan wadah digunakan untuk menciptakan lingkungan virtual yang terisolasi untuk mengembangkan dan menguji aplikasi atau perangkat lunak. Pertanyaannya adalah bagaimana mereka berbeda.

Artikel ini membahas dua konsep untuk membantu memahami perbedaan antara penampung dan VM. Ini mendefinisikan wadah dan mesin virtual secara terpisah, serta berdampingan, untuk melihat apa yang membuat satu berbeda dari yang lain.

Apa itu Mesin Virtual (VM)?

A mesin virtual (VM) adalah sistem operasi yang berbagi sumber daya fisik dari satu server. Ini adalah tamu di perangkat keras host, itulah sebabnya ia juga disebut mesin tamu .

Ada beberapa lapisan yang membentuk mesin virtual. Lapisan yang memungkinkan virtualisasi adalah hypervisor . Hypervisor adalah perangkat lunak yang memvirtualisasikan server.

Cara Kerja Mesin Virtual

Semua yang diperlukan untuk menjalankan aplikasi terdapat di dalam mesin virtual – perangkat keras tervirtualisasi, OS, dan semua binari dan pustaka yang diperlukan. Oleh karena itu, mesin virtual memiliki infrastruktur sendiri dan mandiri.

Setiap VM benar-benar terisolasi dari sistem operasi host. Juga, memerlukan OS sendiri, yang dapat berbeda dari OS host. Masing-masing memiliki binari, pustaka, dan aplikasinya sendiri.

Monitor mesin virtual (VMM) :nama lain untuk hypervisor

Mesin induk :perangkat keras tempat VM dipasang

Tamu mesin :nama lain untuk VM

Mesin Virtual:PROS

VM mengurangi pengeluaran . Alih-alih menjalankan aplikasi pada satu server, mesin virtual memungkinkan pemanfaatan satu sumber daya fisik untuk melakukan banyak pekerjaan. Oleh karena itu, Anda tidak perlu membeli, memelihara, dan menyimpan tumpukan server yang dapat dihitung.

Karena ada satu mesin host, ini memungkinkan Anda untuk mengelola secara efisien semua lingkungan virtual dengan kekuatan hypervisor yang terpusat. Sistem ini sepenuhnya terpisah satu sama lain, artinya Anda dapat memasang beberapa lingkungan sistem .

Yang terpenting, mesin virtual diisolasi dari OS host dan aman tempat untuk bereksperimen dan mengembangkan aplikasi.

Mesin Virtual:KONTRA

Mesin virtual mungkin menghabiskan banyak sumber daya sistem dari mesin host, dengan ukuran banyak GB. Menjalankan satu aplikasi di server virtual berarti menjalankan salinan sistem operasi serta salinan virtual semua perangkat keras yang diperlukan agar sistem dapat berjalan. Ini dengan cepat menambahkan hingga banyak siklus RAM dan CPU.

Proses merelokasi aplikasi yang berjalan di mesin virtual juga bisa rumit karena selalu melekat pada sistem operasi. Karenanya, Anda harus memigrasikan aplikasi serta OS dengannya. Selain itu, saat membuat mesin virtual, hypervisor mengalokasikan sumber daya perangkat keras yang didedikasikan untuk VM.

Mesin virtual jarang menggunakan semua sumber daya yang tersedia yang dapat membuat perencanaan dan distribusi menjadi sulit. Itu masih ekonomis dibandingkan dengan menjalankan komputer sebenarnya yang terpisah.

Penyedia VM populer:

  • VMware vSphere
  • VirtualBox
  • Zen
  • Hyper-V
  • KVM

Apa itu Wadah?

Wadah adalah lingkungan yang menjalankan aplikasi yang tidak bergantung pada sistem operasi. Ini mengisolasi aplikasi dari host dengan memvirtualisasikannya. Hal ini memungkinkan pengguna untuk membuat beberapa beban kerja pada satu instance OS.

Kernel sistem operasi host melayani kebutuhan menjalankan berbagai fungsi aplikasi, dipisahkan ke dalam wadah. Setiap kontainer menjalankan tugas yang terisolasi. Itu tidak dapat membahayakan mesin host atau bertentangan dengan aplikasi lain yang berjalan di wadah terpisah.

Bagaimana Cara Kerja Kontainer?

Saat bekerja di dalam wadah, Anda dapat membuat template lingkungan yang Anda butuhkan. Container pada dasarnya menjalankan snapshot sistem pada waktu tertentu, memberikan konsistensi dalam perilaku aplikasi.

Penampung membagikan kernel host untuk menjalankan semua aplikasi individual di dalam penampung. Satu-satunya elemen yang dibutuhkan setiap container adalah bin, library, dan komponen runtime lainnya.

Wadah:PROS

Kontainer bisa sekecil 10MB dan Anda dapat dengan mudah membatasi memori dan penggunaan CPU. Hal ini membuat container menjadi sangat ringan dan cepat diluncurkan sebagai lawan dari penggelaran mesin virtual, di mana seluruh sistem operasi perlu dikerahkan.
Karena ukurannya, Anda dapat dengan cepat menskalakan masuk dan keluar dari wadah dan tambahkan wadah yang identik.

Selain itu, container sangat baik untuk Integrasi Berkelanjutan dan Penerapan Berkelanjutan (CI/CD) implementasi. Mereka mendorong pengembangan kolaboratif dengan mendistribusikan dan menggabungkan gambar di antara pengembang.

Wadah:KONTRA

Wadah menggunakan kernel OS host dan memiliki dependensi sistem operasi. Oleh karena itu, container dapat berbeda dari OS yang mendasarinya berdasarkan ketergantungan, tetapi tidak berdasarkan jenisnya. Kernel host membatasi penggunaan sistem operasi lain .

Kontainer masih tidak menawarkan keamanan dan stabilitas yang sama bahwa VM bisa. Karena mereka berbagi kernel host, mereka tidak dapat diisolasi seperti mesin virtual. Akibatnya, wadah terisolasi di tingkat proses, dan satu wadah dapat memengaruhi yang lain dengan mengorbankan stabilitas kernel.

Selain itu, begitu sebuah wadah melakukan tugasnya, ia akan mati, menghapus semua data di dalamnya. Jika Anda ingin data tetap berada di server host, Anda harus menyimpannya menggunakan Volume Data. Ini memerlukan konfigurasi dan penyediaan manual di host.

Penyedia Kontainer Populer:

  • Pekerja Buruh
  • AWS
  • LXD
  • Wadah Java
  • Kontainer Hyper-V
  • Wadah Server Windows

Cara Memilih VM vs Kontainer

Memutuskan apakah akan menggunakan mesin virtual atau container bergantung pada pekerjaan yang Anda inginkan untuk dilakukan oleh lingkungan virtual Anda.

Mesin virtual adalah solusi yang lebih baik jika Anda perlu:

  1. Mengelola berbagai sistem operasi
  2. Kelola beberapa aplikasi di satu server
  3. Jalankan aplikasi yang memerlukan semua sumber daya dan fungsi OS
  4. Pastikan isolasi dan keamanan penuh

Kontainer cocok jika Anda perlu:

  1. Maksimalkan jumlah aplikasi yang berjalan di server
  2. Menerapkan beberapa instance dari satu aplikasi
  3. Memiliki sistem ringan yang dapat dijalankan dengan cepat
  4. Mengembangkan aplikasi yang berjalan di semua infrastruktur yang mendasarinya

Mesin virtual biasanya digunakan untuk aplikasi yang menuntut, infrastruktur jaringan, dan aplikasi yang akan menghabiskan sebagian besar sumber daya VM.

Kontainer biasanya digunakan untuk web, aplikasi dan layanan caching, daemon jaringan, dan database kecil.


Ubuntu
  1. Bagaimana menghapus Mesin Virtual berbasis KVM di Redhat Linux

  2. Apa Perbedaan Antara Kontainer LXC, LXD, dan Docker?

  3. Bagaimana memulai/menghentikan Mesin Virtual di Virtualisasi RedHat

  1. Apa Perbedaan Antara Metode Tasksel Dan Normal?

  2. Bagaimana Cara Mengakses Internet Dari Mesin Virtual Di Kotak Gnome?

  3. Hosting Cloud vs. Hosting VPS:Apa Bedanya?

  1. Perintah Docker CMD vs. Entrypoint:Apa Perbedaannya?

  2. APT vs APT-GET:Apa Bedanya?

  3. SQL vs NoSQL:Apa Perbedaannya?