For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

fiveeuros_22972's avatar
fiveeuros_22972
Icon for Nimbostratus rankNimbostratus
Oct 19, 2015

Load-balanced call to executable on web server

Hi

 

We have a pair of web servers serving an internal application. They are sitting behind an F5 load balancer with cookie sessions enabled. As of now, only one of the servers is marked as active and is receiving all of our traffic.

 

On this active web server, there are a number of executable processes that are scheduled (via Quartz scheduler) to run at various points through the day. It's important that these process each execute once and once only per day. They are all currently disabled on the inactive web server.

 

Target state is obviously to get both web servers active behind the F5 load balancer, however we need to ensure that the executable processes don't get called twice (i.e. once per server).

 

Is there a standard way to enable these executable processes on each web server, once both are active, and route scheduled calls to them via F5 (thereby ensuring that they are called one time on one server)?

 

Thanks

 

fiveeuros

 

5 Replies

  • They're scheduled and called using Quartz scheduler, also I believe running on the web server. They don't need to be on the web server though; that's where they were historically, and where they have remained.

     

  • Understood, but do requests from the Quartz scheduler flow through the BIG-IP to get back to the same web server? How often is the scheduler set to run? What would you want to happen if the scheduler ran more than once? Do you need each scheduler request to go to a specific web server (ie. itself), or load balanced across the multitude of web servers?

     

  • Ah ok - I'll address your points in turn:

     

    Do requests from the Quartz scheduler flow through the BIG-IP to get back to the same web server? Not currently. Quartz runs directly on our web server which is behind BIG-IP.

     

    How often is the scheduler set to run? 3 times daily, (during downtime/non-business hours for different geographic regions)

     

    What would you want to happen if the scheduler ran more than once? With the current implementation of the process called by the scheduler, we would get undefined results, or business entities in incorrect states. We don't want this to happen obviously, so the process is called on the single server only.

     

    Do you need each scheduler request to go to a specific web server (ie. itself), or load balanced across the multitude of web servers? Nope, it doesn't have to go to a specific web server. What I'm trying to achieve is: Enable both web servers behind BIG-IP Have the executable process active on both web servers Then have some scheduler process (Quartz/SQL Agent/Something else) call the executable process via BIG-IP This will route the call to one of the web servers - doesn't matter which one, as long as it's one and one only per call.

     

    I'm not clear as to whether this is achievable - i.e. can a scheduler process call an executable via BIG-IP? Will we need to build in some http/https hook to allow BIG-IP to route the request to the executable process?

     

    Thanks fiveeuros

     

  • There's really two parts to this equation:

     

    1. Getting the Quartz scheduler to make (I'm assuming HTTP) queries through a BIG-IP virtual server that load balances the two web servers.

       

    2. Creating a tracking process in an iRule that defines what is available to query. If you're talking about two servers (or even a small handful), it's probably reasonable to create a long-lived session table that maintains access tracking. You could employ istats logging and a few other ways to track which server was accessed in a 24-hour day.