Cloud Computing has received much attention by the IT-Business world. As compared to the common computing platforms, cloud computing is more flexible in supporting real-time computation and is
INTRODUCTIONCloud Computing is a newly proposed model for hosting and delivering computing services over the web. It refers to the applications delivered as services over the Internet [1] [2] as well as hardware and systems software in the datacenters providing computing services. Cloud Computing is an attractive concept since it eliminates the provisioning planning requirements. It also allows enterprises to start up with fewer resources to serve the existing needs and to grow gradually in response to increasing demands. For example, suppose that an enterprise has an immediate need and the required budget to deploy and maintain an internal application within a short period of time [3] [4]. Although IT hosting teams understand the requirement, deploying applications typically require extensive coordination between hardware, software, operation and support teams. The procurement phase for the required hardware and operating system setup may require several months. Application configuration and testing, building the required operation procedures and moving to production environment are major challenges and may not have the enterprise support and operations quality [5].The main challenges that an enterprise has in deploying an application are not in the application itself but in the prerequisites and procedures involved in providing the infrastructure required for deployment and maintenance. When cloud computing is implemented, the need for the application hosting team to depend on the hardware team is reduced, because hardware is encapsulated and provided by cloud computing data centers. If the dependencies on servers, load balancers, routers, and switches are eliminated, the application hosting team can focus solely on deploying the application in the cloud service provider of its choice, with business approval [6].