Welcome!

Java Authors: Pat Romanski, Haim Koshchitzky, Liz McMillan, Gary Kaiser, Elizabeth White

Related Topics: Cloud Expo, Virtualization

Cloud Expo: Article

Understanding "Clouded" Terms of Cloud Computing

The definitions vary from source to source, author to author

Michael Sheehan's "GoGrid" Blog

There seems to be a lot of debate around different types of Computing Terms being used to describe server and hosting solutions. In fact, in the past, the blogosphere seemed to throw around terms like Grid, Cloud, Utility, Distributed and Cluster computing almost interchangeably. But, as of this revision, one term is rising to the top: Cloud Computing. (See recent trend analysis here.)

The definitions vary from source to source, author to author. While I cannot (and will not) attempt to articulate the end-all definition, I can write about how I view these terms and how they apply to the products that we offer, namely GoGrid. But before I dive into MY interpretation, providing what others view on these subjects may shed some light on our framework.

Terms as defined by Wikipedia

wikipedia_logo_sm Many people view Wikipedia as an authoritative source of information but that is always subject to debate. Wikipedia defines some of these terms as follows (not the end-all definitions though) and I have taken some liberties of removing non-relevant information for argument’s sake:

  • Grid Computing - http://en.wikipedia.org/wiki/Grid_computing
    • Multiple independent computing clusters which act like a “grid” because they are composed of resource nodes not located within a single administrative domain. (formal)
    • Offering online computation or storage as a metered commercial service, known as utility computing, computing on demand, or cloud computing.
    • The creation of a “virtual supercomputer” by using spare computing resources within an organization.
  • Cloud Computing - http://en.wikipedia.org/wiki/Cloud_computing
    • Cloud computing is a computing paradigm shift where computing is moved away from personal computers or an individual application server to a “cloud” of computers. Users of the cloud only need to be concerned with the computing service being asked for, as the underlying details of how it is achieved are hidden. This method of distributed computing is done through pooling all computer resources together and being managed by software rather than a human.
    • The services being requested of a cloud are not limited to using web applications, but can also be IT management tasks such as requesting of systems, a software stack or a specific web appliance.
  • Utility Computing - http://en.wikipedia.org/wiki/Utility_computing :
    • Conventional Internet hosting services have the capability to quickly arrange for the rental of individual servers, for example to provision a bank of web servers to accommodate a sudden surge in traffic to a web site.
    • “Utility computing” usually envisions some form of virtualization so that the amount of storage or computing power available is considerably larger than that of a single time-sharing computer. Multiple servers are used on the “back end” to make this possible. These might be a dedicated computer cluster specifically built for the purpose of being rented out, or even an under-utilized supercomputer. The technique of running a single calculation on multiple computers is known as distributed computing.
  • Distributed Computing - http://en.wikipedia.org/wiki/Distributed_computing
    • A method of computer processing in which different parts of a program are run simultaneously on two or more computers that are communicating with each other over a network. Distributed computing is a type of segmented or parallel computing, but the latter term is most commonly used to refer to processing in which different parts of a program run simultaneously on two or more processors that are part of the same computer. While both types of processing require that a program be segmented—divided into sections that can run simultaneously, distributed computing also requires that the division of the program take into account the different environments on which the different sections of the program will be running. For example, two computers are likely to have different file systems and different hardware components.

Upon initial read, Wikipedia seems to be fairly close to my definitions but still not exact. Of note, “metered commercial service” rings true within both the Grid Computing and Cloud Computing definitions. However, it also seems to spill into the Utility Computing mantra. As a side note, our newest product, GoGrid, utilizes a metered service similar to how an energy company would charge you for electricity or gas, basing charges simply on what you use.

Traditional “Clouds” vs. Modern “Clouds”

