Application Traffic Management

Many of today's most challenging load balancing issues involve recognizing and understanding the nature of individual application requests and responses. Zeus Load Balancer (ZXTM LB) can read and understand requests, and then direct appropriately.

Zeus software is a future-proof and scalable solution that can be adapted to meet changing business requirements. The functionality of the Zeus Traffic Manager product family is vertically-scalable enabling businesses to upgrade from load balancing (Zeus Load Balancer) to a full application traffic management system (Zeus Traffic Manager) as more enhanced features are required, all without complicated migration.

Resilient Load Balancing

A typical fault-tolerant cluster
Click the image to enlarge

Zeus Load Balancer allows you to create a fully fault-tolerant cluster of server machines by protecting against failures of back-end server nodes and front-end load balancer units. Providing that sufficient balancer and server machines are functioning, the cluster will continue to operate without failure.

If a server goes down, you need to know that your web sites will keep running. Zeus Load Balancer can seamlessly handle server failure, redirecting traffic to a different, healthy machine without your customer ever knowing. What's more, because it can be deployed in fault-tolerant pairs, if a balancer machine is unavailable, another machine will automatically handle the traffic until the problem is fixed.

Quick Links

How can Zeus Load Balancer ease the administration of my cluster?

Zeus Load Balancer has a comprehensive and intuitive graphical user interface, allowing the management of multiple load balancers and clusters of servers. It is very easy to add or remove machines from the load- balanced cluster, balance new services, or to modify the content inspection rules.

The user interface provides comprehensive monitoring and diagnostics tools, allowing you to detect and diagnose a wide range of problems with any component of your load-balanced cluster. You can even configure an external alerting service so that details of problems can be reported immediately by email to a nominated system administrator.

How does Zeus Load Balancer compare with a hardware load balancing solution?

Zeus Load Balancer is a pure software application. It is built on top of the same high-performance core architecture as the award-winning Zeus Web Server and Zeus Traffic Manager.

As a result of its application awareness, Zeus Load Balancer is best deployed close to the servers it is managing. If you need to make sophisticated internet traffic management decisions, and need to closely monitor the health of the services you are hosting, it is optimally suited for this environment.

Zeus software offers far more than a traditional load balancing solution. Its traffic management capabilities bring much more flexibility and fine-grained application layer control than is possible with most pure-hardware load balancing solutions. Because it supports a range of platforms and operating systems and runs on commodity hardware, its performance can easily and cost-effectively be grown as required.

What configurations of Zeus Load Balancer are possible?

A typical fault-tolerant cluster
Click the image to enlarge

The basic architecture of a load-balanced server farm consists of one or more front-end Zeus Load Balancer machines, a number of back-end server machines. They can be administered from either unit.

The front-end machines should be able to route traffic from the Internet to the back-end machines, and back from the back-ends to the Internet.

Zeus Load Balancer is available in single and resilient cluster configurations. Clustered configurations offer the benefits of increased capacity and fault-tolerance to front-end failures.

Does Zeus Load Balancer introduce a single point of failure?

A single front-end Zeus Load Balancer can introduce a single point of failure to a load-balanced cluster. Zeus software is designed to operate in a robust manner, but should the hardware or operating system fail for whatever reason, your load-balanced cluster would be unavailable. However, this risk is not acceptable.

Fault-tolerant clusters ensure service continuity

The solution is to run a fault-tolerant cluster of front-end machines. The machines monitor each other, and can take over from each other if the other should fail.

This is achieved by floating Traffic IP addresses. The load balancers receive traffic on these IP addresses, and each load balancer in a fault-tolerant pair monitors its partner. If one machine were to fail, the other balancer machine takes over its Traffic IP address.

This fail-over behavior is completely transparent; any clients that subsequently use the cluster get no indication that a machine has failed and fail-over has occurred. When the first balancer recovers, it regains its Traffic IP address and the second balancer relinquishes it.

What are the benefits of a high-availability cluster?

Donna Scott, a Gartner analyst remarks:

"Despite the Internet driving a significantly increased desire for continuous availability, through 2005, fewer than 20% of mission-critical Web-based applications will achieve it."

Studies have shown that service downtime, even for relatively brief periods, cause major losses of revenue, staff hours, and customer confidence. It is therefore no longer acceptable to be running mission-critical or revenue-generating services without some kind of redundancy built-in.

By deploying a fault-tolerant pair of Zeus Load Balancers, and ensuring that there is sufficient redundancy in your server farm, you can protect yourself against hardware or software failures in your load balanced cluster.

How does Zeus Load Balancer protect back-end services?

Zeus Load Balancer provides fail-over management of back-end services. If you had four back-end servers and one was to fail, it will automatically direct all network traffic to the remaining three servers.

How does Zeus Load Balancer identify a back-end failure?

Zeus Load Balancer identifies a back-end failure when either:

  • It cannot connect to the back-end
  • The back-end unexpectedly closes the connection
  • The back-end fails to respond to the connection

These conditions can be provoked by a number of circumstances:

  • The back-end machine has completely failed due to a hardware or operating system fault
  • The back-end machine has intentionally been shut down for maintenance reasons
  • One of the services running on the back-end machine has stopped or failed
  • The back-end machine is excessively loaded and cannot respond to requests within an acceptable time
Reducing time to fix with ZXTM LB's diagnostics
Click the image to enlarge

If any of these conditions occur repeatedly, Zeus Load Balancer will mark the back-end machine as 'dead' and raise an appropriate alert to the system administrator. It will stop sending traffic to the back-end.

