Intram direct in miezul problemei: veti spune “de ce sa folosim VM? pare ca aduce batai de cap!”.
Exista mitul ca masina gazda se misca tare greu cand porneste VM si nu mai poti face nimic altceva.Probabil corect daca in timp ce faci web development vrei sa encodezi MPEG4 o filmare raw la rezolutie HD.
Tehnologia de virtualizare a avansat foarte mult in ultimii 2-3 ani si, astfel, o masina gazda decenta (dual core, 2 GB RAM) se misca fara probleme daca ai o VM cu Ubuntu 10.04 fara Gnome/KDE (fara nici un X) si cu Apache, PHP, MySQL careia ii aloci 512 MB RAM si care, la randul ei, se va misca decent.
Exista, de asemenea, mitul ca daca lucrezi singur la proiectele tale si nu intr-o echipa cu care sa simti nevoia de uniformitate a mediului de dezvoltare, nu ai nevoie de VM:
Daca proiectele tale vor fi mereu pentru aceeasi platforma (versiuni de apache, php, apc, mysql etc.) si daca vor fi de mici dimensiuni, s-ar putea sa ai dreptate, insa, te poti intalni cu situatia urmatoare:
– pentru proiectul X vei vrea sa ai un setup NGINX + PHP5.3 + FPM + MongoDB fiidca este un super proiect pe tehnologii cutting edge care te incita la maxim si iti face placere sa dezvolti la el fie si noaptea 🙂
– pentru proiectul Y vei vrea un setup APACHE + PHP5.2 + MySQL5.1 fiidca este un proiect inceput acum 2 ani jumate la care ai un contract excelent de mententanta
– pentru proiectul Z vei vrea un setup APACHE + PHP5.3 + MySQL5.5 fiidca este proiectul pe care doar ce nu ai putut sa-l refuzi pentru un prieten de familie si chiar daca nu ies bani buni si e cam plictisitor, trebuie dezvoltat pe o anume platforma ce necesita setup-ul mentionat.
– stii ca in fiecare zi trebuie sa progresezi cu fiecare dintre cele 3 proiecte macar cu cate 2 ore de munca.
Solutia pentru aceasta situatie este ca pentru fiecare proiect sa ai o VM. Jonglarea cu lucrul la un proiect sau altul este doar o problema de start/stop a VM aferente.
Totusi, cum probabil ni se intampla multora dintre noi, lucram in una sau mai multe echipe la unul sau mai multe proiecte, fiecare cu limitari clare din punct de vedere al serviciului de gazduire.
Se intampla des ca oameni noi sa intre intr-o echipa sau alta, pe unul sau mai multe proiecte.Practic, folosind VM, timpul de inrolare intr-un proiect sau altul scade de la cateva ore, poate chiar 1-2 zile pentru setup-uri complexe, la cateva zeci de minute.
Personal am avut 3 tentative esuate inainte de a avea primul proiect dezvoltat cu succes in VM. Toate tentativele esuate au avut legatura cu partea de retelistica a VM si metode de acces a fisierelor din VM.
Astazi folosesc VirtualBox (excelent+gratis) si setez VM cu 2 interfete de retea dupa cum urmeaza:
Adapter 1: Hostonly Adapter, Intel PRO/1000 T Server
Adapter 2: NAT, Intel PRO/1000 T Server
Am setat manual cea de a doua interfata:
root@dev:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.56.10
netmask 255.255.255.0
Pentru accesul usor la toate fisierele sistemului de pe Windows am fortat sub Samba user si group root:
root@dev:~# cat /etc/samba/smb.conf
#
# …………….
#
[totsystemul]
comment = Global Share
path = /
read only = No
guest ok = Yes
public = Yes
browseable = Yes
create mask = 0666
directory mask = 0777
force group = root
force user = root
[www]
comment = var/www
path = /var/www
read only = No
guest ok = Yes
public = Yes
browseable = Yes
create mask = 0666
directory mask = 0777
force group = root
force user = root
Voi reveni intr-un articol viitor cu alte detalii despre lucrul cu VM si chiar cu o VM gata setata, in care doar sa incepi sa lucrezi la noul tau proiect.