Grid Computing seems to also have some origins in the idea of harnessing multiple computer resources to gain a more powerful source of shared power and computational resources. folding@home However, I would like to suggest that this definition is showing some age and, in my opinion, falls more under Distributed Computing. When I think about Distributed Computing, SETI@Home or Folding@Home come to mind, which is definitely very different from where things are moving now. So, let’s put Distributed Computing aside for this discussion.

Traditionally, the “cloud” was loosely defined as anything outside of a controlled network. When we, as Hosting Providers, discussed “the cloud” in the past with our customers, it was about the nebulous network that is known as the Internet. The cloud is loosely managed and traditionally unreliable. To that end, we do not refer to anything within our control or our networks as “the cloud” as it is too vague and un-manageable. It is outside of our Service Level Agreement and nothing that we can guarantee or deem reliable. However, once traffic enters our network, we manage it. That is where the modern interpretation of the “Cloud” comes into play. Products like Amazon’s EC2 and ServePath’s GoGrid have internalized Cloud Computing by building a reliable infrastructure around it. While the Internet remains as a Cloud of coupled servers and networks, GoGrid, for example, extends this by creating an infrastructure that offers “control in the cloud.”

Originally, I wrote that “Cloud Computing does not necessarily equate to reliable service.” This, obviously, is a contradiction in itself if you apply both the historic and modern definitions at the same time. If one views the Internet as “Cloud Computing,” there are obvious weaknesses within this vast network. With the Internet, you are at the whim of various service providers, Internet backbones and routers managing the traffic within the Cloud. But if one applies the more modern interpretations of this, Cloud Computing now offers robust infrastructure, features and services that were previously unavailable.

Tying the Grid to the Cloud

In order to provide “modern” Cloud Computing, a provider must have some sort of an organized and controlled network infrastructure and topology. What any particular service provider chooses is up to them. For GoGrid, we elected to build our Cloud offering on top of a Grid of servers as well as utilize a Utility-based billing model to only charge the end-user for what they use within our “Cloud.” The end-result is a tightly controlled Grid infrastructure that provides a Cloud Computing experience, more so than most if not all of the other hosting providers out there.

However, what is important here is looking at Cloud, Grid and/or Utility Computing from the perspective of a Hosting Provider. Definitely this is where things get contentious. As I mentioned before, GoGrid offers a traditional utility billing process where you simply pay for what you uses. This breaks from many “old school” hosting billing processes of paying up-front for server(s) and bandwidth, month or year-long contracts and then paying for overages. Does this mean that it is Utility Computing? Not really. One has to dig into this a bit more. GoGrid uses a network of similarly-configured servers bound together by management and administrative servers and virtualization tools to provide a very unique Cloud offering that is distinct from traditional hosting.

Dedicated, Managed and Cloud Servers offered by ServePath guarantee hardware resources like RAM and Load Balancing and full root and administrator access but these paths rapidly diverge at this point. Once one steps into the virtualization arena, or dare I say “the cloud,” new features are available including rapid deployments, cloning, snapshots, fault tolerance, and on-demand scalability.

ServePath chose Grid Computing to power GoGrid and provide the flexibility, scalability and robust infrastructure as the fundamental foundation of an award-winning Cloud Infrastructure product, GoGrid. The end results is a Cloud Hosting Provider offering that delivers better environmental properties, faster vertical and horizontal scalability and ultimately better fits for cost, performance and energy-concerned customers.


[This appeared originally here and is republished by kind permission of the author, who retains copyright.]

More Stories By Michael Sheehan

Michael Sheehan is the Technology Evangelist for Cloud Computing Infrastructure provider GoGrid and ServePath and is an avid technology pundit. GoGrid is the cloud hosting division of ServePath Dedicated Hosting, a company with extensive expertise and experience in web hosting infrastructure. Follow him on Twitter.

Comments (4) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
maydbs 10/30/08 12:11:04 PM EDT

Hi Michael,

