Cloud computing allows users to access computing resources like data storage, servers, databases, networking, software, analytics and more over the internet. It delivers these resources as a service rather than a product. Key characteristics include on-demand services that are scalable, accessible from anywhere, and users only pay for what they use. The main cloud models are SaaS, PaaS and IaaS which provide software, platforms and infrastructure respectively as services over the internet. While cloud computing provides advantages like flexibility, cost savings and mobility, challenges include security, reliability and availability concerns.