views:

593

answers:

4

My Company is running several international websites for selling insurance products. Our current setup is a Webfarm with multiple Loadbalanced Webservers hosting our ASP.NET applications. The backend is a single - yet powerful - SQL Server. (all in one data center)

Our network admins want to move to virtual servers running on VMWare.

Scenarios could be

  1. Webfarm: Multiple standard webservers, Loadbalanced (current setup), Session state on SQL Server
  2. Virtual Webfarm: Multiple virtual servers, loadbalanced on one physical VMWare Host, Session state on SQL Server 2.a same as above but with multiple physical hosts
  3. Single Virtual Webserver: One big powerful virtual webserver, no loadbalancing required, session state can be kept in process

There is a big hype around virtualization and I can see the benefits, but have no experience with this. I cannot tell what issues we will face and to what we should pay special attention.

  • Does anyone have experience with such a virtual setup?
  • What are general recommendations?

I tend towards 2a. I am afraid of having all webservers on one single physical machine.

Many thanks in advance to share your thoughts.

+1  A: 

There are three reasons to use more than one webserver for an application:

  1. Scaling - More grunt is required than one machine can provide
  2. Reliability - Website should keep running in case of failure (a. hardware b. software)
  3. Prioritization - One of the webservers takes on heavy work (perhaps scheduled tasks) leaving the other to respond to client requests quickly.

Marrying that up to you scenarios:

Scenario 1 provides 1, 2, 3 Scenario 2 provides 2b (perhaps 2a if it is fully hardware redundant (doubt it)) Scenario 2a provides 1, 2 Scenario 3 provides none of the above

Advantages of Virtual Hosting:

  • Lower Total Cost of Ownership (TCO) on big cluster serving multiple purposes is cost effective
  • New servers can be created quickly if needed
  • Redundant hardware is easier to justify if the cost is shared among many applications

Disadvantages:

  • Other virtual machines may suck away your CPU/Disk IO capacity

IMHO there is little point to load balancing multiple virtual machines on the same virtual server.

Robert Wagner
Lower total cost of ownership is the main argument for the move to VMWare. We plan to run loadtests before we do the switch. I am a bit uncomfortable with the move to VMWare, but seems I can't stop it .... :-)
PeterTheNiceGuy
+1  A: 

Robert's pretty much covered it all, I'm mostly just adding a note to say that at least one of our clients is currently running with option 2a.

So we have multiple loadbalanced web servers running on a couple of VM hosts, talking to a non-virtualised SQL cluster - this works quite well for them.

One other advantage of virtualisation is that it allows you to more fully utilise your hardware - however, you need to be aware that if you're running your virtual host at around 90% capacity with multiple VMs, you've not got a lot of spare capacity for any traffic spikes - if you're not expecting any, then great, but if you are, you'll need to have something in place to cope.

Zhaph - Ben Duguid
A: 

It doesn't sound like there would be any tangible benefit from running multiple virtual servers on the same physical host, you're just adding overhead. Unless I'm missing something with the way you've described the setup, there wouldn't be any benefit at all from moving to VMware - unless you're looking at taking advantage of features such as VMotion

VMware is most useful for consolidating underutilized hardware. If your hardware is running at near-capacity during peak periods then you don't want to run multiple VMs on the one machine.

There are benefits to Virtualization but your network admins need to prove that there is a benefit for your company before you even consider switching. I would say if you have multiple apps running on dedicated servers with low traffic (i.e. each app has it's own physical server) then sure, Virtualize. If you have one app over many servers, then don't.

sascha
+1  A: 

I agree with all of the above answers, and I actually work at a webhost. :-) If you're using multiple load-balanced webservers now then I can only assume the reason for it is either

  • Hardware Redundancy: If a single app server fails then those sessions are lost, but the app keeps running on the other servers and users can immediately re-connect.

or

  • Application Load Distribution (it's late so I can't think of a better name): Your traffic dictates that you have multiple app servers since all of your users would crash a single app server.

If #1 is the reason, then going to VMWare defeats the purpose since you only have one server supporting everything, and in case of hard drive crash, etc, you are down while it is repaired. If #2 is the reason then a VMWare based solution MAY work, however keep in mind that the hardware you'd use would almost necessarily be of a higher caliber than what you're currently using. So you maybe get more bang for your buck, but you STLL lose the redundancy that multiple physical machines gave you.

Now, you could always combine the two by having multiple physical machines all running VMWare, but that adds a level of complexity to things that you may not necessarily want either.

Thanks for your answer. We use the current setup for both: Load distribtion and hardware redundancy. The session state is kept in SQL Server, the webrequests are distributed by the loadbalancer to the machines. So if one Webserver fails, ideally the customer does not even notice or lose anything.
PeterTheNiceGuy