The Thousand Faces of Cloud Computing

It’s amazing that people are still arguing over what cloud computing is and what is a cloud. I am certainly not immune to such naive arguments. Claims such as “EC2 is NOT a cloud” just makes my head spin and wonder what the heck people are thinking. But if I taking a step back and try to understand why people are so passionate about this subject, I start to realize why there are so many definitions for Cloud Computing and why people continue to passionately argue over these definitions.

The short of it is that cloud means different things to different people. The Cloud has different characteristics to people coming from service provider backgrounds than people from a developer background; it has different meanings to people who care more about architectures than people who are more business-oriented; and it certainly .. to people who are building the clouds than the consumers of the cloud.

So instead of creating a single definition for Cloud Computing, let’s look at it from

  • Two perspectives
  • Five architecture characteristics
  • Three delivery models
  • Three deployment models
  • Three consumption models
  • Two pricing models

Two Perspectives

There are passionate discussions on the definition of Cloud and Cloud Computing. If we summarize the arguments, we can see that there are really two camps of people: those who looks at Cloud as an architecture and those who looks at Cloud as a business model. In many cases they agree on many of the characteristics but there’s usually one topic that really heats up the discussion and that is whether pricing and billing should be a defining characteristic of the Cloud.

The Cloud Architecture camp usually argues that how the Cloud is priced and billed should not be a defining characteristic of the Cloud since that’s a business decision. And they are absolutely right about that.

The Cloud Business camp also passionately argues that how the Cloud is priced must be a defining characteristic, otherwise how else can the user be billed? And they are absolutely right about that as well.

At the end of the day it’s about perspectives. Here are the characteristics again and where I think they fall:

Characteristic Architecture Business
Infrastructure Abstraction
Resource Pooling
Ubiquitous Network Access
On-Demand Self-Service
Elasticity
Pricing Model
Consumption Model

Five Architecture Characteristics

  • Infrastructure Abstraction
  • Resource Pooling
  • Ubiquitous Network Access
  • On-Demand Self-Service
  • Elasticity

I am going to refer you to the write ups in Guidance for Critical Areas of Focus in Cloud Computing from Cloud Security Alliance, as well as the Draft NIST Working Definition of Cloud Computing. These folks have done an awesome job of writing these up so I won’t elaborate here. Notice that these five are architecture characteristics so I didn’t include the utility-based pricing characteristics here.

Three Delivery Models

  • Software as a Service
  • Platform as a Service
  • Infrastructure as a Service

Again, I am going to refer you to the write ups in Guidance for Critical Areas of Focus in Cloud Computing from Cloud Security Alliance, as well as the Draft NIST Working Definition of Cloud Computing. This is generally referred to as the SPI model.

Three Deploy Models

I found that the distinction of public, private, managed, community and hybrid clouds in both the NIST and CSA documents somewhat difficult to comprehend. I don’t mean that they don’t make sense but you really have to think through them before you can understand them. In most cases, the follow three seem to be easier to understand.

  • Internal Cloud

    An internal cloud lives within the 4 walls of the enterprises (like their data center.) It’s fully built, operated, controlled and managed by the enterprises themselves. It has all five of the architecture characteristics of a Cloud. It may or may not have the pricing model required for external clouds since some enterprises may not care about chargebacks.

  • External Cloud

    An external cloud lives outside of the enterprises and it’s usually built and operated by service providers but the resources maybe controlled and managed by the customers. The external cloud can either be shared (multi-tenant) or dedicated (single-tenant). It has all five of the architecture characteristics of a Cloud. The service provider will usually dictate the consumption and pricing models of the external clouds.

  • Private Cloud

    A private cloud is a combination of internal and external clouds. In most cases enterprises have more than one cloud just like they have some infrastructures inside the 4 walls and some outside. Even though there’s both internal and external clouds, enterprises will want to control and manage all of the resources that belong to them, potentially through a single pane of glass. The cloud resoures are private to the customers, thus the name private cloud.

Three Consumption Models

  • Allocation-based
  • Resource pool-based
  • Usage-based

