Talaan ng nilalaman
Kung nagtatrabaho ka sa loob o sa paligid ng industriya ng software, malamang na narinig mo na ang mga virtual machine. Kung hindi, maaaring nagtataka ka kung ano ang mga ito at para saan ang mga ito.
Bilang isang software engineer, gumagamit ako ng mga virtual machine araw-araw. Ang mga ito ay makapangyarihang mga tool sa pagbuo ng software, ngunit mayroon din silang iba pang gamit. Kilala rin bilang mga VM, maraming negosyo ang gumagamit ng mga ito dahil sa kanilang flexibility, reliability, at cost-effectiveness; pinipigilan din nila ang mga sakuna mula sa runaway software testing.
Tingnan natin kung ano ang mga virtual machine at bakit ginagamit ang mga ito.
Ano ang Virtual Machine?
Ang virtual machine ay isang instance ng isang operating system (OS) gaya ng Windows, Mac OS, o Linux na tumatakbo sa loob ng pangunahing OS ng isang computer.
Karaniwan, tumatakbo ito sa isang window ng app sa iyong desktop. Ang isang virtual machine ay may ganap na pag-andar at kumikilos tulad ng isang hiwalay na computer o makina. Sa esensya, ang virtual machine ay isang virtual na computer na tumatakbo sa loob ng isa pang computer na kilala bilang host machine.
Larawan 1: Virtual Machine na tumatakbo sa isang laptop.
Ang isang virtual machine ay hindi t may hardware (memorya, hard drive, keyboard, o monitor). Gumagamit ito ng simulate na hardware mula sa host machine. Dahil dito, maraming VM, na tinutukoy din bilang "mga bisita," ay maaaring patakbuhin sa isang host machine.
Larawan 2: Host machine na nagpapatakbo ng maraming VM.
Ang host maaari ding magpatakbo ng maraming VM na may iba't ibang pagpapatakbosystem, kabilang ang Linux, Mac OS, at Windows. Ang kakayahang ito ay nakasalalay sa software na tinatawag na hypervisor (tingnan ang Larawan 1 sa itaas). Gumagana ang hypervisor sa host machine at nagbibigay-daan sa iyong lumikha, mag-configure, magpatakbo, at mamahala ng mga virtual machine.
Naglalaan ang hypervisor ng espasyo sa disk, nag-iskedyul ng oras ng pagproseso, at namamahala sa paggamit ng memory para sa bawat VM. Ito ang ginagawa ng mga application tulad ng Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V, at marami pang iba: mga hypervisor ang mga ito.
Maaaring tumakbo ang hypervisor sa isang laptop, PC, o server. Ginagawa nitong available ang mga virtual machine sa lokal na computer o mga user na ipinamamahagi sa isang network.
Ang iba't ibang uri ng mga virtual machine at kapaligiran ay nangangailangan ng iba't ibang uri ng hypervisors. Tingnan natin ang ilan sa mga ito.
Mga Uri ng Virtual Machine
Mga Virtual Machine ng System
Ang mga System VM, kung minsan ay tinatawag na full virtualization, ay pinapatakbo ng isang hypervisor at nagbibigay ng functionality ng isang aktwal na computer system. Ginagamit nila ang katutubong operating system ng host upang pamahalaan at ibahagi ang mga mapagkukunan ng system.
Ang mga virtual machine ng system ay kadalasang nangangailangan ng isang malakas na host na may mabilis o maraming CPU, malaking halaga ng memorya, at toneladang espasyo sa disk. Ang ilan, na tumatakbo sa mga personal o laptop na computer, ay maaaring hindi nangangailangan ng computing power na kailangan ng malalaking enterprise virtual server; gayunpaman, magiging mabagal ang mga ito kung hindi sapat ang host system.
Virtual na ProsesoMga Machine
Ang mga Virtual Machine ng Proseso ay lubos na naiiba sa mga SVM—maaaring pinapatakbo mo ang mga ito sa iyong makina at hindi mo ito alam. Ang mga ito ay kilala rin bilang application virtual machine o pinamamahalaang runtime environment (MREs). Ang mga virtual machine na ito ay tumatakbo sa loob ng isang host operating system at sumusuporta sa mga application o proseso ng system.
Bakit gagamit ng PVM? Nagsasagawa sila ng mga serbisyo nang hindi umaasa sa mga partikular na operating system o hardware. Mayroon silang sariling maliit na OS na may mga mapagkukunan lamang na kailangan nila. Ang MRE ay nasa isang hiwalay na kapaligiran; hindi mahalaga kung tumatakbo ito sa Windows, Mac OS, Linux, o anumang iba pang host machine.
Ang isa sa mga pinakakaraniwang Process Virtual Machine ay isa na malamang na narinig mo na at maaaring nakita mong tumatakbo sa iyong computer. Ito ay ginagamit upang magpatakbo ng mga Java application at tinatawag na Java Virtual Machine o JVM para sa maikli.
Mga Uri ng Hypervisors
Karamihan sa mga virtual machine na inaalala namin ay gumagamit ng hypervisor dahil tinutularan nila isang buong sistema ng computer. Mayroong dalawang magkakaibang uri ng hypervisors: Bare Metal Hypervisors at Hosted Hypervisors. Tingnan natin ang dalawa sa kanila.
Bare Metal Hypervisor
Maaari ding tawaging native hypervisor ang mga BMH, at direktang tumatakbo ang mga ito sa hardware ng host sa halip na tumakbo sa loob ng operating system ng host. Sa katunayan, pinapalitan nila ang operating system ng host, pag-iskedyul atpamamahala sa paggamit ng hardware ng bawat virtual machine, kaya pinuputol ang “middle man” (OS ng host) sa proseso.
Karaniwang ginagamit ang mga native hypervisor para sa mga malalaking enterprise VM, na ginagamit ng mga kumpanya para bigyan ang mga empleyado ng mapagkukunan ng server. Ang Microsoft Azure o Amazon Web Services ay mga VM na naka-host sa ganitong uri ng arkitektura. Ang iba pang mga halimbawa ay KVM, Microsoft Hyper-V, at VMware vSphere.
Naka-host na Hypervisor
Ang mga naka-host na hypervisor ay tumatakbo sa mga karaniwang operating system—tulad ng anumang iba pang application na pinapatakbo namin sa aming mga machine. Ginagamit nila ang OS ng host upang pamahalaan at ipamahagi ang mga mapagkukunan. Ang ganitong uri ng hypervisor ay mas angkop para sa mga indibidwal na user na kailangang magpatakbo ng maraming operating system sa kanilang mga makina.
Kabilang dito ang mga application tulad ng Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop, at marami pang iba. Makakahanap ka ng mas detalyadong impormasyon tungkol sa mga naka-host na hypervisor sa aming artikulo, Pinakamahusay na Virtual Machine Software.
Bakit Gumamit ng Mga Virtual Machine?
Ngayong mayroon ka nang pangunahing pag-unawa sa kung ano ang isang virtual machine, maaari kang mag-isip ng ilang mahuhusay na application. Narito ang ilan sa mga nangungunang dahilan kung bakit gumagamit ang mga tao ng mga virtual machine.
1. Cost-Effective
Ang mga virtual machine ay cost-effective sa maraming sitwasyon. Ang isa sa mga pinakatanyag ay sa mundo ng korporasyon. Ang paggamit ng mga pisikal na server upang magbigay ng mga mapagkukunan para sa mga empleyado ay maaaringmaging napakamahal. Ang hardware ay hindi mura, at ang pagpapanatili nito ay mas magastos.
Ang paggamit ng mga virtual machine bilang mga enterprise server ay naging karaniwan na ngayon. Sa mga VM mula sa isang provider tulad ng MS Azure, walang mga paunang pagbili ng hardware at walang bayad sa pagpapanatili. Ang mga VM na ito ay maaaring i-set up, i-configure, at gamitin para sa mga pennies lamang sa isang oras. Maaari din silang i-shut down kapag hindi ginagamit at wala talagang gastos.
Ang paggamit ng VM sa iyong makina ay maaari ding maging malaking pagtitipid ng pera. Kung kailangan mong gumawa ng trabaho sa maraming operating system o iba't ibang configuration ng hardware, maaari kang
gumamit ng maraming virtual machine sa isang host—hindi na kailangang lumabas at bumili ng hiwalay na computer para sa bawat gawain.
2. Scalable at Flexible
Mga enterprise server man sila o VM na tumatakbo sa iyong laptop, scalable ang mga virtual machine. Madaling ayusin ang mga mapagkukunan upang umangkop sa iyong mga pangangailangan. Kung kailangan mo ng mas maraming memory o hard disk space, pumunta lamang sa hypervisor at muling i-configure ang VM upang magkaroon ng higit pa. Hindi na kailangang bumili ng bagong hardware, at mabilis na makumpleto ang proseso.
3. Mabilis na pag-setup
Maaaring mabilis na mag-set up ng bagong VM. Nagkaroon ako ng mga kaso kung saan kailangan ko ng bagong setup ng VM, tinawagan ang aking katrabaho na namamahala sa kanila, at handa silang gamitin sa loob ng wala pang isang oras.
4. Disaster Recovery
Kung sinusubukan mong pigilan ang pagkawala ng data at maghanda para sa disaster recovery, ang mga VM ay maaaring maging isangkahanga-hangang kasangkapan. Ang mga ito ay madaling i-back up at maaaring ipamahagi sa iba't ibang lokasyon kung kinakailangan. Kung ang isang third party tulad ng Microsoft o Amazon ay nagho-host ng mga virtual machine, magiging off-site ang mga ito—na nangangahulugang ligtas ang iyong data kung masunog ang iyong opisina.
5. Madaling I-reproduce
Karamihan sa mga hypervisor ay nagbibigay-daan sa iyong gumawa ng kopya, o larawan, ng isang VM. Hinahayaan ka ng imaging na madaling iikot ang mga eksaktong reproductions ng parehong base VM para sa anumang sitwasyon.
Sa environment kung saan ako nagtatrabaho, binibigyan namin ang bawat developer ng VM na gagamitin para sa pag-develop at pagsubok. Ang prosesong ito ay nagbibigay-daan sa amin na magkaroon ng isang imahe na na-configure kasama ang lahat ng mga kinakailangang tool at software. Kapag mayroon kaming bagong developer na naka-onboard, ang kailangan lang naming gawin ay gumawa ng kopya ng larawang iyon, at nasa kanila ang kailangan nila para makapagtrabaho.
6. Perpekto para sa Dev/Test
Ang isa sa mga pinakamahusay na bentahe ng paggamit ng mga virtual machine ay ang mga ito ay isang perpektong tool para sa pagbuo at pagsubok ng software. Binibigyang-daan ng mga VM ang mga developer na bumuo sa maraming platform at kapaligiran sa isang makina. Kung masira o masira ang VM na iyon, mabilis na makakagawa ng bago.
Pinapayagan nila ang isang tester na magkaroon ng malinis na bagong kapaligiran para sa bawat ikot ng pagsubok. Nagtrabaho ako sa mga proyekto kung saan nag-set up kami ng mga automated test script na gumagawa ng bagong VM, nag-i-install ng pinakabagong bersyon ng software, nagpapatakbo ng lahat ng kinakailangang pagsubok, pagkatapos ay nag-delete ng VM kapag nakumpleto na ang mga pagsubok.
Ang mga VM ay gumagana nang mahusay para sapagsusuri ng produkto at mga pagsusuri tulad ng ginagawa namin dito sa SoftwareHow.com. Maaari akong mag-install ng mga app sa isang VM na tumatakbo sa aking makina at subukan ang mga ito nang hindi ginugulo ang aking pangunahing kapaligiran.
Kapag tapos na ako sa pagsubok, maaari kong palaging tanggalin ang virtual machine, pagkatapos ay lumikha ng bago kapag kailangan ko ito. Ang prosesong ito ay nagbibigay-daan din sa akin na subukan sa maraming platform kahit na mayroon lang akong Windows machine.
Mga Pangwakas na Salita
Tulad ng nakikita mo, ang mga virtual machine ay isang cost-efficient, versatile na tool na maaaring gamitin para sa maraming mga aplikasyon. Hindi na namin kailangang bumili, mag-setup, at magpanatili ng mamahaling hardware para magbigay ng access sa server para sa mga tester, developer, at iba pa. Ang mga VM ay nagbibigay sa amin ng kakayahang umangkop upang madali at mabilis na gawin ang mga operating system, hardware, at mga kapaligiran na kailangan namin—anumang oras.