I. Introduction
Cloud computing is a multi-tenant internet-based platform that provides digital service delivery by various cloud service providers on-demand base which is subject to quality of service (QoS) constraints [1], [2], [3]. We have seen a rapid growth in cloud technology development in recent years. This is due to its vast benefits including 1) cost reduction in upfront capital expenditure on hardware, software, hosting and deployment; 2) availability; 3) location independence; 4) flexibility and 5) market agility [4]. Cloud provides: (i) softwares which are available via a third-party over the Internet referred as software as a service (SaaS), (ii) services such as storage, networking, and virtualization known as infrastructure as a service (IaaS) and (iii) hardware and software tools available over the internet which is commonly referred to as platform as a Service (PaaS) [5].