Rapid spikes in online traffic can challenge the best websites also. During online sales events, even a little interruption can cost lots of damage. Cloud manages online traffic by distributing workloads across multiple servers & resources. One characteristics of cloud technology is virtualized network access to a service - no matter where you access the service, it will direct you to the available resources.
Cloud load-balancing is the process of distributing workloads & computing resources within a cloud technology's environment. It also helps organizations & enterprises to manage workload demands by allocating resources among multiple systems or servers. Cloud load balancing also involves hosting the distribution of workload traffic that resides over the internet.
High performance level of tasks can be achieved using this load balancing technique on a lower cost than traditional on-premises load-balancing technology. In addition to workload and traffic distribution, cloud technology's load balancing can also provide health check for Cloud applications.
Application of Load Balancing
Load balancing can be implemented in hardware as is the case with F5's Big IP server or in software also such as Apache mod_proxy_balancer, the pound load-balancers & reverse-proxy software. Load balancing is an optimization technique which can be used to enhance utilization & throughput, lower latency, reduce response time & avoid overloading of systems.
Load Balancing The Network Resources
The following network resources can be load balanced:
- Network interfaces & services such as DNS, FTP & HTTP
- Processing through computer system assignment
- Access to application instances
- Connection through intelligent switches
- Resources of storage
Without load balancing, it would have been very difficult to manage the cloud technology. It provides necessary redundancy procedures to make unreliable system reliable via managed redirection.
Load balancing system can use a different mechanism to assign direction to various services. In a simple case, load balancers are used to listen to network ports of the service request. When the request from a client arrives, load-balancers use the scheduling algorithm (round robin & weighted round-robin are mostly used) to assign where the request is sent.
Cloud Load Balancing Vs. DNS Load Balancing
- Cloud load balancing can transfer loads to servers globally whereas DNS load balancers cannot.
- Cloud load balancers have the ability to deliver users to the closest regional server without interrupting the user's tasks.
- Cloud load balancers addresses issue relating to TTL reliancy used in DNS load balancing.
- Cloud load balancing has the capability to increase response time by routing remote sessions to the best performing data-centers.
Load Balancing Scheduling Algorithm
A typical scheduling algorithm pseudo code for Load balancing is given below:
Syntax:
minmin() { Generate completion-time matrix for each task in task-list { Search for Minimum completion time of matrix; Assign task in repetitive mode; update the Completion-time; } }
The Load-Balancing Min Min (LBMM) technique assigns sub-tasks to those nodes which require least amount of execution time.
A session ticket is created by the load balancers so that related traffic from a client session can be properly routed to the same resource. Without this session record or persistence, a load balancer would not be able to correctly failover a request from one resource to another.
Goals Of Using Load Balancers
- Application Response time
- Availability of application - efficiently
- Time of day
- User location
- The current & total capacity of data centers in which application is deployed