Update: The diagrams in this post are out-dated. Please click here to find the new versions.
The Onion
In an attempt to better understand the nature of cloud computing I tried to draw a classification of some companies and applications that spawn in the cloud.
Infrastructure
The heart of the cloud is what some people call Infrastructure as a Service (IaaS). This is as near to bare metal as we can get: pure storage and compute capacity. With virtualization techniques it is packaged into small units that are delivered like water or electricity (notion of utility computing).
Platforms
The next layer is Platform as a Service (PaaS). Here we find more complex platforms, such as Google App Engine or Salesforce.com AppExchange. Marc Andreessen, who coined the phrase “Web as Platform”, once wrote: “[a] platform is a system that can be programmed and therefore customized by outside developers — users — and in that way, adapted to countless needs and niches that the platform’s original developers could not have possibly contemplated, much less had time to accommodate. [...] If you can program it, then it’s a platform. If you can’t, then it’s not.” (Source)
Although I would not consider Amazon EC2 or S3 to be a platform but rather IaaS, the elastic infrastructure provided by Amazon has enabled third-party developers to build platforms on top of it. I asked myself where in my diagram to put the other Amazon Web services (FPS, DevPay, etc.) but haven’t come up with a plausible place, yet. It should probably be somewhere between IaaS and PaaS.
Apps & Services
The outer layer of my onion is formed by all the applications and services that are built on top of either IaaS or PaaS. I am not satisfied with the outer layer. I feel that it needs further categorization, such as grouping by types of applications, e.g. Social Network Apps, Backup Services, and so on.
API
Each layer has a different set of APIs. Near to the core, developers have standard Web technologies and protocols to access and use the cloud. Further away from the core, levels of abstraction are added, making APIs more vendor-specific. On the application & service layer, we find a mix of standardized and less standardized APIs.
Suggestions?
I want to improve and extend my diagrams and find a more proper categorization of cloud vendors and services that sit on top of the cloud. What are your ideas and comments on this one? And another thing is: Would you consider firms that use IaaS, like Mosso and cohesiveFT, as PaaS vendors? How are they different from, say Joyent or flexiscale?
(A very good and comprehensive list of cloud vendors can be found on John Willis’ blog)