In time, it will begin to speculatively send traffic to the failed back-end. If the back-end does not respond, the Zeus Load Balancer will resend the traffic to another, known good back-end server. If the back-end does respond, it will mark the back-end machine as 'alive' and will gradually increase the number of connections it sends the that machine until it is fully reintroduced back into the cluster.

Consequently, none of the back-end machines introduce a single point of failure in your load-balanced cluster.

Why do load balancers need to be able to inspect requests?

A typical fault-tolerant cluster
Click the image to enlarge

Perhaps you have a variety of web servers with different capabilities: Windows servers dedicated to hosting ASP pages; powerful UNIX servers for hosting Java applications; servers tuned for high-speed serving of static content; or perhaps you need to implement quality-of-service standards and want to reserve several of your web servers for the exclusive use of premium, paid-for visitors to your web site.

Zeus Load Balancer can be configured with rules that identify the roles of back-end server nodes. It can then inspect incoming application requests and forward them to the most appropriate back-end server node.

How does Zeus Load Balancer manage persistent sessions?

Session persistence classes
Click the image to enlarge

Many complex applications maintain a large amount of information about each user. For example, an e-commerce application may have to store the details of the items that each user has in their shopping basket, as well as their payment status.

Such applications often store their state locally, and hence do not run well in a clustered environment. Sharing and updating the state across all the application servers in the cluster may be difficult or even impossible. To deal with this problem, the front-end load balancer must ensure that all requests in the same user's 'session' are routed to the same back-end application server.

Zeus Load Balancer can achieve this in a variety of ways. The simplest and most transparent way is to employ it's 'Session Affinity', which allows individual URL mappings to be specified as 'sticky'. All requests that match a particular criteria can be directed to the same cluster of machines, and sessions are automatically honored.

How can I remove back-ends from the cluster without disrupting sessions?

Draining a node of connections
Click the image to enlarge

Session persistence is a powerful tool, until you need to remove or shut down a back-end server machine. Once the machine is unavailable, all the existing sessions to that machine will fail.

Zeus Load Balancer also allows you to indicate that a back-end machine should stop receiving new connections; this is referred to as 'draining connections' from the back-end. When it is draining a machine, it stops sending new connections to that machine. However, it will forward established session connections to the machine so that the session is not disrupted.

Zeus Load Balancer indicates how long each back-end has been idle for. This helps you judge whether or not all existing sessions have timed out, and hence when it is safe to remove the back-end from the cluster.

How can Zeus Load Balancer protect back-end servers nodes from becoming overloaded?

Zeus Load Balancer is continually monitoring the performance of each of the server nodes in your cluster. If a node is becoming slower to respond, perhaps because it has received some complex requests, it will send fewer requests until it has a chance to recover.

How does Zeus Load Balancer choose to which server it sends requests?

ZXTM LB's choice of load balancing algorithms
Click the image to enlarge

Simple load balancing techniques like round-robin or weighted round-robin balancing fail to extract the maximum possible performance from a cluster of machines, particularly when the machines have different capabilities, or if different requests can generate different loads.

Zeus Load Balancer strives to provide the best possible degree of responsiveness from your server cluster by dynamically measuring the response time and number of connections for each server machine, and making request forwarding decisions based on this.

In addition, it inspects every incoming HTTP request and makes further request forwarding decisions using several advanced dynamic algorithms. These algorithms seek to preserve HTTP sessions between a client and the back-end server, and to optimize the use of the back-end server caches to effectively distribute the content of the web sites across all the servers in parallel. This brings extreme efficiency in content delivery, giving visitors better performance and IT managers better utilization of their hardware.

How does Zeus Load Balancer enhance the responsiveness of web caches and web servers?

Zeus Load Balancer provides maximum speed gains for large web sites by not only spreading the workload across the back-end servers, but by arranging for the re-use of the local cache of individual back-end server nodes, using a cache affinity algorithm.

This ensures that wherever possible, requests for the same resource are directed to the same back-end server. That back-end server is likely to have that resource in its local cache, so it is likely that it can deliver the resource more quickly than other servers in the cluster.

This feature has the useful side-effect that the entire cache for a web site is effectively spread across the entire cluster. The size of the effective cache is the sum of the cache sizes of all the servers in the cluster. Without this feature, the effective cache size would be the average cache size of the machines in the cluster.

Does Zeus Load Balancer support HTTP Keep-Alives?

Zeus Load Balancer fully understands the HTTP protocol, and is able to split apart and reassemble HTTP Keep-Alive connections on the fly.

An HTTP Keep-Alive connection is a persistent connection that can be reused multiple times for different requests. Using Keep-Alive connections increases performance by reducing the setup time for each request, and reduces the resource usage by reducing the number of ephemeral ports that are required.

The Zeus software maintains Keep-Alive connections to the back-end servers. Even if the load balanced cluster were to be accessed by a client that could not handle Keep-Alive connections, it would send the requests down an existing or new Keep-Alive connection to a back-end server, thus optimizing the network usage of the request.

The Zeus Load Balancer can even create Keep-Alive connections to the client when the back-end web server is not able to. If the back-end web server provides sufficient auxiliary information, it will honor a client's request for a Keep-Alive connection even if the web server were to terminate the connection.

Contact Us Now

Call Zeus

EMEA: +44 1223 525000
US: 1-888-ZEUS-INC

Staying in touch

Email usZeus BlogZeus KnowledgeHub

Share with a friend

Email this page to a friend

 

© Zeus Technology Ltd