Cloud Computing 101

The first session I attended at Microsoft’s 2011 MVP Global Summit last week was a town hall–style meeting with a collection of Microsoft VPs lined up in the front of the room and multiple rows of supporting product managers in the back of the room.I can’t discuss the session details because of the nondisclosure agreement every MVP must sign, but one thing really struck me. Even in an audience full of elite technologists, the questions that were asked made it obvious there’s still a lot of confusion about what cloud computing is...and what it isn’t.

One question that generated a lot of discussion, both from the panel and the audience, was “What’s the difference between a private cloud computing solution and a private LAN? Aren’t they the same thing?” This kind of question comes from all roles in the organization, from the IT pro in the trenches who thinks this cloud stuff is all hype, to the CIO who’s been hearing about the financial benefits but is afraid of the unknown. One audience member asked, “If we’re confused about cloud computing, how are we supposed to explain it to managers and executives who can barely use their computers?”

Cloud computing is more than just having computers on your private LAN. It’s the result of the synergy between a number of different technologies and service models, some of which have been around for a long time. One of the challenges in explaining cloud computing is that there are three sets of definitions to digest: the characteristics of the cloud model, the deployment models, and the service models. To understand how cloud computing differs from previous IT technologies, let’s review the definitions.

Essential Characteristics of the Cloud Computing Model

The five characteristics of the cloud computing model were originally defined by the National Institute of Standards and Technologies (NIST) and have since been refined by a number of experts. The model been published many times before, but if you’re like me you need to see something several times before you really internalize it. Frankly, I recommend that you memorize this list; you’ll have the vague term “cloud” thrown at you many times in the future, and understanding these five characteristics will help you judge whether the latest offering you’re being shown is really cloud computing. And as an added plus, you’ll be able to finally explain cloud computing to your friends and relatives.

On-demand self-service. You can quickly and easily configure the computing resources you need all by yourself, without filling out forms or emailing the service provider. An important point is that what you’re using is service-based (“I need 15 computing units”), not resource-based (“I need an HP ProLiant DL380 G6 with 32GB of RAM”). Your computing needs are abstracted from what you’re really being allocated. You don’t know, and in most cases you shouldn’t care. This is one of the biggest hurdles for IT departments that want to create their own internal cloud computing environment.

Broad network access. You can access these resources from anywhere you can access the Internet, and you can access them from a browser, from a desktop with applications designed to work with them, or from a mobile device. One of the most popular application models (such as iPhone apps) is a mobile application that communicates with a cloud-based back end.

Resource pooling. The cloud service provider, whether it’s Amazon or your own IT department, manages all of its cloud’s physical resources; creates a pool of virtual processor, storage, and network resources; and securely allocates them between all of its customers. This means your data might physically reside anywhere at any moment, although you can generally make certain broad choices for regulatory reasons (e.g., what country your data resides in). But you won’t know whether it’s in the San Antonio or Chicago data center, and certainly not what physical servers you’re using.

Rapid elasticity. You cangrow and shrink your capacity (processing power, storage, network) very quickly, in minutes or hours. Self-service and resource pooling are what make rapid elasticity possible. Triggered by a customer request, the service provider can automatically allocate more or less resources from the available pool.

Measured service. Also described as subscription-based, measured service means that the resources you’re using are metered and reported back to you. You pay for only the resources you need, so you don’t waste processing power like you do when you have to buy it on a server-by-server basis.

Cloud Computing Service Models

A service model describes how the capability is provided to the customer. I find the easiest way to understand cloud service models is with a layered approach, very similar to the OSI networking model, with the infrastructure at the bottom and the upper layers the user sees at the top.

Infrastructure as a Service (IaaS).The lowest level of the service model stack, an IaaS provider delivers fundamental computing power in the form of virtual machines (VMs) for the user to install and run OSs and applications as though they were in the user’s own data center. The user maintains everything but the VM itself.

Platform as a Service (PaaS).The next layer up the service model stack, PaaS takes care of both the computing and the application infrastructure (such as the programming language and its associated tools) for the customer to develop cloud-based software applications (SaaS). In addition to serving external customers, Microsoft is using its Azure PaaS offering as a platform to transform its own enterprise applications into SaaS applications.

Software as a Service (SaaS).The topmost layer of the service model, SaaS applications hide the entire IT infrastructure running in the cloud and present only the application tothe user. Typically, these applications can be accessed only through a web browser, although some SaaS applications require installing components on a user’s desktop or in the user’s IT infrastructure for full functionality. This is by far the most popular and best-known service model, with thousands of examples, from Gmail to hosted Exchange Server to Salesforce to Facebook to Twitter.

