Cloud computing is a model for enabling network access to configurable computing resources that can be rapidly provisioned with minimal management effort. It involves delivering computing resources like servers, storage, databases, networking, software, analytics and more over the internet. Key characteristics include on-demand self-service, ubiquitous network access, resource pooling, rapid elasticity and pay-per-use. Common types of cloud services are Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). Challenges of cloud computing include security, privacy, reliability and customization issues.