Cloud computing provides on-demand access to shared computing resources like servers, storage, databases, networking, software and analytics over the internet. It offers advantages like lower costs, flexibility, scalability and productivity gains. There are different cloud deployment models including public, private and hybrid clouds. Common uses of cloud computing include storing and backing up data, running applications, analyzing data, and delivering software as a service. While cloud computing provides many benefits, challenges still exist around availability, data security, performance unpredictability and resource management across large, shared infrastructures.