?
Solved

Good components to load balance with failover and session support a PHP RHEL farm ?

Posted on 2012-09-18
12
Medium Priority
?
765 Views
Last Modified: 2014-11-12
Dear EEE,

Can you help me to find the easiest package to use to ensure load balancing with failover and session support capability to a PHP farm installed on RHEL ?

The application has been designed to be accessed from the Internet.
We are considering a classic architecture using RHEL on ESX with:
HTTP in DMZ : 1 VM is enough to support the expected simultaneous users
PHP in LAN : Many VM are required to feed the CPU monster used by PHP
DBMS in LAN

The question is both an architectural one and a component one.
For example, if you think that we should load balance on the HTTP DMZ side, please explain your opinion.

I currently consider that having components like HAProxy Keepalived running on the PHP servers could solve my problem.
Please try to explain your answer considering both installation complexity and production team capability.

Thanks for reading anyway :-)
0
Comment
Question by:BigSchmuh
  • 6
  • 4
  • 2
12 Comments
 
LVL 26

Assisted Solution

by:arober11
arober11 earned 750 total points
ID: 38413227
What's the skill set of the "production team", have they played with HAProxy? If not a close match have you considered moving the Application into the cloud e.g. AWS

You would be able to replicate your current set-up in a day, via some fairly simple to use Web Forms + uploads, as well as saving yourselves several pennies in the process.

If not, then to be truly tolerant / resilient you'll want a pair of load balancers in an Active, Active set-up, and ideally split between two data centers, and ditto for the switches, DNS servers and the rest of the network infrastructure, so costs will soon mount. Not to mention 24/7/365 support bodies available.

If you intend to host the app internally and have the budget (> $100K) I'd look at getting a pair of F5 Big IP's of an appropriate size, and associated kit, as their Web interfaces will guide a half awake pleb through pool definition, load balancing algorithm (leased used, round-robin, failover), setting session persistance, layer 7 fire-walling, SSL termination / acceleration....  Juniper Networks also offer reasonable fool proof Load balancing solutions.
0
 
LVL 18

Author Comment

by:BigSchmuh
ID: 38413427
The application is handling sensitive personal data that must stay internal.
We are not looking for a 24/7/365 support neither a super strong cluster.

For example, the DBMS platform will replicate its logs to a passive DBMS (offsite) to allow a 4 hours disaster recovery plan.

The production team has quite good knowledge of RHEL and may handle most OpenSource components already...but they are not currently fluent with HAProxy.

We are looking for opensource components allowing for a robust loadbalancing (with failover and session support) on all but the DBMS
0
 
LVL 26

Assisted Solution

by:arober11
arober11 earned 750 total points
ID: 38413676
If your after a free solution / alternitive to HAProxy, and you simply have a single HTTP / Apache server / instance, then the quickest / simplest solution would to be to use Apache's own mod_proxy_balancer, see:

http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html
http://www.jimjag.com/presos/AC-US-07/ACUS07-AdvancedApache2.2LoadBalancing.pdf


It will happily offer stickyness and handle member failover, even has a simply web base management interface.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 18

Author Comment

by:BigSchmuh
ID: 38420996
Does jk_module or HAProxy has some interest versus mod_proxy_balancer ?

I don't understand why there are so many modules that looks like being capable of handling my loadbalancing (with worker live detection and session support) requirement...

Can you elaborate slightly ?
0
 
LVL 33

Accepted Solution

by:
shalomc earned 750 total points
ID: 38425827
jk_mod is designed to be used with the Apache Tomcat server.

There are so many different commercial solutions for load balancing because people want a profit.
There are so many different open source solutions for load balancing for the same reason there are so many php based open source content management tools: because of developers' egos.

There are differences, though.
HAProxy let's you have a more modular architecture, to split the load balancing from the web serving.
It also has slightly better performance than Apache modules.
0
 
LVL 18

Author Comment

by:BigSchmuh
ID: 38426558
I read that the standard successor for jk and proxy modules was mod_cluster.
Do you have any experience about it ?
0
 
LVL 33

Expert Comment

by:shalomc
ID: 38433875
I have not used it. It looks like it has some very strong features.
However, it is designed to work only with Jboss :(
0
 
LVL 18

Author Comment

by:BigSchmuh
ID: 38437091
Do you have any experience with a load balancing with keepalive and session persistence module with success ?
0
 
LVL 33

Expert Comment

by:shalomc
ID: 38440462
yes.
0
 
LVL 18

Author Comment

by:BigSchmuh
ID: 38440506
And what was the components involved in your successful experience ?
0
 
LVL 33

Assisted Solution

by:shalomc
shalomc earned 750 total points
ID: 38440643
apache mod_proxy_balancer worked fine with session stickiness in php.
The AWS elastic load balancer works well too, but irrelevant in your case :)

I used HAProxy in AWS before they had the ELB, and we used memcached for session management so stickiness was not an issue.
0
 
LVL 18

Author Closing Comment

by:BigSchmuh
ID: 38482151
Thanks for enlightening the solution.
0

Featured Post

Vote for the Most Valuable Expert

It’s time to recognize experts that go above and beyond with helpful solutions and engagement on site. Choose from the top experts in the Hall of Fame or on the right rail of your favorite topic page. Look for the blue “Nominate” button on their profile to vote.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is intended for those who are new to PHP error handling (https://www.experts-exchange.com/articles/11769/And-by-the-way-I-am-New-to-PHP.html).  It addresses one of the most common problems that plague beginning PHP develop…
This holiday season, we’re giving away the gift of knowledge—tech knowledge, that is. Keep reading to see what hacks, tips, and trends we have wrapped and waiting for you under the tree.
Learn how to navigate the file tree with the shell. Use pwd to print the current working directory: Use ls to list a directory's contents: Use cd to change to a new directory: Use wildcards instead of typing out long directory names: Use ../ to move…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
Suggested Courses
Course of the Month14 days, 4 hours left to enroll

807 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question