Many organizations are embracing the cloud and deploying applications via public and private cloud servers. When using this deployment model, it is still essential to include load balancers in the infrastructure. Best practice has shown that it’s good to place load balancers within the same cloud service that is hosting your applications. Be that AWS, Azure, or another provider.
What is Load Balancing?
At a high-level, load balancers share client access requests to applications across a pool of application servers. The load balancing software uses various intelligent algorithms, and constant monitoring of the traffic on the network to evenly share the incoming client requests across the server pool.
Load balancers also monitor the health and status of servers in the pool to ensure that client requests are not sent to servers that can’t handle them. This monitoring allows for servers to be taken offline for scheduled maintenance without disrupting application access. It will also detect unplanned server issues and prevent requests from being sent to offline servers.
Modern load balancers can also inspect network traffic and route it to servers based on the type of data. For example, network video streaming requests can be routed to servers that are configured to stream video files.
Why Load Balance Servers in the Cloud?
One of the advantages to cloud deployment is the ease with which server infrastructure can be provisioned and made available. No lengthy procurement processes need to be undertaken. This ease of provision allows for an elastic infrastructure to be enabled. Applications on the internet are subject to variable amounts of use. There can be busy periods when the number of access requests spikes, and then other periods when they fall back to an average.
Cloud servers with hosted load balancers allow for new application server instances to be brought online and added to the load balancer pool when an application is busy. Then when demand falls the additional servers can be removed from the load-balanced pool and taken offline. This capability is especially useful when dealing with Black Friday and other sales spikes in traffic to online stores. Load balancers can also maintain shopping carts across multiple connections from the same client using session affinity, enhancing the user experience and driving sales.
Cloud applications are often hosted across multiple geographic regions to place servers and access points as close to users as possible. Having a network of load balancers across these various regions enables Global Server Load Balancing (GSLB). Doing this allows the servers in the different regions to be seen as a single pool, and user sessions can be routed to the best one at each particular moment. If a cloud site in Asia is very busy while sites in EMEA or North America are idle, then GSLB could route sessions to the available sites even though they are not local. The decision on whether to do this is based on local server load and the network latency.
This GSLB capability is also useful in combating DoS (Denial of Service) attacks. DoS attacks usually target a particular cloud region. If one occurs and makes applications in a region slow to respond, then traffic can be routed to other sites that are not under attack.
Cloud is Different, but the Same
Using cloud architectures changes how one manages the applications. It adds the benefits of elasticity and agility to the application deployment. On the other hand, it is important to remember that some of the core technologies that have been developed for private IT environments apply to the cloud design.
Advanced health checking and content steering policies through load balancing deliver key cloud benefits. Load balancing is a critical technology that enables core cloud functionality by managing pools of application servers and sites. All cloud architectures should include load balancing to gain maximum value.