
Apakah perbezaan utama antara virtualisasi dan kontena, dan untuk apa setiap teknologi digunakan?
Virtualisasi (VM). Mesin maya ialah abstraksi perkakasan fizikal — menukar satu pelayan kepada banyak. hypervisor terletak di antara hos dan VM, menggabungkan CPU, memori dan storan. Setiap VM termasuk salinan penuh OS tetamu, serta aplikasi dan semua perpustakaan. Hipervisor (VMM) menguatkuasakan pengasingan, dan sempadannya dibantu perkakasan oleh sambungan virtualisasi CPU (Intel VT-x / AMD-V).
Hypervisor datang dalam dua jenis:
- Jenis 1 (logam kosong): berjalan terus pada perkakasan; contoh bersih ialah VMware ESXi/vSphere, Microsoft Hyper-V dan Xen. KVM ialah kes hibrid: modul kernel Linux yang menukar kernel menjadi hipervisor Jenis 1 sementara hos masih menjalankan proses biasa.
- Jenis 2 (dihoskan): berjalan sebagai aplikasi pada OS konvensional (VirtualBox, VMware Workstation); sesuai dengan mesin peribadi.
Pebekalan. Bekas membungkus kod dan semua kebergantungannya (masa jalan, perpustakaan, tetapan) dan memaya sistem pengendalian dan bukannya perkakasan. Bekas berkongsi kernel OS hos dan dijalankan sebagai proses terpencil dalam ruang pengguna. Di Linux ini menggunakan ruang nama (pengasingan) dan cgroups (perakaunan sumber dan had), diperkukuhkan lagi dengan keupayaan, seccomp, MAC (SELinux/AppArmor), ruang nama pengguna dan mod tanpa akar. Perkongsian kernel membayangkan keserasian keluarga OS: Bekas Linux memerlukan kernel Linux, jadi Docker Desktop pada Windows/macOS menjalankan Linux VM ringan secara senyap-senyap. Docker mempopularkan bekas, tetapi formatnya diseragamkan oleh OCI; masa jalan lain juga wujud — kontena, CRI-O, Podman.
Perbezaan utama:
- Saiz: imej bekas biasanya beberapa MB hingga ratusan MB; VM ialah GB (tertib magnitud ilustrasi, bukan nombor tetap).
- Permulaan: bekas bermula dalam saat/milisaat; VM mesti but OS penuh.
- Overhed: bekas tidak memerlukan OS berasingan bagi setiap apl — kepadatan lebih tinggi, kos pelesenan yang lebih rendah.
- Pengasingan/keselamatan: VM menawarkan pengasingan berasaskan perkakasan yang lebih kukuh; bekas menawarkan pengasingan berasaskan perisian yang lebih lemah (risiko melarikan diri kontena daripada kernel yang dikongsi). Jalan tengah ialah masa jalan berkotak pasir (gVisor, Bekas Kata, Mercun) yang menghampiri pengasingan peringkat VM.
Untuk kegunaan setiap satu:
- VM: menjalankan OS yang berbeza pada satu pelayan, beban kerja intensif sumber atau monolitik dan pengasingan yang kuat (berbilang penyewaan, apl lama).
- Bekas: pembangunan asli awan, perkhidmatan mikro, CI/CD, mudah alih dan penskalaan mendatar pantas (dirancang oleh Kubernetes).
Dalam amalan, kedua-duanya adalah pelengkap: bekas sering dijalankan di dalam VM untuk menggabungkan penghantaran tangkas dengan pengasingan yang kuat.
