Wednesday, February 17, 2010

Virtual development environments


Using virtual machines to maintain development environments ( development ide to application server config) is becoming a common practice.
8-core cpus, 4+ gb rams and 64 bit operating systems allow running guest operating systems without a lot of performance penalties.

What should be in a baseline image?

  • Notepad alternative
  • Continuous integration server running unit tests of your project (e.g Hudson)
  • IDE (Eclipse or Netbeans) and plugins
  • Static code analyzers with customized ruleset of your team (integrated with IDE) e.g PMD, FindBugs
  • Application server (integrated with IDE) (Glassfish)
  • Database server with initial data loaded.
  • Load generator with sample scenarios (e.g Apache Jmeter)
  • Cache server (memcached)
  • Any other frameworks your project needs (e.g Grails)
  • SQL client (depends on your db)
  • Source control client (SVN or git client)


There are a lot of advantages
1- Common virtual machine image to get new members of team running up in short time.
2- No need to change settings between clients and projects

For virtualization, I prefer VirtualBox. Vmware is another alternative and so is Parallels in Mac OS X.

What other tools do you install as baseline for virtual systems?







No comments: