InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Defining Cloud Computing

Posted by Steven Robbins on May 29, 2008

Sections
Architecture & Design,
Enterprise Architecture,
Operations & Infrastructure
Topics
Virtualization ,
Architecture ,
Hype ,
Cloud Computing ,
SOA ,
SaaS ,
Deployment / Datacenter ,
Grid Computing
Tags
Services ,
Interviews ,
Scalability ,
Patterns and Practices
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?"
  • This article is part of a featured topic series on SOA

No comments

Watch Thread Reply

Educational Content

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.