Supporting millions of http connections with Zen Load Balancer

Posted by Admin | 30 October, 2015 | Technical

Every year increases the world population connected to the internet, we have more devices connected and life becomes more digital oriented. This means using more digital services and more users. We present you a solution to adapt your infrastructure to your user base growth.

We are going to approach this case with a two-layered load balancing architecture. We’ll use two types of farms, HTTP and L4xNAT profiles.

The HTTP profile is a high-level of abstraction layer (application layer on ISO model, or layer 7) with advanced customizations and features like: cookie insertion, session persistence, HTTPS backends and SSL offload among others. This features are really useful but they come at a performance cost, and here is where the L4xNAT profile comes handy.

The L4xNAT profile is a low-level of abstraction layer (transport layer on ISO model, or layer 4) allowing amazingly fast load balancing at a very low performance cost. The combination of these two types of load balancing permits a great deal of concurrent connections with the features of the HTTP profile.

First layer, Zen Load Balancer with L4xNAT profile with the next configuration:

Protocol type: TCP
NAT type: NAT
Load Balance Algorithm: Weight
Use of FarmGuardian to check Backend Servers: On
Command to check: check_tcp -H HOST -p PORT

This is an example FarmGuardian command to test every host accepting connections on its configured port. For more information about FarmGuardian and its configuration look here.

Now, for every Zen Load Balancer on the second balancing layer we’ll create an HTTP profile farm. We can use as many Zen Load Balancers on this layer as we need, we can also increase them as needed, any time.

Number of working threads: 10240
Rewrite Location headers: Enabled
Farm listener: HTTP or HTTPS, as needed.
Add service: Backends
Persistence session: COOKIE
Persistence session time to limit: 300
Persistence session identifier: ASPSESSIONID
Least response: Enabled

A very important situation to take into account, specially in the most critical part of this arquitecture, the first balancing layer, is to eliminate a single point of failure, this can be achieved using a Zen Load Balancer cluster.

Please comment if you have any thought about this.