even thought you wrote this a few months ago, i got to read it today and thought it was very current, if you notice how much resistance we've been having to Cloud Computing. I linked this post on the blog i'm working on to illustrate that maybe some people are just too afraid because they dont understand about it enough! let me know if it offends you in anyway and i'll remove it immediately. Tks!

Snehal Antani 07/17/08 12:57:37 PM EDT

So in response to a blog post that positions Grid and Cloud computing, I've expanded on my thoughts in this area. You can read the discussions at: http://www-128.ibm.com/developerworks/forums/thread.jspa?threadID=214794...

The post is as follows:
I see "Grid Computing" as the coordinated execution of a complex task across a collection of resources. The burden of the "grid" is to provide control over that execution (initiating the execution, stopping the execution, aggregating results of the execution, reporting the status of the execution, and so on).

The "grid" should be transparent to the end user. Take SETI@Home for example. The "User" is the researcher that will analyze the results of all of the computations. The SETI@Home platform manages partitioning the data into discrete chunks, dispatching & monitoring the results across the collection of CPU's spread across the world, and aggregating the results to provide a single view to the "user".

Cloud Computing on the other hand provides the virtualized infrastructure upon which the Grid Endpoints will execute. So for example, the "cloud" would provide an "infinite" number of operating system images on which the SETI@Home software would execute. The cloud shouldn't care about application-specific data, nor should it care about the business logic that is actually executing within a virtualized image. The cloud cares about allocating new images (synonymous to LPAR's) for applications to run, keeping track of how much physical resources (actual CPU cycles for example) the virtual images consumed, cleaning up the virtual images upon completion, and billing the client for the amount of resources consumed. So with these definitions, going back to my example of SETI@Home, I would argue that this software has both a grid computing component as well as a cloud computing component, where the # of registered computers is part of a pool of hardware resources that already have the SETI@Home grid application containers installed and ready to go), but we should be sure to see 2 separate components and responsibilities: the decision to pick a physical machine to dispatch to, and the grid container that executes the scientific processing.

To summarize, grid applications and therefore the "Grid Computing" paradigm, which I consider an application architecture and containers for running the business logic, would execute on top of an "infrastructure cloud", which appears as an infinite # of LPAR's.

BTW, we've had the ability to run'private clouds' for 30-40 years - multi-tenancy via S/390 & MVS - and we do it all over the place today. The key difference is that today, w/ Amazon EC2 for example, we can dynamically create and then destroy complete 'LPARS' relatively cheaply; whereas in the mainframe and other big iron hardware, LPAR's tend to be statically defined. In both cases the hardware is virtualized under the covers, some sort of VM/hypervisor contains the operating system image, some type of application server or container executes the business logic, and some type of workload manager assures workload priorities and provides the chargeback.

I've alluded to some of this in my article on 'enterprise grid and batch computing': http://www-128.ibm.com/developerworks/websphere/techjournal/080 4_antani/0804_antani.html.

The Parallel Job Manager (described in that article) in WebSphere XD Compute Grid would essentially be the Grid Manager, whose job is to coordinate the execution of complex tasks across the cluster of resources (Grid Execution Environments). Today we don't discuss the ability to dynamically create new LPAR's (and therefore call ourselves a cloud computing infrastructure), but you can easily do this with a product like Tivoli Provisioning Manager. Basically, take the bottom image in my article: http://www-128.ibm.com/developerworks/websphere/techjourn al/0804_antani/0804_antani.html#xdegc and connect Tivoli Provisioning Manager to the On-Demand Router (part of WebSphere Virtual Enterprise).

Snehal Antani 06/29/08 06:41:06 PM EDT

Excellent article. This provides an excellent survey of the technologies and helps put each of them in perspective. I wrote an article that compliments this one; I discuss how various patterns from each of these domains can be brought together to provide a complete grid and batch solution: http://www.ibm.com/developerworks/websphere/techjournal/0804_antani/0804...

Blue Grid 06/06/08 04:00:15 PM EDT

IBM has devoted 200 researchers to its cloud computing project.