Cloud computing provides dynamically scalable resources as a service over the Internet. It consists of interconnected, virtualized computers that are provisioned and presented as unified resources. Services include infrastructure, platform and software and are accessed from any device via the Internet in a pay-as-you-go manner. Key enabling technologies include virtualization, web services, service-oriented architecture, and mashups. Features include on-demand scaling, location independence via any device, quality of service guarantees, and no upfront capital costs as users pay for what they use. Major providers offer platforms for deployment of applications and services.