Forum Discussion

BobClarke_16508's avatar
BobClarke_16508
Icon for Nimbostratus rankNimbostratus
Nov 11, 2008

Should BIG IP replace webserver to app server load balancing

Hi

 

 

I have a general best-practice question regarding the points at which load balancing should take place in a JEE infrastructure.

 

 

I'll use an out-of-the box Websphere Application Server ND scenario to help me ask the question but I'm assuming other JEE app servers technologies present the same question.

 

 

Assume a stack containing 1 BIG IP load balancer, 2 web servers (Apache) and 2 application servers (Websphere).

 

 

A single application called "Account Management" is deployed that has one static HTML page (welcome.html) and one servlet (display_account.jsp).

 

The HTML page is deployed on the web server and the jsp is deployed on the application server as you would expect.

 

 

A VIP is configured on BIG IP in the usual way and this VIP maps to our two web servers via a pool called account_management_pool.

 

 

The webservers have the IBM websphere plug-in module loaded to allow them to talk to Websphere and a plugin-cfg.xml (the plug-in config file) is generated in the normal way to allow the webservers to "see" both app servers. The plugin-cfg.xml file routes all requests for *.jsp to the app server and routes all requests for *.html to the webserver.

 

 

Under this scenario requests for the application server are load-balanced in two places, once by BIG IP and again at the websphere plug-in

 

 

.....and herein lies the crux of my question....is it good practice to implement load balancing in two places?...

 

 

My own feelings are that the overhead of managing load balancing configuration in two places is unnecessary.

 

I feel a simpler scenario would be a "flattened" topology where the webservers and app servers were side-by-side (assuming proper DMZ strategy etc) and BIG IP made the decision to send requests for *.html to the webservers and requests for *.jsp directly to the application servers.

 

 

Would be very interested to hear what other people doing / thinking

 

 

Thanks in advance

 

Bob

 

  • Hi Bob,

     

    In my situation I am actually doing both, which entirely depends on the Web App behavior and the number of shared environments you have. The best way we determine which works is simply to test it under load before it hits production.

     

    Sometimes you have a Web Application that behaves in harmony with it’s App server that the app server is load balanced by inheriting the balancing on the Web server. Unfortunately for me :-), I am seeing less and less of this.

     

    However, this goes entirely out the door when the app server has multiple instances for other applications. This is because the business is looking to do more items for even less infrastructure and one of the key ways is to share systems and basically squeeze every last drop of CPU, memory and storage to fully realize their investment. This means you have have to load balance at both app and web layers.

     

    Of course this means you have to be even more careful on how structure your tiers. For example I keep app servers and web servers on different load balancing VLANS.

     

     

    Hopefully you found my story interesting and I am sure there will be plenty of other stories many other people can share .

     

    Thanks for reading,

     

    CB

     

  • There is a deployment guide for WebSphere: http://www.f5.com/pdf/deployment-guides/websphere-bigip9-dg.pdf Click here

     

     

    An iRule for replacing the Apache Plugin: http://devcentral.f5.com/Default.aspx?tabid=63&articleType=ArticleView&articleId=258 Click here

     

     

    and some monitoring advice: http://devcentral.f5.com/weblogs/deb/archive/2008/08/05/3518.aspx Click here

     

     

  • Hi Bob,

     

    We are not using load balancing modules on the web servers because they tend to be worthless to us as we have seen future upgrades unbalance the load. To remain consistent we use the same load balancer to balance the application server. Both Web and Application server can sit on separate or same segments off the load balancer. From a security perspective this can also be accomplished by moving the app server behind a firewall further downstream and perform the same thing.

     

     

    CB

     

     

     

     

     

     

  • Hi CB,

     

    Sounds like you have the same drivers as I have this end. I've fielded the principle to stake holders at my end and opinion is divided. My challenge now is to determine what "most" other organisations are doing, hence the post. From what I've gathered from forums and generally chatting there is no right or wrong answer, it's a case of what best fits the organisation in terms of operational processes etc. Many thanks for the input.

     

     

    Bob