Today, I will answer a seemingly simple question:

What is a Cloud?

My definition is:

A Cloud is a set of managed computing services backed by vast resources, billed in small increments , and made available via API.

This definition comes largely from Adrian Cockroft, Werner Vogels, and others.

Further, ‘Cloud’ enables a computing model where consumers can provision and release resources within the cloud rapidly with minimal management effort or service provider interaction.

Even further, Cloud computing is a technology and economic model where you can use as much as you want and pay (only) for what you use.

Managed computing services

A Cloud provides a set of computing services to customers based on the economics of providing the service to that market. The service provider is responsible for developing the service as a product and managing its operation. The service provider performs all capacity planning for the service. Additionally, the service provider must offer facilities like security controls and backup that enables the service’s customers to keep the data safe.

Benefit: Cloud customers have access to a wide variety of services developed, operated, and supported by vendors from vendors with the motivation and ability to offer that service.

Vast resources

The Cloud provider backs its services with vast, though not infinite, resources.

This Cloud capacity enables customers to shift their resource consumption model. Instead of forecasting and purchasing compute resources based on annual forecasts, customers can rely on provisioning resources when they need to consume them, e.g. in the next minute, hour, or day.

Benefit: Cloud customers can provision large amounts of compute resources to capture business with little forecasting and no capital expenditure.

Billed in small increments

The economic model of the Cloud allocates costs for the resources consumed by each user in small increments. This is similar to a utility bill for gas or electricity that has been measured by a meter of some kind. A Cloud provider will measure the amount of compute, storage, or network resources consumed by a user and charge for those resources in terms of seconds, bytes, and bytes, respectively. Then they will charge you for that usage.

Benefit: Cloud customers pay only for what they use.

Available via API

Clouds must offer the ability to allocate and deallocate resources via APIs so that customers can use (only) what they need, when they need it. Customers must be able to automate these resource provisioning activities. This eanbles customers to achieve high utilization of those resources by releasing idle resources.

Benefit: Cloud customers can use APIs to provision resources to track their application’s own varying demands in a cost-efficient way.

Tying it altogether

The ‘Cloud’ changes the economics of application deployments by shifting to pay-for-what-you-use consumption based model. You can and should use the Cloud’s resource provisioning APIs to allocate resources when you need them and release them when you’re finished. This should result in cloud application deployments that converge to scale up and down with the demand of customer usage and (even) allocation of operating expenses for that service back to the revenue produced by that application.

Be careful when considering ‘Lift and Shift’ application migration strategies. The economics of your current application deployment may depend on low or profligate utilization being unaccounted for or in another department’s budget.