Peter Laird, Architect at Tendril Networks, addressed the Enterprise Cloud Summit to try and provide a taxonomy of cloud computing. He talked first about the difficulties of defining some recent popular terms in computing – Web2.0, mashup, REST. Cloud Computing suffers the same problem – it becomes popular, and people jump on the bandwagon before a strict definition has emerged.
What is Cloud Computing?
Peter collected together some definitions from other cloud computing experts, from the last couple of years.
- Werner Vogels of Amazon, said that cloud computing means “all the resources you want, infinite capacity living outside in the cloud on the internet for you to use”
- Lew Moorman of Rackspace says cloud computing has 3 characteristics: Pooled computing, powered by software, delivered over the web.
- Thorsten von Eicken of Rightscale said that cloud computing means “Outsourced, pay as you go, on demand, somewhere on the internet.
- Joe Weinman of AT&T created an acronym: Common, Location-independent, Online, Utility, on-Demand.
- Geva Perry of Thinking out Cloud, gave a more technical definition “Computing infrastructure and application platforms that are self-healing, SLA-driven, Multi-tenancy, Service-oriented, Virtualized, Linearly Scalable, Data”
Peter observed that taxonomies break down into three types: simple and pragmatic, or academic, or vendor-driven.
One example taxonomy is by Robert Anderson, who used three buckets:
- Infrastructure as a Service (e.g. Amazon EC2)
- Platform as a Service (e.g. Google App Engine)
- Software as a Service (e.g. force.com)
Another comes from Lama Youseff et al (UC Santa Barbara and IBM Research) give another view with five layers:
- Software Kernel
- Cloud Software Infrastructure
- Cloud Applications
Peter’s own model uses 4 layers – Infrastructure, Platform, Services, Applications. The full taxonomy is available on his blog.
- Public Clouds e.g. Amazon EC2
- Private Clouds e.g. Eucalytus
- Grids (Compute & Data) – e.g. Globus, IBM eXtreme Scale
- OS Images (Virtual Appliances & Virtualization) – e.g. Cohesive
- Business User Platforms
- Development Platforms
- Storage – e.g. Google BigTable
- Integration – e.g. Boomi
- Enablers (Billing, Security, Fabric Management, System Integrators) – e.g. Aria, OAuth, Cloudkick, Elastra
Thousands of them!