Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting up a development environment INSIDE a virtual machine

Heres the problem. I use around three different machines for development. My partner is using two. We have to go through the same freaking set up procedure on all five machines to get to work.

Working with a php project here, so: Install and configure, PDT, a php debugger, and some version of XAMPP. Then possible install an svn client, and any other tools.

Again, to each of the five machines.

What if, instead, we did all of this once, in a virtual machine that is set up with the same stack, same versions, as the production server. Then each of us could grab a copy of the VM image, run that image on each of the five machines and do all of our development in that VM. Put Eclipse, apache, mysql, the works, all in that vm.

The only negative of this approach, and please correct me on the only part, is performance. Is it really that big of an issue though? The slowest machine out of the five is a Samsung NC10 powered by an Intel Atom 1.6 ghz processor.

Do you think this is possible and practically usable? Or am I crazy?

like image 576
Nick Zalutskiy Avatar asked Dec 25 '08 08:12

Nick Zalutskiy


People also ask

Can you develop on a virtual machine?

You can develop directly on a VM instance identical to the one you would deploy into production. This means you don't have system compatibility issues between the local development environment and the server you'll be running your applications on.

What is an environment in a virtual machine?

(1) A computer that is running in a virtual machine environment, which is the combination of virtual machine monitor and hardware platform. For example, VMware running on an x86 computer is a virtual environment.

Is virtual machine good for software development?

Virtual machine development and testing enable us to test not only different versions of software but also potential product implementations as well as new features. Virtualization also enables us to allow developers to closely mimic a production server environment.


2 Answers

I use a VM for development (running on my laptop) and have never had performance problems. Another approach that you could take would be to image the drive in the state that you want. Use Acronis or Ghost to re-image each machine when you need to. Only takes about 5-10 minutes to restore an image on any modern PC.

like image 172
Ed S. Avatar answered Oct 21 '22 12:10

Ed S.


I use a VM for all my "work" as it keeps it away from my "play". This set up allows me to use the office VPN without exposing my whole machine to the office environment (which I trust about as much as the internets. ;-) Also I don't have to worry about messing up my development environment by trying games or other software. My work VM is currently running inside VirtualBox but I have used VMWare in the past. I have only noticed performance issues when using graphic intensive programs like Webex or the Terminal Server Client.

like image 33
Chris Nava Avatar answered Oct 21 '22 13:10

Chris Nava