Im using SQL Server 2005 and IIS6. I have each on separate boxes (Quad cpu, 4G). Client wants to consolidate on to one box. This is an Enterprise application with 400 users. Performance is good now, but I question any savings to consolidate with performance changes, management of services. So for 1) future features/growth , 2) performance, 3) Modularity, other?, move to 1 box or keep on 2.
|
feedback
|
|
I'm pretty much 100% Linux-based, but I think some common principles apply. If you expect to scale, having the servers separate even if just using virtualization software provides you with the ability to easily add nodes as needed and load balance between them - it also provides for better security, as you only open the ports you need. Having a database server on the box I found is good for supplementary services like mail servers, or some other configuration tool that uses a backend database... these footprints are relatively small, and scalability is less of a concern. | |||
feedback
|
|
There isn't really enough info to tell you which direction to take, it's really going to depend on your environment. To make the right call you will want to gather metrics on both servers in their current states and analyze what you've got. You need real data to prove out the point, either way. "Enterprise application" doesn't really say much with regards to metrics other than that "it might be big". You might be able to combine but if you have to buy new hardware with more horsepower then you might be shooting yourself in the foot. A couple of thoughts (mainly from the database perspective):
| ||||
|
feedback
|
|
What are the supposed benefits of consolidation?
If you want the best of both worlds, you could setup two VMs on the one host. As an when either of them grows too big, you can just move it to a new host (or perhaps to a new dedicated machine). In general, I'd advise against running them on the same box in a production environment; apart from the security implications, configuration and maintenance won't be as easy as both roles will always be jostling for resources. | |||
|
feedback
|
|
Some security folks don't like having a web server and database server on the same machine. Ours let it slide if we install IIS on a separate partition. | |||
|
feedback
|
|
I would say, try it on a non-production copy of your system and see. Any significant application which is actively being supported should be able to be performance-tested. Get production-grade hardware boxes (the same spec as you would deploy into production now - not obsolete) and test it with a single box, and two boxes. My guess would be that putting the database on the same machine performs better provided the database+application fits in ram - and worse otherwise. This effectively means that putting them on the same machine improves performance but reduces scalability. This performance vs scalability trade-off is typical. But do try it and see. Be sure to use production-grade hardware and some software to simulate at least your production level of usage. There are also implications for robustness (of using a single machine). But you could have others as warm(ish) backups without impacting production too much (depending on what type of replication/clustering etc you use). | |||
|
feedback
|