Abstraction: The key understanding cloud computing

Abstraction: The key understanding cloud computing

“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”.

041409_0146_Abstraction1

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.

 

041409_0146_Abstraction2041409_0146_Abstraction4

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.

 

ArchitecturalAbstraction

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