Cloud computing allows users to access computer resources and applications over the Internet. It provides on-demand, scalable access to shared pools of configurable computing resources like networks, servers, storage, applications, and services. Resources can be rapidly provisioned and released with minimal management effort. Cloud services follow five essential characteristics - they are delivered over a network and accessed via standard mechanisms, provide on-demand self-service, broad network access, resource pooling, rapid elasticity, and are metered by usage. There are three main service models - Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Cloud deployments can be private, public or hybrid.