I am architecting a .net web solution which will run on 5 different WCF services and SQL Server databases deployed on the same machine.
I wanted to understand how best I should configure the environment? Do I need development, staging, UAT and live separate servers or should development server be developers’ machine or should common databases be stored in the development server? Should staging and UAT environments be same servers?
Is there an article that you recommend which talks about it?
The answer depends on your requirements, schedule and budget.
Putting multiple DBs on a single server is workable, provided you have enough RAM and enough disk spindles/throughput (or SSDs). One important key to not promptly running into performance headaches is to make sure the DB log files are different spindles from the DB data files and from each other.
For development, staging and UAT, one strategy is to run three different VMs, hosted on a single physical machine. That allowed quick resets and full isolation from one system to the other.
If you need to do load testing, that environment should generally be separate from the others.