Cloud Taxonomy: Applications, Platform, Infrastructure

    150 150 CloudPulse Strategies

    cloudpyramid This has come up a lot recently, most recently when Coté tweeted:

    @cote: Is the cloud categorization getting down to "apps, platform, and infrastructure"? I keep hearing that divide-up: http://tinyurl.com/4ghj7x

    This taxonomy is far from perfect, but I think it does a good job of separating out the different types of clouds out there. Michael Sheehan from GoGrid was one of the first to publicly illustrate the cloud taxonomy with a pyramid (and I think he’s trying to apply for a trademark on it :-). (Image to the right stolen from Michael!)

    As provider of a cloud platform, I am frequently called on to differentiate between cloud platforms and cloud infrastructure. Anyone who has used both Amazon EC2 and Google App Engine groks the difference between these two concepts, so I tend to use those offerings to illustrate the difference.

    It’s really all about level of abstraction. And this translates directly to the end-user experience. With cloud infrastructure like Amazon EC2, the central theme is the virtual server. The user is (sometimes painfully) aware of the number and type of servers/virtual machines that they have running and management is done by individually logging in to each server, e.g. via SSH. Note that the user doesn’t know things like the brand and physical location of the servers, nor does the user expect complete or exclusive control of the machine. Those are all things that contribute to making the relationship cloud-like.

    On the other hand, consider the end-user experience with App Engine. The central theme is really the application itself.  The user develops their application and with a single invocation of a command-line tool, packages and deploys the application to the cloud. The platform takes care of actually deploying the application to the right machines, based on policy, utilization or whatever. The user never logs into an individual server. The don’t even know at a given point in time how many machines their application is deployed out to. The platform takes care of all of that, plus provides APIs and services to the applications themselves. (Much of this is true for Appistry EAF as well, but the model is very different from App Engine.)

    I’ve got some slides I use to elaborate on the distinction between the layers. Please take a look and let me know what you think:

    View SlideShare presentation or Upload your own. (tags: cloud computing)

    Stephen O’Grady wrote up a nice post back in November called Cloud Types: Fabric vs Instance, where he described the Platform and Infrastructure layers as Fabric and Instance respectively. (Fabric has a nice ring to it, for obvious reasons 🙂 He has a nice description of each that is worth checking out.

    2 comments
    • Shane Brauner

      Hi Sam,

      Great summary of the three layers. This is very much how we at 10gen see things shaping up as well.

      One key component that I see us being able to leverage as Platform providers is interoperability. Do you see an advantage to developing standards for platform / multi layer engagement?

      Regards,
      Shane

    • Jeff Hardy

      At PubCon in Las Vegas and I sat on a panel with Mike Culver from Amazon Web Services and had the opportunity to present on the topic of Cloud Computing from the perspective of my employer—SmarterTools, an independent developer of Web-based applications. My take was to separate truth from hype.

      The feedback was overwhelming! So much so that we followed it up with an article and a copy of the presentation:
      http://www.smartertools.com/blog/archive/2008/11/20/cloud-computing-challenges-benefits-and-the-future.aspx

      As Cloud Computing gains buzz, it is important for us to remember what it really is and—perhaps more importantly—what it really isn’t.

      Be well,
      Jeffrey J. Hardy
      http://www.smartertools.com

    Leave a Reply

    Your email address will not be published.