I’ve previously written about the consumption models so please use that as reference.

Two Pricing Models

One of the interesting debates out there is whether Clouds must have utility-based pricing, that is, consumers are only billed for what they used/allocated. I’ve generally seen the following two pricing models from service providers who have cloud offerings.

  • Utility-based

    This is the pay-per-use model that most people associate with cloud infrastructures. Amazon and Google App Engine are based on these models.

  • Subscription-based

    Most people tend to forget the subscription model is very popular in the cloud as well. For example, Salesforce is based on a per-user-per-month charge, so is Google Apps Premium Edition (per-user-per-year.) In fact, most of the cloud applications (SaaS) are based on this model. In addition, we are seeing some of the traditional service providers who are launching clouds also offer this pricing model as well.

So what is Cloud Computing and what is a Cloud?

Well, many combinations of the above can likely be considered clouds. I am not going to add another definition to the mix and hopefully this blog post will point out the reason why everyone has a different definition of Cloud Computing.

May 15th, 2009 | Jian Zhen | 3 Comments

Google Group Discussion on “Private” Clouds

Tags: | Posted in Cloud Computing

I asked a totally unrelated question on the Cloud Computing google group a few days ago and triggered a very active discussion on where “private” cloud is an oxymoron or not.

[ Please let me know if I am taking any of the quotes blow out of context. ]

Ben Yamin called “private cloud computing a paradoxical phenomenon” and Ray Nugent called it an “oxymoron.” But even Ray agrees that many of his customers are asking about it,

Correct me if I’m wrong but most, if not all, of what I’m hearing from customers is around how to take AWS like services and tuck them within the four walls of their enterprise to somehow get economies of scale, lower costs and quicker scale/customer service to their constituents. Therein lay the Foggy part…

Rich Wellner agrees that we should “not care so much what things are called as much as what they do,” so he explained that “private” clouds does exist based on the list of attributes he’s compiled:

1) Multiple vendors accessible through open standards and not centrally
administered

2) Non-trivial QOS (see the gmail debate thread)

3) On demand provisioning

4) Virtualization

5) The ability for one company to use anothers resources (e.g. bobco
using ec2)

6) Discoverability across multiple administrative domains (e.g. brokering to multiple cloud vendors)

7) Data storage

8) Per usage billing

9) Resource metering and basic analytics

10) Access to the data could me bandwidth/latency limitations, security,

11) Compliance – Architecture/implementation, Audit, verification

12) Policy based access – to data, applications and visibility

13) Security not only for data but also for applications

Now here we start to see some things that aren’t applicable to enterprise clouds (i.e. 1, 5, 6). But the bulk of the list still works. And it’s worth noting that EC2 fails on more than three of those things (i.e. 1, 11, 12, 13), but people don’t hesitate to allow them the use of the term cloud.

I think Jim Starkey from NimbusDB summed it up best,

As I understand it, if you use Amazon EC2, it is cloud computing. But if Amazon itself uses EC2, it’s only fog computing. Or maybe (shudder) internal cloud computing. This is, of course, utter nonsense.

Laurent Therond also brought up an interesting point,

Amazon and Google would love for external entities to cofinance their clouds, because they own the infrastructure *and* they actually use it to run their own affairs. On the other hand, if you were to offer them to migrate their mission critical systems to some other Cloud Computing vendor (let’s assume you could find one up to the task), they would laugh at you loudly.

I am quite happy to see this level of discussion on this. My stand on this is quite clear and explained here.

September 4th, 2008 | Jian Zhen | No Comments

The Rise of Cloud Privatization

Tags: | Posted in Cloud Computing

The world of clouds these days is full of definitions and counter-definitions. There are many posts that try to define the concept of cloud computing; many that try to distinguish utility computing, grid computing and cloud computing; many that try to define public vs private clouds; and many that dismisses the notion of private clouds.

Jonh Foley, in his article “The Rise Of Enterprise-Class Cloud Computing“, referred to private cloud as an oxymoron,

That’s an oxymoron since cloud computing, by definition, happens outside of the corporate data center, but it’s the technology that’s important here, not the semantics.

