The “what is the cloud” debate continues unabated. I’m a bit of a purist on this issue and am actually going to contradict a bit of what I said in my earlier post “Clouds have Layers.”
If you think of it from the perspective of the application or a set of data (e.g. personify the application and data for a moment), a compute cloud allows me to operate without consideration of where my bits and operations physically reside or execute, and the resources I consume are reasonably elastic – they are cloud-like. The cloud is the container, transport and resource pool.
I would argue that SaaS environments that are contained in a closed private data center container (either the vendor’s own facility, or co-located in a hosting facility) are not of the cloud. Multi-tenancy is not the cloud, though it is a technique that perhaps makes using a cloud easier. A multi-tenanted CRM application delivered as a service to end users can be in the cloud, or in a constrained pool of physical servers under the control of the CRM vendor. It is neither defined by, nor does it define, cloud computing.
Were I to deploy a “private cloud” in an enterprise context, the results would be the same. The developers of applications would see a “cloud” of resources into which their code can be poured that would enable reasonably elastic scaling (up and down) as needed. It could be a native Java, Rails, or .NET application, or it could be an application built on a PaaS-like framework similar to Quickbase or force.com. In either case, the cloud “vendor” in this case would be the IT department. It would suffer from a more limited scaling ability (a massive spike could require new hardware to be provisioned, killing the elastic illusion), would still consume internal resources on physical asset management (negating many of the cost advantages), and may have other limitations not present in public cloud infrastructures.
What you may see at some point is the concept of a “publicly-extensible private cloud” where IT builds and manages a cloud infrastructure that cross-connects to one or more public clouds to manage overflow scaling. Applications are still under the watchful eye of IT, but can use the virtually unlimited public cloud capacity when needed.