July 11, 2008 at 4:18 am |
Best diagrams I have seen to date.
Here are some suggestions…
On the IaaS you might want to figure a way to add open source infrastructure like Eucalyptus also I thing Scalr is more like an open source version of Rightscale for IaaS vs in the PaaS diagram.
Also on IaaS CohesiveFt should somehow be different from Rightscale, Elastra, and Enomaly.
On PaaS some of the Ruby apps players like Heroku and MorphExchange
johnmwillis.com
July 11, 2008 at 4:21 am |
[...] Classification of Cloud Computing Stakeholders [...]
July 11, 2008 at 5:46 am |
I like the diagram and just like SOA is now having new 3 letter acronyms like WOA, POA, etc. – looks like the same is happening to SaaS (not that I disagree). I am not much of an expert on IaaS but from a platform perspective – I believe that there needs to a single meta-driven platform (OS) that runs everywhere with the option of turning on-off a utility (capability) such as workflow or transformation and so on. I have blogged about this at http://entarch.blogspot.com/2008/04/introduction-to-services-oriented.html.
I did also just blogger earlier today on the topic of “SaaS Requirements for Large Enterprise” at http://entarch.blogspot.com/2008/07/saas-requirements-for-large-enterprises.html.
Just my thoughts and am glad I found this blog on twitter :).
- Yogish
July 12, 2008 at 10:37 pm |
Your classification is very close to the way I see it. When asked I first describe three layers:
Layer 1 – Hardware virtualization – This is the “bare metal” layer of storage and CPU virtualization
Layer 2 – Application virtualization – This is when you use web services or API to provide a specific function or capability.
Layer 3 – Process virtualization – This is when you string web services and APIs together to deliver value (function or capability) to an end user
The various terms are then used to describe how these layers are put together:
Layer 1 is grid computing, utility computing or IaaS. What you call it is a function of the business model used to deliver the capability
Layer 1 delivered with layer 2 is PaaS. A developer uses the platform services or APIs to create value for an end user
Layer 1 delivered with a single application is SaaS
When Layer 2 and Layer 3 are designed with web services and layered on top of a hardware infrastructure (virtualized or not), you have a Service Oriented Architecture
Layer 1, 2 and 3 delivered with services and/or APIs already organized in workflows and delivering value to an end user is Cloud Computing.
July 16, 2008 at 4:02 pm |
I like very much your graph. It is very easy to understand “as a service” from this point of view and very graphical. Congratulations.
I have a directory paas and iaas which it can help you to clasify other more paas and iaas product. http://directorio-paas.buensitio.info.
July 18, 2008 at 6:39 am |
Hi,
Markus, Can I use your idea and graph in order to use it in my blog?
I only tranlate from English to Spanish and I will put a reference to this link page.
Thank you.
Best Regards
July 18, 2008 at 7:25 am |
Jose,
you can use the material from my blog, no problem. Thank you for your interest. I am looking forward to a Spanish version of my post :)
Cheers
Markus
July 18, 2008 at 7:36 am |
[...] Classification of Cloud Computing Stakeholders « Cloudy Times (tags: via:botchagalupe cloud diagrams paas) [...]
July 20, 2008 at 10:09 pm |
[...] nuevo mundo “as a service”. De todos ellos, me ha llamado la atención especialmente este que a continuación os traduzco con el permiso del autor ( Thank Markus), que explica gráficamente, [...]
July 22, 2008 at 1:02 am |
Hi Markus!
You may want to check Mor.ph. They have the Morph Appspace for both Java and Rails and utilises Amazon Web Services for their platforms services.
Thanks to John for pointing out MorphExchange, too which wold now become the SaaS component for web applications.
Best.
alain
July 25, 2008 at 3:51 pm |
[...] my first classification pictures I had the core of the cloud named “Infrastructure as a Service”. I do not like the *aaS [...]
August 6, 2008 at 10:49 pm |
Hi Markus.
Your blog is more have all the power. I’m new in the cloud world (like everyone … I supose) and that kind of themes and I think your articles can reach more people if they can be translated …
For that, I request you to translate (as a proof) the article above to spanish and publish a spanish version in http://www.8dias.com, a non profit web site dedicated to spanish IT community with readers in all latinamerica and spain. We promote your blog from 8dias and of course, make citation about you and a link to your blog. We have more than 100,000 hits per week and I supose that can be other way to promote your blog…
Best Regards.
Sebastian Melgin.
8dias.com
September 26, 2008 at 10:43 pm |
Hi Markus,
I really like using the onion as a representation of the varying levels of cloud computing. It takes what is such a complex layering of products and services and simplifies it. I noticed that in your IaaS diagram you included quite a few of the vendors but did not list Terremark. I would encourage you to take a look at the enterprise cloud offering, which you can see at http://www.theenterprisecloud.com. Terremark has built a platform that is already being used by enterprise clients.
Sincerely,
Ryan McDermott
March 9, 2009 at 3:15 am |
Markus,
Great visual view of the 3 layered cloud universe. I’ve been using a similar structure: IaaS, PaaS and SaaS. My view of IaaS is similar to yours. Where I differ slightly is in the definition of the next 2 layers. Above IaaS, sits PaaS a layer upon which one can build and deliver solutions. There are two general types of users here – builders and consumers. Examples include Google App Engine for Python, Heroku for Ruby apps, etc.. The final layer is software as a service. Here sits all the great apps (salesforce.com, liquidplanner) and even those apps that are built and delivered through PaaS.
Of course, nothing is clear cut and the solutions mapped to these layers frequently cross boundaries. Salesforce.com has their developer environment sticking into the PaaS layer for example.
Cheers,
-Paul Laskin