So, the general attributes of cloud for IaaS, offhand, are:
- Elasticity; you can provision and deprovision it dynamically and rapidly, and you pay only for what you use (and granular billing to go with it)
- Redundancy "under the hood"; your specific instance may fail, but a cloud service should heal without intervention from a tenant, beyond doing things required by their instance(s) restarting
- Multi-tenancy - meaning many unrelated entities can safely share the same hardware with a separation of concerns
- API interfaces
- Accessibility over a network
Some people would include a lot of other attributes, such as "linearly scalable" (ie, 1 instance = N units of processing, then 2 instances should = 2N units of processing).
Ultimately, the promise of cloud computing is to deliver just as much computing as you need, where you need it, only for as long as you need it, with ~0 setup needed on your part. If you've ever provisioned servers, you end up asking something like:
- Do I need shared, dedicated servers, or my own colo space to set up?
- Do I need routers, firewalls, load balancers, vpn concentrators, etc?
- Which things need (for security/role reasons) separation?
And then, what's your timeline when any of those answers change?
Cloud handles application scale-up and scale-down more gracefully; this is one of those things that's been driving virtualization in the enterprise for a decade; enterprises can consolidate servers, and old applications can share a tiny slice of hardware but still not be end-of-lifed, rather than needing their own server to run on. Applications which have a sudden burst of popularity could conceivable scale up massively - imagine a world where no one is ever slashdotted.
Virtual networking can give every application its own isolated network with its own firewall policy, using ~30mhz worth of cpu.
Anyhow, this sort of thing has driven virtualization in the enterprise for a while because of capex cost. The average utilization of non-virtualized servers is, iirc, ~30%; post-virtualization, it's 80-90%+. That means enterprises that use virtualization simply spend less than half on servers and the costs of maintaining them. Then there's opex. Rather than the complex provisioning associated with sizing, installing, and maintaining bespoke computing for every user/org/BU, the IT process can be streamlined to having a one-size-fits all provisioning, and the virtualization/cloud layer can carve it up dynamically. You have way fewer people needed per piece of hardware. To say nothing of how the resource sharing makes it self-healing. Physical server dies? The virtual machines that were on it power up automatically on a different machine. (In fact, VMware FT can actually add an application-independent hot-failover to any x86 server; physical hardware dies, the shadow copy immediately resumes running with the full state on the failover hardware)
Thin clients hitting servers (ie, dumb X terms hitting mainframe-type servers) was a similar concept in the sense that you were time-sharing resources, but this makes a similar arrangement possible without operating system dependencies, with application portability (ie, I can move a virtual machine from one cloud at one provider, to another cloud at another provider, about as fast as the bits from the virtual disk can copy over the network - and of course, all the empty space doesn't need to move).
Not really even touching on what private/hybrid cloud means to an enterprise; but suffice it to say, there's a reason why nearly every company in the Fortune 500 has some users pulling out corporate cards and buying compute from AWS; and why they'd like to supply that same experience to their users on a private cloud platform.