Sunday, May 20, 2012

Archive

Minimize

Blog Search

Minimize

Tags

Recent Blog Entries

Abstraction: The key understanding cloud computing

Apr 14

Written by:
Tuesday, April 14, 2009  RssIcon

"I have no idea what anyone is talking about," – Larry Ellison, CEO Oracle Corp. talking about cloud computing, as quoted in the Wall Street Journal's article The Internet Industry Is on a Cloud -- Whatever That May Mean

Mr. Ellison is not alone. It's quite possible that if you ask 10 experts what they think cloud computing is you may get 10 answers. Even if nobody knows what cloud computing really is, one thing is certain: if internet searches are any indication of interest and uptake, this year will be a big year for cloud computing. A quick search on Google Trends reveals that just this year, the volume of searches for "cloud computing" began to overtake searches for the more mainstream topics like "virtualization".

So what's all the buzz about? Is cloud-computing revolutionary, or just a repackaging of existing concepts? The ambiguity surrounding cloud computing has created confusion and an opportunity for those who wish to shape the market. It's a race to see whose definition sticks and everyone is giving it a go.

Just as it is with any hot new topic, everyone has their own perspective. When reading articles and posts like "15 Ways to Tell Its Not Cloud Computing", "Navigating the Layers of the Cloud Computing Pyramid", and "Cloud Computing in Plain English" it's easy to see that there is no clear consensus. Many of these posts reference a plethora of other buzzwords or topics like virtualization, grid computing, Infrastructure as a Service (Iaas), Platform as a Service (PaaS), Software as a Service (SaaS), Application Service Provider (ASP) and attempt to differentiate between them within the context of cloud computing. Although most of the articles I've read are technically accurate, the "glue" that ties what people consider cloud computing together seems to be missing. So just how are all these concepts related, and what is their relationship to what is now being called "cloud computing"?

Cloud computing is all about abstraction

The key to understanding cloud computing is to not focus on any one definition, but to look at the common underlying attributes and characteristics of the technologies or concepts described within the definitions.

To reconcile the various perspectives on cloud computing, one can think of cloud computing as a scale that measures the degree of architectural abstraction offered by a solution: as the level of abstraction increases, the less is known about the underlying implementation, or the more "cloudy" the architecture appears to be.

 

For the purposes of this discussion, consider three of the concepts often mentioned within the context of cloud computing: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). The figure below illustrates the increasing level of architectural abstraction, or "cloudiness" associated with IaaS, PaaS, and SaaS.

 

Levels of abstraction in cloud computing

To illustrate these concepts in more concrete terms, consider the architecture of a CRM application:

Layer

No Abstraction

Infrastructure as a Service

Platform as a service

Software as a Service

Software Functionality

CRM

CRM

CRM

CRM

Application Layer

Application specific code

Application specific code

Application specific code

Thin/thick client

Application Platform

SQL Server 2008/BizTalk/IIS

SQL Server 2008/BizTalk/IIS

Datastores/APIs

 

OS

Windows Server 2008

Windows Server 2008

   

Hardware Layer

Dell Poweredge servers, F5 Load balancers

CPU/RAM/Storage Units, load balancing

   

 

Infrastructure as a Service

With IaaS, traditional computing and network resources are abstracted from the underlying hardware. Using virtualization technology hardware resources are provisioned and machine images packaged with software configurations are deployed across the infrastructure.

In the scenario illustrated above, an organization would still have to deploy all of the traditional platform components like the operating system, database engine etc. required by the application, and design the application to interface with these components directly.

Attributes and relationship to cloud-computing:

    • Allows for custom application development
    • Enables consolidation and some level of scalability without reengineering applications
    • Applications are unaware of underlying hardware configurations, but still constrained by traditional design limitations
    • Bottom line: enables the "pay as you go" model, where users pay for resources consumed; potential for reduced capital expenditure on equipment; cost savings through consolidation
    • Related concepts: Virtualization, Grid computing

Platform as a Service

With PaaS, traditional hardware and software platform components are abstracted from the application. By abstracting the management of underlying resources even further than IaaS, PaaS provides a framework that is inherently scalable and allows for applications to be designed without explicitly taking scalability into consideration. It should be noted however, that applications designed to work within a PaaS environment are typically bound by the vendor's implementation of the platform. This reliance on vendor specific "cloudware" is the driving force behind the need to establish standards for cloud computing"(think SOA and vendor specific implementations of the "ESB").

In the scenario illustrated above, an organization would no longer deploy traditional software components like a web server or database server. Instead, the application would be built to function on the platform's "compute" infrastructure and interface with the platform's relational storage service or other APIs.

Attributes and relationship to cloud computing:

    • Allows custom application development, but bound by vendor implementation
    • "Unlimited" scalability but may require reengineering applications
    • Bottom Line: enables the "pay as you go" model; potential for cost savings resulting from reduced capital expenditure on hardware/licensing costs; increased scalability
    • Examples: Microsoft Azure (e.g .NET Services, SQL Services, Live Services etc), Force.com

Software as a Service

With SaaS, the end-user is not aware of, and does not care about any of the underlying architecture. SaaS abstracts technology completely from the consuming organization.  Management of the underlying architecture is the service provider's responsibility.   In this sense, SaaS is not an architectural design concept, but a business model.

In the scenario illustrated above, the organization uses the functionality provided by the application without regard for any of the underlying architecture.

Attributes and relationship to cloud computing:

    • Allows little or no customization
    • Bottom line: enables subscription or per-use fee model, reduced capital expenditure on hardware/licensing
    • Related concepts: Application service provider

Cloud Computing and the intersection of IaaS, PaaS, and SaaS

