Four key behaviours indicate whether an infrastructure can be defined as cloud computing.
Defining cloud computing
Cloud computing is a deployment model leveraged by IT to reduce infrastructure costs and/or address capacity/scalability concerns. It is the infrastructure and how an application or service is deployed and delivered that defines whether something is or is not cloud computing, writes Lori MacVittie, technical marketing manager at F5 Networks.
But defining the cloud computing model can be problematic, because we often tend to get prescriptive and start talking in absolute checklists. With a fluid concept such as cloud computing, that simply does not work. There is not one single model, nor is there one single architecture that you can point to and say definitively, "We are doing that, ergo we are doing cloud computing."
It is really about the behaviour of the entire infrastructure: how the cloud delivers an application, that's important. The good thing is that we can define that behaviour, so we can determine whether an application infrastructure is behaving in a cloud computing manner, in order to categorise it as cloud computing or something else.
Amazon calls this "elasticity", but it means the same thing: this is the ability of the application delivery infrastructure to expand and contract automatically based on capacity needs.
Note that this does not require virtualisation technology, though many providers are using virtualisation to build this capability. There are other means of implementing dynamism in an architecture.
Do you need to care about the underlying infrastructure when developing an application for deployment in the cloud? If you have to care about the operating system or any piece of the infrastructure, it's not abstracted enough to be cloud computing.
The architecture must be such that the compute and network resources of the cloud infrastructure are sharable among applications. This links back to dynamism and the ability to expand and contract as needed.
If an application's method of scaling is to simply add more servers on which it is deployed, rather than be able to consume resources on other servers as needed, then the infrastructure is not capable of resource sharing.
Provides a platform
Cloud computing is essentially a deployment model. If it provides a platform on which you can develop and/or deploy an application and meets the other three criteria, it is cloud computing. Dynamism and resource sharing are the key architectural indicators of cloud computing.