But by whose definition? The industry as a whole haven’t even been able to nail down a concrete definition of cloud computing. Given that there’s no concrete definition, then by definition, private cloud is not an oxymoron. But I do agree with John, let’s focus on the technology and not the semantics.

Geva Perry, chief marketing officer at GigaSpace Technologies, did just that. By focusing on the technology and architectural aspects of cloud computing, he wrote in a GigaOM blog post,

Cloud computing is a broader concept than utility computing and relates to the underlying architecture in which the services are designed. It may be applied equally to utility services and internal corporate data centers, as George Gilder reported in a story for Wired Magazine titled The Information Factories.

Cloud Attributes

But instead of everyone trying to create their own definition of clouds, let’s look at the list of attributes that clouds have and compare public and private clouds.

  • Elasticity: The ability to dynamically provision (expand) or de-provision (shrink) the computing capacity as needed.
  • Utility: The ability to be charged by the amount of resources used. Great examples would include Amazon Web Services’ charge model. In an enterprise setting, sometimes business units are charged by the internal IT groups for the resources they requested. The utility model would allow IT groups to perform chargebacks in a similar model to AWS.
  • Scalability: The ability to either handle growing amounts of work in a graceful manner, or to be readily enlarged. For example, it can refer to the capability of a system to increase total throughput under an increased load when resources (typically hardware) are added. [ via wikipedia ]
  • Reliability & Availability: No failed whale! The cloud infrastructure and platforms must be reliable and available to the applications that are using them. There’s probably a lot of technology involved here to make this happen. For example, the ability to transparently migrate a virtual server when the running node has failed.
  • Manageability: The ability to effectively manage (start/stop/migrate/expand/shrink/etc) the different server and application instances in the cloud.
  • Security: The ability to secure the data and access to the cloud. Public clouds still have a trust issue with many of the enterprise customers, which is why the ? is there.
  • Performance: The ability to execute and complete tasks within the acceptable timeframe (defined by the SLA).
  • API: I consider this to be a desired attribute. This refers to the ability of doing resource management via some type of documented programming interface.
  • Virtualization: Applications are decoupled from the underlying hardware. Multiple applications can run on one computer (virtualization a la VMWare) or multiple computers can be used to run one application (grid computing). [ via GigaOM ]
  • Multi-Tenancy: The ability to house multiple customers using the same infrastructure and still be able to segregate the data.
  • SLA-Driven: The system is dynamically managed by service-level agreements that define policies such as how quickly responses to requests need to be delivered. If the system is experiencing peaks in load, it will create additional instances of the application on more servers in order to comply with the committed service levels — even at the expense of a low-priority application. [ via GigaOM ]
  • Support: The ability to smack someone upside the head when something fails.
Attributes Public Private
Elasticity
Utility
Scalability
Reliability & Availability
Security ?
Performance
API
Virtualization
Multi-Tenant
SLA-Driven ?
24×7 Support

So if we are looking purely from a technology perspective, private clouds can absolutely exist. In fact, given the questions for the public cloud, enterprises are more likely to experiment with private clouds for mission critical applications.

Market and Vendors

According to Merrill Lynch, the public and private cloud infrastructure, platform, applications and advertising together will be a $160 billion market by 2011, or roughly 12% of the total worldwide software market.

The total $160bn addressable market opportunity includes $95billion in
business and productivity apps, and another $65 billion in online advertising.

IBM and Sun have comprehensive solutions for ‘internal Clouds’. Dell targets large scale data centers, and HP provides ‘everything as a service’, making their solutions attractive for ‘external Clouds’.

So who are some of the private cloud infrastructure/platform startups that are taking advantage of this $160 billion market? (Feel free to leave a comment if I missed anyone.)

Company Product
3Tera AppLogic
Arjuna Agility
Cassatt Active Response?
Elastra Elastra Cloud Server
Enomaly Enomalism
GigaSpaces XAP, EDG, and Community Edition

Private Cloud Links

September 4th, 2008 | Jian Zhen | No Comments