If you are like me, IaaS and SaaS in particular seem more evolutionary than revolutionary. Concepts like virtualization and grid computing have been around for a while, and so have hosted software solutions. So what about cloud computing is new? PaaS.

Reasoning for this conclusion:

    • Concepts like IaaS/virtualization/grid computing are enablers for cloud computing, but virtualization can be used outside of "cloud" environment if applications are not designed to leverage a cloud platform
    • PaaS builds the abstraction provided by virtualization and extends it by abstracting the underlying software platforms – this is the key enabler of custom applications that reap the benefit of inherent scalability
    • Companies that provide SaaS often employ cloud computing principles to achieve the flexibility and scalability required by their consumption based models, however, not all functionality provided as SaaS leverage the underlying concepts of IaaS/PaaS

Whether or not you agree with this interpretation, it pays to be informed so you can make your own judgments about what cloud computing means to your organization:

"We've redefined cloud computing to include everything that we already do," Mr. Ellison said at the analyst conference in September. "I can't think of anything that isn't cloud computing with all of these announcements. The computer industry is the only industry that is more fashion-driven than women's fashion." – From the WSJ

Comments and perspectives are welcome!

Contact Strategi Consulting

Copyright ©2009 Strategi Consulting

5 comment(s) so far...


Re: Abstraction: The key understanding cloud computing

Thanks for this very comprehensive definition of 'The Cloud': I find it very complete and it makes a lot of sense to me.

Question: because it seems that Paas is 'natural' to offer for market leaders of application development environment and services such as Microsoft (with .NET), Salesforce.com with Force.com and Oracle suite, I am wondering what IBM is doing in that space with their Websphere environment?
Is that already available as a Paas?

Thanks
Anais

By Anais Malaussena on   Monday, May 04, 2009

Re: Abstraction: The key understanding cloud computing

Interesting question. I believe the short answer is no, IBM's Websphere environment is not directly available as a PaaS. However IBM and Oracle have both recently partnered with Amazon to allow their products to be used within Amazon's Web Services (AWS) environment.

Specifically, IBM and Oracle are enabling their products to be used in Amazon's EC2 via preconfigured images - see aws.typepad.com/aws/2008/09/hello-oracle.html and aws.amazon.com/ibm/ for details.

These implementations basically take advantage of the benefits of IaaS (virtualized infrastructure) but do not involve rearchitecting the respective IBM/Oracle software platforms.

PaaS is about more than just exposing infrastructure as consumable resources - its about extending the principles of IaaS and building a scaleable platform on top of the virtualized environment. Amazon's AWS and Microsoft's Azure platform are very similar from this perspective. At the bottom, you have Windows Azure and EC2 which provide the development, service hosting, and service management environment, or the "cloud fabric". On top of this fabric you have things like .NET Services and SQL Data Services (SDS). AWS's S3 and Azure's SQL Data Services both represent data services that have been written to explicitly function in a cloud environment.

To illustrate this point, think about the difference between deploying an Oracle database via EC2 and using Amazon's S3 or Microsoft's SQL Data Services. An application that interfaces with a traditional DB engine still needs to be concerned about capacity/scaleability - but an application that interfaces with SDS would not. PaaS abstracts (some) the DB management from the developer.

Additionally, PaaS also involves a hosting component that both IBM and Oracle do not provide. Microsoft and Amazon both have made consideralbe investments in Data Center capacity to support their respective platforms. So, from this perspective it does not appear that Oracle or IBM are currently positioned to compete with Microsoft's Azure, or Amazon's AWS platforms. That's not to say IBM/Oracle won't be focusing on ways to make their products more "cloud friendly" in the future.


Cheers,
Ari

By Strategi Consulting on   Monday, May 04, 2009

Re: Abstraction: The key understanding cloud computing

Thanks Ari for taking the time to answer my question and the very informative response you gave.

It is very interesting to see how the key technology leaders positioning evolve with time and their capability to adapt to /anticipate new IT trends and evolution.

I personally have been investigating the Salesforce.com offering and specifically their Force.com platform services. They do have a very innovative and smart approach to business application development as well as procurement based on the Paas principle and seem to be very 'open'. Perhaps a new key of success in this field?

Cheers
Anais

By Anais Malaussena on   Tuesday, May 05, 2009

Re: Abstraction: The key understanding cloud computing

Indeed Anais, it seems Force.com has gone beyond just providing APIs, and actually allows customers to host their own Line of Business applications on the platform. Traditionally, those who used Application Service Providers (ASPs) like Salesforce had to give up a certain amount of flexibility in return for not managing their software, however, with the introduction of new platforms like Force.com, it looks like mid-cap companies will be able to have the best of both worlds (complete flexibility/reduced capital investments).

I would expect to see companies that currently provide ASP capabilities to move in this direction as well - I believe the WSJ article I mentioned above stated Salesforce.com realized a 40% increase in revenue since the introduction of Force.com.

By Strategi Consulting on   Tuesday, May 05, 2009

Re: Abstraction: The key understanding cloud computing

Great Article on Cloud computing Ari! I really like the breakdown and analysis of the three different models. I think it would be interesting to research and elaborate on the ROI and cost implications of each model, which of the models are currently most utilized by various industries, and which models moving forward are most appropriate given some of the specific needs and/or regulations of certain industries (e.g., Healtcare, Finance, Energy).

By Eric on   Thursday, May 28, 2009

Your name:
Your website:
Title:
Comment:
Security Code
CAPTCHA image
Enter the code shown above in the box below
Add Comment   Cancel 
Copyright © 2011 Strategi Consulting LLC