GoGrid Blog

Real on-demand servers. Really!

Computing on "Cloud Nine"

Written by Michael Sheehan on Mar 18th, 2008 | Filed under: General, GoGrid

353558249_5b33a0281d_oEveryone seems to be either talking about cloud computing, launching their product “within the cloud” or developing a “cloud” infrastructure. I would like to take a step back and really think about why the word “cloud” is being used in the first place.

First, a quick side note: as I tried to track down the origins of the term “cloud computing” I did come across a very insightful post by Paul Wallis that does a fantastic job stepping through the evolution from “supercomputing” through “the cluster” into “the grid” and eventually up into the “clouds.” The concept of having “data clouds speaking to supercomputer clouds” is becoming a reality, according to Wallis, however, I echo his concern that in order for this magical marriage to take place, there needs to be a new level of Quality of Service connecting the two, among other things.

Even with the foundation being laid by some heavy players, cloud computing is still in its infancy. But this is not the subject of this article. I still circle back to the marketing “genus” that coined the term “cloud” to describe this new computing paradigm. For that, I move away from the technical and more to the linguistic.

The term “cloud” can be used in many forms of speech:

  • Noun - The clouds of smoke filled the room
  • Verb - The smoke clouded the room
  • Adjective - The cloudy smoke filled the room
  • Adverb - The smoke cloudily filled the room

So, cloud is a good word choice from a grammatical perspective since it can be used with a variety of ways. But is it a good term to use to describe a product or technology? I’m not so sure. As an exercise, I started writing down words that came to mind when I thought about “cloud”. In no particular order:

Intangible Blown by the wind
Bad weather Dark
Gloomy Obscure
Vapor Nebulous
Not solid Evaporate
Storm Seeding
Rain Up in the sky
Fragile Impossible to measure
Weightless Ethereal
Ephemeral Gray
Unclear Airy

05-8-17-3970

Any patterns here? From my read, most of the terms seem to have negative connotations. I get visions of letting a balloon loose into the air and watching it disappear into the clouds. (Bursting bubble anyone?) To take things a bit further:

  • Companies have used terms like “vaporware” to describe software or code in advance of its release which then fails to materialize.
  • “Pie in the sky” is a phrase used to describe a promise heaven but continuing to suffer on earth.
  • To “have your head in the clouds” comes from the Latin proverb “Caput inter nubila condit,” a line from Virgil’s Aneid which, loosely defined, means to have unrealistic, impractical ideas.
  • Fragile, weightless, intangible, nebulous, unclear, impossible to measure - all these connote something that is vacuous and non-solid.

So I ask you this, does this make you comfortable 07-4-23-1392putting your mission-critical data or applications within a cloud? Earlier terms like cluster, super, utility and grid computing, in my mind, make much more “tangible” sense. While I’m sure this term is here to stay and there is not much that I can do to change that, I do question the terms legitimacy within technology and the development of solid business practices. Would you rather work in the cloud or work on a server? Even though the term “virtualization” tends to imply something that is not real, it is closer to the ground and significantly more absolute than something “in the clouds.”

Computing in the cloud, or dare I say, on “cloud nine”…I’m just waiting for reality to hit and the rain to begin.

[Cloud images used by permission.]


One of the Better “Cloud Computing” Posts that I have Read

Written by Michael Sheehan on Feb 20th, 2008 | Filed under: General

Alex_Iskold_graphic As I strive to better understand these new emerging technologies such as “cloud computing”, I frequently find myself reading various blog articles, many professing to be the end-all definition related to the topic. It is not very often that I actually come across an article that is informative, understandable and compelling enough to warrant note.

The post by Alex Iskold is a perfect example of one of these excellent articles. An important definition from his post:

The idea behind cloud computing is simple - scale your application by deploying it on a large grid of commodity hardware boxes. Each box has exactly the same system installed and behaves like all other boxes. The load balancer forwards a request to any one box and it is processed in a stateless manner - meaning the request is followed by an immediate response and no state is held by the system. The beauty of the cloud is in its scalability - you scale by simply adding more boxes.

Some may say that this article is a bit “heavy” on Amazon as the “killer service.” But I believe his point is that Amazon has put a lot of weight behind and person-hours into their products and they will be hard to duplicate, at least for players developing “cloud” products. But some of his general comments hold true regardless of the product: “Free from the need to solve the scalability problems, startups are able to focus on the specific problems their product or service is trying to solve.”

I recommend this as a good read on what Cloud Computing is, a la Amazon, and for people really trying to make heads or tails of grid, utility, cloud and distributed computing.

In closing, Alex’s line “…we are witnessing a fundamental shift in our ability to compute and this is just the beginning…” truly sums it up for all players and customers in this market. I echo that whole heartedly.


Understanding “Clouded” Computing Terms (revised)

Written by Michael Sheehan on Feb 5th, 2008 | Filed under: Cloud Computing, Customer, FAQs, General, GoGrid, ServePath, Templates

Author’s Note: This post was revised on 6/23/08. The nature of computing is under going a revolution and rather than fully remove this post, I elected to refresh it so as to provide a better framework for readers.

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.