Cloud computing is the shared pool of resources available in a remote area. This computing offers hardware and software resources such as operating systems, applications, and storage, over the Internet. It uses the services mentioned above from anywhere globally by renting instead of buying these resources. The Cloud computation works on a pay-per-use basis, and it charges the users based on the usage of their resources. It has several advantages such as cost, speed, global scale productivity, performance, security. Cloud computing maximizes the profit to both the service provider and user by allocating resources optimally in the Cloud.
In Cloud computing, resources allocation plays a vital role since improper resource allocation leads to wastage and the starvation of resources. The resource allocation helps in the optimal provisioning of quality resources within the minimum cost. It also maximizes the profit of the service providers by increasing the efficiency of resource utilization in order to improve the satisfaction level of users. There is a certain resource allocation strategy for the effective utilization of the resources, which are described as follows: The resource allocation is performed using the Social-Group-Optimization (SGO), and the task scheduling is performed using the Shortest-Job-First Scheduler (SJF). Some of the systems use Ant Colony Optimization (ACO) for resource allocation to minimize cost response time. They aim to maximize resource utilization by monitoring the VM to migrate when the physical machine is over-utilized.
Currently, algorithms are used for resource allocation still face challenges such as resource contention, resources scarcity, resource fragmentation, over and under-provisioning of resources. The existing system fails to optimize the cost and the latency while performing the resource allocation. Similarly, Some approach promotes the rate of migration to perform the load-balancing operation. In consequence, it automatically increases the power consumption and the makespan. Although, most of the existing systems effectively optimize only two metrics from energy consumption, latency, and cost. Hence, it is necessary to optimize all these metrics and the challenges.