Abstract
: In modern data centres, efficient resource scheduling and management of available resources is a major concern. Cloud computing has quickly emerged as a model for delivering Internet-based utility computing services. Infrastructure as a Service (IaaS) is one of the most important and rapidly growing areas of cloud computing. In this service model, cloud providers provide resources to users/machines such as virtual machines, raw (block) storage, firewalls, load balancers, and network devices. One of the most critical aspects of cloud computing for IaaS is resource management. Scalability, quality of service, optimal utility, reduced overheads, increased throughput, reduced latency, specialized environment, cost effectiveness, and a streamlined interface are some of the benefits of resource management for IaaS in cloud computing. Traditionally, resource management has been accomplished through static policies, which impose certain constraints in a variety of dynamic scenarios, prompting cloud service providers to adopt data-driven, machine-learning-based approaches. Machine learning is employed to handle a wide range of resource management tasks, such as workload estimation, task scheduling, VM consolidation, resource optimisation, and energy optimisation, to name a few. This paper provides a detailed comprehensive survey of background works that have used machine learning (ML) techniques to solve real-world problems in the cloud computing area, and they have used ML algorithms to optimize various objectives related to the cloud computing environment. We also discuss the role of Artificial Intelligence and ML in cloud computing and identify challenges in cloud data centres. Finally, we will discuss open issues and potential future research directions