Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Experiences using software load balancing vs. a hardware load balancer?

The ASP.NET application that I am currently responsible for at my day job has hit its limit in terms of its ability to scale inside a single server. Obviously we are working toward moving session out of process and the test and hopefully deploy date draws near. I would like to draw on the experiencies of people using the built in load balancing in Windows vs. an appliance solution such as one by Baracudda, Coyote Point, F5 etc. Did you start with one and move to the other and why ?

thoughts and advice appreciated in advance...

like image 694
MikeJ Avatar asked Oct 03 '08 11:10

MikeJ


2 Answers

I have some experience with load balanced solutions, however it really depends how your network and software are designed as to which is the best solution for you to go for.

In terms of solutions I've encountered:

Built in load balancing in windows works well for most cases, although you need to ensure your applications can handle sessions correctly if they're not sticky. etc.

I've used F5 products, mainly as a caching solution, however they were overly complex for us. We are currently moving off them, as developers were not using them correctly as they were too complex. (Please note these were quite old F5 products.)

We're currently trialing hardware load balancers from Foundry, and we'll probably go with them as they will fit in well with our network architecture. (Which is quite complex.).

So I'd say, if you want a simple solution use load balancing in windows (If your applications will work correctly.).

If not use something more complex.

Regardless of which load balancer you go with, you're making your architecture more complex. So plan and test it carefully.

like image 53
Bravax Avatar answered Oct 18 '22 06:10

Bravax


some thoughts

  • WLBS is often "good enough" to get you started with NLB. However like any great engineer - you need to "measure to know"
  • its not just about scale-up its about soft or hard redundancy too. We often NLB between VMs just to give us soft redundancy.
  • NLB applies just as much to back-edge as well as front-edge networks
  • stepping up to hardware acceleration brings you a new degree of ops costs. New training specialized support, escalation etc.
  • look for hardware acceleration to give you a lot more than NLB e.g. DDoS protection, SSL, Compression, Caching, Content Switching, Connection Aggregation, Buffering.
  • educate both Devs & Ops SE's about hardware acceleration benefits,a great design can merge the line between network operations and application development.
  • hardware buffering on it's own made our ASP.NET around 30% quicker just by reducing our GC time.
  • content switching can enable you to transparently merge or migrate disparate systems. We merged MSDN & MSDN2 platforms into a single url space using this technique.
  • session stickyness is a dual edged sword - use sparingly - again no substitute for good engineering - measure and test everything

We use both WLBS and NLB within our network - cost often drives the conversation. Treat both as tools in the toolbox, learn their nuances, cost models etc.

like image 41
stephbu Avatar answered Oct 18 '22 06:10

stephbu