InfoQ

News

Defining Cloud Computing

Posted by Steven Robbins on May 29, 2008

Community
Architecture,
SOA
Topics
Deployment / Datacenter ,
SaaS ,
Hype ,
Cloud Computing ,
Grid Computing ,
Virtualization
Tags
Services ,
Scalability ,
Patterns and Practices ,
Interviews
The term "cloud computing" has shown up everywhere from the Web 2.0 conference to the enterprise architecture whiteboard sessions in big companies to the laptops of startup developers. The big question being asked now is "what is cloud computing?"

Like many things in technology and computer-related fields, the answers to this question are as varied as the people asked. Rod Boothby interviewed several people at the Web 2.0 Expo and produced a video with their responses. Kevin Marks, head evangelist for Google's OpenSocial, explained the progression of abstraction from the network cloud around packets to the World Wide Web cloud round documents to the computing cloud around interactions. In each case, the cloud provided an abstraction of some part of the environment such that the user didn't have to perceive nor care about it. Dan Farber, editor in chief of CNET NEWS, said that the cloud is currently a storage place for data and applications and that it will move to being "like electricity" in its accessibility to developers and users alike. Other opinions on cloud computing ranged from what it will provide, e.g. ease of use, ease of deployment, ease of operations, to what it is not, e.g. installed software, specific platforms.

Linda Tucci used RAID as an analogy to try to explain cloud computing. Tucci emphasized the price component in cloud computing with the analogy:
When the first patents for this revolutionary concept were filed by IBM in 1977, the focus was on performance, not cost. Ten years later it became apparent that an array of consumer-grade "crap disks" could deliver better reliability and performance than standalone disks at dramatically lower costs. So much cheaper, in fact, that when enough parts failed, the array was "pushed out the back door" and dumped.
David Young introduced what he called a "Specification for a Cloud Computer" in which he listed 9 features that make up Platform as a Service (PaaS) cloud computing. Young's features are:
  1. Virtualization Layer Network Stability
  2. API for Creation, Deletion, Cloning of Instances
  3. Application Layer Interoperability
  4. State Layer Interoperability
  5. Application Services
  6. Automatic Scale
  7. Hardware Load Balancing
  8. Storage as a Service
  9. Root access, If Required
Several others have attacked the task of defining cloud computing by discussing what things are not cloud computing.

James Governor distilled the thoughts of several people in to a "Top 15" list of ways to tell it's not cloud computing. Some of Governor's points were that cloud computing does not need to install software on your machine, does not need you to have a specific OS, is not the same as "grid computing", and does not require you to purchase server hardware. Tony McCune also listed three exclusion criteria for cloud computing. His list excludes simple web portals, just using virtualization, and Microsoft's Mesh. Following these criteria, McCune provided his list of cloud computing technology candidates
1. The portable Web - deployable widgets, portlets or other elements that are built on top of Adobe Air, Google Gears or even (big throw back) a Java applet. These computing elements can be designed to serve a specific computing function and be deployed across multiple platforms without concern for the underlaying infrastructure.

2. Autonomic virtualized clouds - Amazon Web Services, Microsoft SSDS (when it actually happens) or VMWare based solutions for computing or storage in an on-demand configuration that provides utility computing from a Web connection.

3. Virtual Application Servers - Google Apps Engine is a great example of where Cloud Computing is going. The Google implementation on Python with it's limited API will not draw enterprise customers but it does give us the first working "appserver in the cloud". Where Google shines in this regard is simplicity. Relatively lower skilled programmers can quickly develop working applications without any concern for the underlying implementation of the services they are using.
Joe McKendrick brought some criticism of the cloud computing paradigm to light. McKendrick pointed out statements from Nick Carr about how international political boundaries (e.g. UK's Regulation of Investigatory Powers Act and China's 'firewall') inhibit the use of true cloud computing.

Boothby summed up the answers he got to the question with this, "The more important question isn't so much 'What is Cloud Computing?' but instead, now that it's here, what are you going to build?"

No comments

Watch Thread Reply

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.