I'm currently responsible for setting up some infrastructure integration testing in my company. We'll definitely need to use virtual machines. I considered using libvirt for managing VMs in tests however it's likely we'll have more servers. So what I'm looking for now is something like private cloud. I'm currently considering to look at OpenStack, OpenNebula and Nimbus. I briefly looked at OpenStack documentation but it seems too complex. All I need above libvirt is some kind of load balancing of virtual machines across servers (but not transfer of running VM!) and the possibility of spawning multiple instances of one virtual machine.
Is there some other solution? What would you recommend to me?
Unfortunately paying for a cloud is not an option.
we use ESXi (the free version) to deploy VMs to our developers. I haven't had time to figure out a simpler way to manage it (i believe one could use APIs to do it) but for now I just log into the vSphere client and deploy VMs that way. With cobbler and Puppet, I'm able to provision a new VM in under 15 minutes.
Microsoft Hyper-V. Free. (Hyper-V Server)
Then add System Center Virtual Machine Manager - which is good for self-serving Clouds. Like assigning people budgets (cpu slices, RAM) and killing virtual machiens after X days automatically.
Depending what you develop (Visual Studio) there is also lab integration to that from virtual studio (running tests on virtual machines just created for the test).
Especially the self serving part is great - allows you to move control downstream without developers accidentally forgetting the 32gb ram test server they created about a month ago.
Have you looked at Eucaliptus? I have no hands-on experience with it but I've heard it uses same API as Amazon and quite comparable in terms of functionality.