Cloud computing is a model for delivering computing capabilities as services over the network on an as-needed basis. It involves centrally hosted resources that are accessible via the internet. There are various deployment models including public, private, community and hybrid clouds. Resources are delivered through common models of software as a service, platform as a service, and infrastructure as a service. Key attributes include massive infrastructure, utility computing, pay-per-usage, elasticity, and accessibility via the internet.