Article Preview
Top1. Introduction
With the advancement in the computing paradigm, cloud computing has evolved as a ubiquitous, internet-based computing solution for business organizations throughout the globe. Cloud computing offers a shared pool of virtualized resources that can be provisioned as well as de-provisioned and can be accessed as a metering service by the customers on a pay-per-use model. Therefore, these characteristics made cloud computing ubiquitous and a utility. It delivers all of its services through a series of as-a-service models, such as Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS), and Software-as-a-Service (SaaS) (Mell & Grance, 2011). It deploys various cloud models, such as Public Cloud, Private Cloud, Community Cloud, and Hybrid Cloud to address the necessities of the customers. Cloud computing has become a compelling hotspot among many business organizations and researchers because of the virtualization technology. This feature enables users to create an abstract environment by expanding the capacity of the underlying resources. The underlying physical resources are encapsulated as abstract entities to provide on-demand services to the customers (Mishra, Sahoo, & Parida, 2020) (JoSEP, KAtz, KonWinSKi, Gunho, PAttERSon, & D., 2010). Virtualization is a technique that assimilates the fluctuating demands of growing customers. While scheduling tasks on virtual machines (VMs), there comes the point, when VMs are getting overloaded due to the lack of a proper load-balancing mechanism. It is also found that some VMs are underloaded or idle. Hence, there is a need to determine whether the system is balanced before scheduling. A slight deviation in load-balancing makes the system less reliable and thereby causing the degradation in performance. The load balancing should be improved in a way that makes sure that the overall loads are well dispersed by utilizing the resources significantly, and the makespan and the response time are considerably reduced by intensifying the overall performance.
Load balancing is the uniform distribution of loads among VMs, and it is essential to maximize the performance by utilizing the underlying VMs efficiently, where the load can be the total assignment of tasks to a virtual machine (VM). A significant load balancing technique not only improves the overall performance, but also ameliorates the quality of service (QoS) parameters such as response time, makespan, resource utilization, Degree of Imbalance (DoI), and so on (Milan, Rajabion, Ranjbar, & Navimipour, 2019). It is non-deterministic polynomial-time (NP) hard (Ibarra & Kim, 1977) (Ullman, 1975) to find out an optimal solution for a complex problem like load balancing due to the involvement of numerous contradicting scheduling parameters. The solutions to this problem are narrowed down into static and dynamic algorithms (Shah & Farik, 2015)(Chaharsooghi & Kermani, 2008). Static and dynamic are often referred to as heuristic and metaheuristic algorithms in the literature. Static algorithms are not extensively used in solving the aforementioned problem, because these algorithms are problem dependent, and do not guarantee to provide even near to optimal solutions. On the flip side, dynamic or metaheuristic algorithms are widely used, especially when the nature of tasks and resources are diversified. Metaheuristic algorithms are generally used for solving dynamically constrained and unconstrained optimization problems because these are problem independent (Kalra & Singh, 2015). It is suggested in the literature (Singh, Dutta, & Aggarwal, 2017) that metaheuristics are used to escape from local optima, as most of the algorithms get trapped in local optima during exploration of the problem space. Moreover, cloud load balancing is a dynamic problem, and hence, a binary variant of metaheuristic algorithm could be used for solving the above problem.
In this contribution, a binary variant of self-adaptive salp swarm optimization algorithm-based load balancing technique is proposed that not only maintains the trade-off among VMs but also maps the tasks onto the appropriate VMs. The key contributions in this piece of work are as follows.