Micro-virtualization
During a recent cleaning of my workstation’s operating system, I noticed that I had quite a few background applications running. These applications ranged from Apache, MySQL, PHP, GlassFish to some downloading applications. All of these applications are running all the time and clutter the file-system, the workstations’s performance and the launch-daemons. So what did I do about it?
I created a couple of small virtual machines. One to host Apache with MySQL and PHP, one to host my build-server, one to host my downloading applications. When I want to do some web-development, all I have to do is start one of the virtual machines and the server is fully functioning in about 10 seconds.
So what are the advantages of such a system?
- Portability: I can easily copy these virtual machines to any of my workstations or servers
- Seperation of responsiblity: Each virtual machine has its own purpose
- Safety: I can return to a snapshot when I want to undo a certain change
- Storage: It is very easy to move the application storage to a different location
- Development: Extremely easy to use DTAP by cloning virtual machines
The only disadvantage is the fact that a virtualized server will use more resources compared to a background process, but I can easily turn off virtual servers when I don’t need them. With my usage, the virtual servers are a clear winner.
I want to give a few pointers on how I configured my system: