Cloud computing provides on-demand access to hardware and software resources over a network, allowing users to access applications and files from any internet-connected device on a pay-per-use basis. It encompasses various architectures, including cluster computing, peer-to-peer networks, and grid computing, each with distinct characteristics and uses. Virtualization in cloud systems enhances cost-effectiveness and scalability for both users and providers.