I'm currently setting up an environment for our developers and I am faced with a problem. We're planning on having Crowd, JIRA, Confluence, Bamboo, etc (all by Atlassian; all running on Windows Server 2008). All these products need a back-end database, which will be Microsoft SQL Server 2008.
So the issue is: is it fine to have SQL Server running inside a guest OS (performance-wise) or performance will be sub-optimal in this environment?
MS SQL will run fine in a virtual environment so long as it has enough memory. This is the same whether its in a real or virtual environment really. If your developers VM's have enough memory then it should be fine.
I have a VM running SQL 2008 enterprise for development and QA.
The performance is not stellar, but it can serve quite a load. We had some problems, mostly regarding high performance reads, where the SQL would complain on incorrect checksum and would fail the action.
I would recommend using something more performance oriented, like ESX.
We have a development server, that runs Hyper-V server. It serves up Server2008 Enterprise, running SQL2008 with no issues whatsoever. This is with supplying the VM with about 3GB of memory.
I've been running confluence in a 2008 Server VM for several months, and it works like a champ. No real problems, it sees moderate usage. The database is hosted off of the vm on a dedicated SQL 2005 server. But this is a shared database server that hosts many other applications as well.
The best advice I can give for this development server is: make sure it has enough memory.
All of the java/tomcat apps that you mentioned need to preallocate their memory space, and SQL will gobble up the rest. I would recommend at least 3GB of RAM (at most 8GB). Each one of the Atlassian apps will want 256-512MB of RAM, and SQL will want at least 1GB, and then the OS will need a little too.
Also watch your disk IO, depending on what your devs are doing, this could be a serious bottle-neck.