Cloud computing refers to on-demand access to shared computing resources like networks, servers, storage, applications and services via the internet. It offers benefits like scalability, cost savings and convenience. However, it also faces challenges like security concerns, vendor lock-in and lack of control. There are various cloud deployment models including public, private and hybrid clouds that differ based on who manages the infrastructure. Virtualization is a key technology that allows efficient utilization of physical resources and flexibility in cloud computing.