Cloud computing allows users to access computer resources and software applications over the internet on an as-needed basis. It delivers web-based applications through virtualization using established internet connectivity protocols. Cloud computing provides users flexible access to resources that they can purchase and use only when needed, rather than having to own and maintain physical computing infrastructure themselves. It represents a shift to computing delivered as an on-demand service.