Cloud computing is a model for enabling ubiquitous and convenient on-demand access to a shared pool of configurable computing resources like networks, servers, storage, applications and services that can be rapidly provisioned with minimal management effort. There are five essential characteristics of cloud computing including on-demand self-service, broad network access, resource pooling, rapid elasticity and measured service. There are also four deployment models (private, community, public and hybrid clouds) and three service models (IaaS, PaaS and SaaS).