LOAD BALANCING ALGORITHMS IN CLOUD COMPUTING ENVIRONMENT

: Cloud computing is a radical technology which provides computing as-a-service instead of providing computing as a product. It provisions computing resources on demand by paying for fraction of time we are using them. Concept of cloud reduces overall cost and management efforts through efficient utilization of various resources. Cloud computing has developed too much but still it has various research challenges like security, reliability, availability, load balancing, power management and data traffic analysis etc. which need researchers immediate attention. Load balancing is one of the hot research areas nowadays. It is the process of uniformly distributing workload on geographically distributed data centers. Load balancing algorithms provide the mechanism of adjusting load according to the application and node capacity. This paper focuses on load balancing, dynamic and static load balancing algorithms and future work in this direction.


I. INTRODUCTION
The concept of cloud has brought a revolution over internet for executing different applications without spending too much on various resources. The concept was firstly introduced 1960's when IBM developed its mainframe computers. Cloud inherited various concepts from mainframe systems like consumption-based pricing model, virtual machines and multi-tenancy etc. and term cloud became popular in 2007. Cloud can be divided in frontend and backend. Frontend is made up of consumers of cloud and backend of cloud providers and cloud developers. Future of cloud is glorious and it is used almost in every area these days like transportation, healthcare, mobile computing, monitoring and education etc. [1] [2].
Cloud is used almost in everything from storage to processing. It provides opportunities to third parties and large or small business organizations to flourish their business without too much initial investment. For efficient working and response from cloud, it's important to balance load on nodes of cloud. Load balancing is the uniform distribution of load on the different nodes of cloud so that none of them gets overloaded or under loaded and we get good results by enhancing various parameters like response time, throughput, energy consumption and processing speed etc. [3] [4] Various types of load balancing techniques can be applied depending on application requirements like static, dynamic, hierarchical, distributed, and centralized etc. Dynamic algorithms are used widely as they consider current state of system, can work in distributed and heterogeneous environment.
This paper is organized as follows section 2 discusses important characteristics of cloud computing, section 3 discuss various load balancing algorithms and section 4 concludes the paper.

II. CLOUD COMPUTING
Cloud inherits features of various existing technologies like distributed computing, grid Computing, utility computing and autonomic computing etc. Main idea which makes cloud different from other technologies is virtualization through which multiple applications can be executed on a single server simultaneously [5].

A. Features of Cloud
Cloud provides various features which makes it different from other technologies. Some features shown in Fig. 1. are listed below.
• On-demand-services: cloud resources can be accessed by user at any time and in any amount. • Broad access: services can be obtained from cloud at any time and at any place.  • Cost efficient: This model reduces cost by providing shared access to resources in cloud. Cloud environment can be allocated and de-allocated depending on need. When demand decreases, these resources can be de-allocated which leads to significant decrease in cost. • Peer-to-peer model: Cloud is made of distributed nodes without any central authority and all nodes (either service provider or service user) are at same level. • Reliable: Cloud computing model is highly reliable as data is replicated on multiple nodes, if one node goes out of service other can handle its tasks. • Elastic model: User can demand additional resources from cloud according to their requirement as cloud provides flexible environment.

B. Cloud Services
Three types of services are provided by cloud to its user software as a service, platform as a service and infrastructure as a service [6].
• Software as a service: This model provides different software which can be directly used by user without any concern about their infrastructure and implementation. Gmail, Facebook, Microsoft online are example Software as a service hosted over cloud [7].

C. Deployment Models
Four type of clouds are provided by cloud service providers depending on user's demand about different parameters like security, reliability etc. as in Fig.2. [8].
• Public cloud: This cloud is owned and managed by large organizations like Google, Microsoft etc. and available for general public. Public cloud is less secure because of its public access. • Private cloud: Private cloud is secured one and exclusive for the use of a single organization. This cloud is costly as compared to public cloud. • Community Cloud: This cloud is owned and managed by multiple organizations that have same working procedures. This is cost effective way of using cloud as cost is shared among organizations. • Hybrid cloud: This cloud is combination of public, private and community cloud. This cloud is secure and more flexible as it combines benefits of all three clouds. Different types of cloud deployment models are listed in Table 1.

III. LOAD BALANCIING
Cloud is made of large no of nodes or servers distributed geographically. Whenever a request arrives for processing of an application it needs to be distributed uniformly among servers of cloud without depleting its resources. This process of efficiently distributing load across servers without getting overloaded or under loaded is called load balancing [9] [10]. Existing load balancing algorithms can be broadly classified into various categories like static, dynamic, centralized, distributed, hierarchical etc. [11] [12]. Comparison between dynamic and static algorithms is shown in Table 2.

A. Static Algorithms
Static algorithms rely on history and don't consider present state of system. These algorithms are easy to implement and works for homogenous environments. These algorithms are obsolete now and not used much. Few of the static algorithms are compared in Table 3.

B. Dynamic Algorithms
These algorithms consider both present and previous state of system. They are fault tolerant and can handle busty traffic efficiently even in heterogeneous environments. These algorithms are used often for balancing load on cloud. But these algorithms incur high cost and take more execution time. Comparative analysis of important dynamic algorithms is presented in Table 4.

IV. CONCLUSION
Use of cloud is ubiquitous and increasing at faster rate. Cloud is used nowadays in almost every area. Cloud computing technology has provided an opportunity for business organizations to flourish without making much investment in infrastructure. Due to ubiquitous use of cloud, data on cloud is increasing at exponential rate and it needs to be managed properly for efficient use of services. Load balancing techniques are used for uniform distribution of data so as to balance load on different servers. Millions of users are using cloud computing services and their number may increase in future. Increase in load on servers will lead to increase in response time resulting in user dissatisfaction and performance degradation. So by applying efficient load balancing technique for distributing user's requests uniformly over nodes of server, system performance and user's satisfaction can be increased significantly. This paper presented an analysis of static and dynamic load balancing algorithms on cloud. Dynamic algorithms are more efficient and used more frequently for handling runtime traffic as their decision is based on both current and previous state of system. Different algorithms consider different parameters like throughput, response time, bandwidth etc. for balancing the load on nodes of cloud. Future work will be oriented towards design of an efficient load balancing algorithm considering energy consumption, VM migration etc and combining best features of static and dynamic algorithms so as to provide cloud services efficiently and with ease in different environments.