Cloud computing provides
- on-demand self service: consumer can provision compute as needed without human intervention
- broad network access: capabilities are available over the network through standard mechanisms
- resource pooling: the provider's computing resources are pooled together to service multiple consumers
- rapid elasticity: easy to scale up or down provisioned computational resources
- measured service: resource usage can be monitored and reported to the consumer
Cloud computing started in the 1960s and 70s with time-sharing. There was a big computer in a room, and anyone who wanted to use it had to share time with others who wanted to use it.
Next came **virtualization**, where computing hardware was centrally located but still owned and managed by each organization. Internet startups in the 90s would "rack their own server" in the data center.
**Serverless** followed in the early 00s and continues today, where cloud providers allocates machine resources and compute capabilities on demand (so, "serverless" only to the client).