Other “as a Service” models.Cloud service models don’t have to necessarily follow the layered approach; practically any aspect of software can be abstracted into the cloud and provided to the customer as a service. For example, Federation as a Service (FaaS) takes the work of establishing federated trusts between an enterprise and various cloud service providers away from the enterprise. The FaaS provider establishes trusts with hundreds of cloud providers (usually SaaS), and the enterprise simply connects to a portal with all the providers represented in a menu.

Cloud Computing Deployment Models

The other set of definitions for cloud computing relates to how these services are physically deployed for the customer to use.

Public cloud.This is the best-known cloud computing deployment model, and it’s what’s usually being referred to when “cloud” is used with no qualifiers. A public cloud is hosted by a service provider, and its resources are pooled across many customers (although the resources appear to be dedicated to the customer). Amazon Elastic Compute Cloud (EC2), Windows Azure, and Salesforce.com are all public cloud providers. Note that although they share the same deployment model, they have different service models. Amazon is best known for its IaaS services, Microsoft provides PaaS, and Salesforce uses a SaaS deployment model. Public cloud service providers represent the most mature technology and practices at this point.

Private cloud. NIST defines a private cloud simply as a cloud infrastructure that’s operated solely for an organization—in other words, it’s not shared with anyone. The major driving factors for private cloud are security and regulatory/compliance requirements; if you want to take advantage of cloud computing’s flexibility and cost savings, but you have strict requirement for where your data resides, then you must keep it private. Many of the big security concerns being voiced about cloud computing can be remedied with a private cloud.

Note that this definition makes no distinction for whether the private cloud is hosted on-premise by your company’s IT organization, or off-premise by a service provider; the erroneous assumption is often made that if it’s private, it must be in-house. Most companies are just beginning to explore what it takes to build your own private cloud, and technology companies are marketing hardware and software (such as the Windows Azure Platform Appliance) to make this enormous task easier.

Hybrid cloud.The hybrid cloud is pretty self-explanatory. It’s a combination of both public and private clouds, maintained separately but that have, for example, the same application running in both. The best known use case for this deployment model is an application that runs in a private cloud but can tap into its public cloud component to provide burst capacity (such as an online toy retailer during the holiday season).

This model is still in its infancy, but the hybrid cloud is the future of cloud computing for enterprises. It will eventually become the most widely used model because it provides the best of both public and private cloud benefits.

Community cloud. A relatively unknown variation of the public cloud, a community cloud is shared across several organizations, but these organizations have shared concerns or goals.

Sifting Through the Hype

No wonder cloud computing is a confusing topic! Five characteristics, three service models, and four deployment models equals a lot of things to take into consideration. My recommendation is to first understand and internalize the essential characteristics, then learn the basics of the service and deployment models.

With all these definitions in mind, let’s revisit some common remarks and questions about cloud computing:

“What’s the difference between a private cloud and a private LAN? Aren’t they the same thing?” A private LAN describes only the network layer, the very bottom of the IT infrastructure, and doesn’t address any of the many layers of software above it that must be in place to qualify as a private cloud.

“We’ve been doing this for years by another name—it’s called hosting services.” Hosting services might be cloud service providers, but by no means are they cloud service providers by default. Traditional hosted services require you to purchase all or part of a physical server (i.e., the computing presented to the user isn’t abstracted from the infrastructure in the physical data center), changing configuration is managed by the hosting company rather than the customer (i.e., it’s not self-service), and you typically can’t dynamically change capacity. The lesson from this common objection is to hold the objection up to the five essential characteristics of cloud computing, and see if it fits.

In InfoWorld’s interview with Intel CIO Diane Bryant, Diane said, “As a large enterprise I have a very large infrastructure—I have 100,000 servers in production—and so I am a cloud. I have the economies of scale, I have the virtualization, I have the agility.” I spent 10 years in Intel’s IT division on the corporate Active Directory team, and although Intel has virtualization, without massive pooling of compute and storage resources and subscription-based, full user self-service, it’s not a (private) cloud.

Finally, there’s a very pragmatic way to answer the assertion that “This cloud computing thing is mostly hype.” Microsoft has invested $2.3 billion into cloud computing and has 30,000 engineers working on it. In addition, the company intends to create SaaS versions of its entire software portfolio. Say what you will about Microsoft, but no company invests that much of its money into a computing model without being completely convinced that it’s worth it. It wasn’t that long ago that Microsoft abruptly shifted to face the web, and many people were also skeptical of that shift at the time—but look at the world we’re in today.

Cloud computing isn’t just hype. No, it won’t solve world hunger, and it’s not for everyone. But it’s here to stay, and it will—in fact, it is—transforming the IT world. You’d best start working to understand it, because it will be a part of your future.