Cloud computing allows users to access computing resources over the network. It has several key characteristics including on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service. There are three main service models (Software as a Service, Platform as a Service, and Infrastructure as a Service) and four deployment models (private cloud, community cloud, public cloud, and hybrid cloud). Achieving high performance, availability, and manageability in cloud computing requires techniques like virtualization, parallel processing, fault tolerance, load balancing and automation.