Cloud computing refers to the ability to provision computing infrastructure and higher-level services for an application from an external provider over the internet. Companies offering these multi-tenant computing services are called cloud providers and typically charge on a pay-per-use basis, thus enabling delivery of infrastructure and services in a utility model.
In the spirit of service-oriented architecture, cloud computing is packaged in three broad flavors, which are described next.