Kate's Comment

Thoughts on British ICT, energy & environment, cloud computing and security from Memset's MD

(Deprecated) The definition of cloud computing

This post has now been superseded by my updated managed hosting providers like my company, Memset, do but taken to a shorter timescale. We can rapidly provision virtual severs, dedicated servers or server clusters, and rent them to customers on flexible terms (eg. monthly contracts). Utility computing is the extension of that concept but instead of referring to servers it is the provision of chunks of general computing resources (CPU, RAM, disk etc) in real-time response to demand, and on short time scales such as hours, minutes or even seconds (and billed for as such).

In other words, utility computing is the provision of computing resources as a utility, in the same way that the familiar utilities (electricity, water, gas) are provided; on a pay-as-you-use basis. Sometimes utility computing it is called “on-demand computing” – the terms are synonymous. In a utility computing model the following resources would be available “on tap”:

  • CPU time
    • Cores
    • Clock cycles per second
    • Floating point processing vs. integer processing (MIPS vs. FLOPS)
  • Data storage (RAM, disk etc)
    • Data space (bytes)
    • Maximum I/O throughput (bytes per second)
    • Maximum transactions per second (I/O operations per second)
    • Error correction level
    • Redundancy (eg. RAID level)
  • Bandwidth / connectivity
    • Throughput (bytes per second)
    • Latency to specific locations
    • Network redundancy

Grid -> Utility -> Cloud

So, how does utility computing relate to grid & cloud computing? Those terms are often used in the same breath as utility computing, or the three are confused with each other. While interconnected, though, they are different concepts:

  • Grid computing is a technical approach spanning an application across multiple computers within one administrative domain (one provider, not necessarily one location).
  • A compute grid is a collection of computers within one administrative domain capable of hosting a distributed application.
    • Grid is about infrastructure.
  • Utility computing is a sales approach, treating computing resources as a utility in the way we treat the familiar utilities (water,gas,electricity etc.). A utility computing provider would sell resources on their own grid(s).
    • Utility is about business relationships.
  • Cloud computing means an open market for computing resources; utility computing applied to multiple grids.
  • A compute cloud is a grid spanning multiple administrative domains with applications able to move between domains in response to cost and SLA requirements.
    • Cloud is about scale and the computing resource market.

Is Cloud Computing already here?

Amazon’s Elastic Compute Cloud is actually rather mis-named, and is really just a very large utility computing facility that spans multiple data centre locations, all of which are within one administrative domain (ie. Amazon’s massive grid).

Google’s App Engine is also not “cloud computing”, but instead a somewhat constrained sort of utility computing (you can only run applications specifically coded for the app engine). Some might call it “IT as a service”, but that term is rather too vague also.

Arguably there is only really one “cloud”, which is the mass-market for utility computing resource. To state “I am going to host this in the Cloud” would mean that you are going to run your app on one (or many) of the available utility computing providers.

Globe-trotting applications (aka. ‘Follow the moon’)

The ultimate vision of cloud computing is where you do not actually know where your application is being run at any one time. You would specify your SLA (eg. uptime, latency to a certain location) requirements and certain financial limits, and then give it with those specifications to some sort of broker. The application would then be able roam between administrative domains (eg. a data centre, a collection of PCs like Seti@Home, a super computer, your neighbours’ home appliances, etc), automatically seeking out the most cost effective resources that fit within the SLA requirements.

We are far from achieving true “cloud computing” at the moment, but we do have a number of utility computing providers coming online. As business slowly learns to let go of their attachment to tin and the concept that “this application run on that box” or even “this application runs in that data centre” then we shall see a massive commoditisation of the marketplace. This in turn will most likely result in the centralisation of compute resource into a small number of very large data centres in geographically strategic locations, and will enable much “greener” computing.

Cloud is not the most efficient form of computing purely because of optimal usage of IT resources, either. In the ultimate vision of cloud, one can envisage applications roaming the planet East-West, following the night time to take advantage of cheaper electricity prices (there is a surplus of power generation at night, and it is inefficient to transport electricity long distances at present), and lower temperatures (meaning less power for cooling).


Update: But isn’t Cloud also about IT services / SaaS?

Here I am merely trying to pin down one aspect of the poorly defined mess that is “Cloud”. In this article I am specifically talking about compute & storage resources (hence ‘Cloud Computing’) and am not attempting to define our contain the other areas to which many apply the same term.

I believe that when most people talk about “Cloud” they are referring to the phenomenon of increasing centralisation and commoditisation of ICT services – “everything over the wire”.

We need more terms; what I describe here is the mass-market for utility compute resources – the “power grid” of computing, if you will. What you are talking about could be called “Cloud Services” perhaps – services run on a compute utility and themselves delivered as a utility in a standardised manner. The problem I have with that is that while compute resources are interoperable, services are generally not (my compute and storage is directly comparable/interchangeable with Amazon’s, but Kashflow.co.uk is not so easily interchangeable with Xero.com).

23 comments

  1. David Mar 5, 2009 13:50 Hi Kate, great article. I find Cloud Computing to be one of those misunderstood "buzzwords" that get thrown about in meetings. Great explanation.

    "The ultimate vision of cloud computing is where you do not actually know where your application is being run at any one time. "

    This is actually makes alot of sense to me.

    David (Sugar Web Design (http://www.sugarwebdev.co.uk))
  2. Matthew Mar 29, 2009 19:01 Have you seen the new video game service onlive.com? I think it may actually fit a description of cloud computing. The company houses servers/mega gaming rigs that the user uploads controls/keyboard commands and the onlive system runs and streams the software back as hi-def video in 2 millisecond lag. No code is shared from the provider to the end user.
  3. Kate Craig-Wood Apr 2, 2009 14:31 @Matthew: Yes, OnLine is definitely Cloud Computing - it is a streamed gaming service with all the grunt work (including graphics) done remotely and then the video streamed back to the user. Very cool, and most certainly the future in my view.
  4. McKinksey report saying “Cloud costs more” is Wrong! | Kate's Comment Apr 16, 2009 14:19 [...] McKinsey need to realise that “Cloud Computing” is just what we dedicated hosts have been doing for years but on smaller time frames. If you want a decent definition of Cloud, see the BCS Data Centre Specialist Group Web, or my original version of that definition. [...]
  5. Asif Shabbir Apr 23, 2009 13:15 Where we get BCS Data Centre Specialist.
  6. Kate Craig-Wood May 14, 2009 16:04 @Asif Shabbir The BCS Data Centre Specialist Group's Web site at is dcsg.bcs.org.
  7. john apps May 19, 2009 16:35 "The ultimate vision of cloud computing is where you do not actually know where your application is being run at any one time."

    A very nice and concise definition. May I suggest that "application" be replaced by "service"? Yes, I realize that "service" is about as bad as "cloud" when it boils down to it, but then, so is "application" in the meantime. I find the term "application" insufficiently granular to express what I can do in a cloud.

    One of the nice things one can do with the AWS services (I will graciously ignore the cost for now), is to have "services" talk to each other using things like EC2, SQS, S3 and so forth. Once can, of course, add other software such as an AMQP implementation like CloudMQ (which runs on AWS!) for high-speed queuing, and other Open Source products.

    Last, but no least, I will take a closer look at the services your company offers as your blog intrigues me!

    Cheers, John
  8. Kate Craig-Wood May 20, 2009 14:49 @john apps - You are probably correct that "service" is the correct term, however as you say it is a poorly defined word in this context and also I wanted to convey the concept in terms people would be familiar with.

    Perhaps what I should do is define a cloud-based application more clearly; software and/or data that delivers a service over the Web.
  9. Nick May 21, 2009 07:26 Nice article and technical definition of cloud computing.

    What I am wondering is if achieving the "true vision" of cloud computing will ever be commercially possible and if it would have any advantages for anyone. What problem are we trying to solve?

    I run a software development business that relies on global availability of our data and international collaboration but I think reliable global access to data is different to global distribution of data. I may need to access our data in USA, Europe and Asia but actually I want to know where the data is stored and backed up.

    Having all the world's data in a small number of mega data-centres seems to be a very "big government" approach. I am also not sure the environmental argument stacks up either.

    For business users it is hard to see how effective and meaningful SLAs could ever be constructed if your application and data could be anywhere. Who is responsible? What about data protection?

    Twitter: @nickevansuk
  10. udin May 30, 2009 07:41 Well, I think cloud computing according your definition is just look like green computing somewhat, like less electricity and less power to run or downloading a program
  11. Kate Craig-Wood May 30, 2009 14:06 @udin That is basically what I've been saying; 'Cloud Computing' is nothing that special - just an extension of utility computing (which is synonymous with 'green computing' in many ways) across multiple providers.

    @Nick You are right that some people need to know where their apps are, and that is where what companies like mine do (as a utility computing provider) come in. However, there are also significant security advantages to not-quite knowing where your apps are. For instance; if you specify in your SLA requirements that it must be within England and in a 'List X' data centre (or even one of a group managed by one company you trust), and perhaps that it must not stay in one location for more than a few days, then suddenly you have awesome physical security.

    In effect, you have hidden your application/database as a tree in an ultra-secure forest. Even if, somehow, the Bad People gained access to one or more of the List X facilities a) they would not know which facility to look in and b) there is no way to tell which servers to steal.

    As for your assertion that a mega-data centre is more environmental, just look at how Google does it. They have mega-data centres divided up into units (containers), and that is absolutely the most efficient way to do it at present. There are large economies of scale to be had by a centralised approach.

    However, in future we will likely see another model emerge where the Cloud extends onto the many low-power devices (such as those powered by Atom and ARM processors) that are becoming ubiquitous in our world. To take advantage of that we need a very different approach to distributed computing though.
  12. trainer Jun 30, 2009 11:31 Correction:
    Your sentence:
    "Grid computing is a technical approach spanning an application across multiple computers within one administrative domain (one provider, not necessarily one location)"
    Is not true.
    Grid computing is intended for multiple administrative domain and not at all for single domain. That is just the opposit.

    Please correct it.
  13. Kate Craig-Wood Jun 30, 2009 11:43 By definition, a grid must be under one administrative domain (ie. one entity has control over those resources) or you cannot use it! That does not mean that all nodes in the grid are owned by the same person, however. For instance, PCs involved in SETI@Home form nodes in the distributed grid that SETI use, hence they are all under one administrative domain.
  14. Martin Cordrey Jul 14, 2009 08:28 Hello Kate,

    I am a trained engineer an have not got a clue what you lot are talking about, however, we are now selling wireless meter reading equipment so companies can have more accurate readings on utility bills.

    Are there any sites we can attach our software to, so making them open to the client direct?

    Martin
  15. Kate Craig-Wood Jul 14, 2009 14:47 I was having a conversation with some top people from the consumer electronics sector recently regarding smart metering - I would think that is where you should be targeting your products.
  16. Ravi Jul 22, 2009 05:14 So basically, in "cloud" computing, all the processing is done in a massive server farm and only inputs and outputs come and go from the "cloud"? Like the upcoming OnLive service or similar to traditional web hosts and web applications, but in large scale. Is that right?

    Thanks for the article.
  17. Kate Craig-Wood Jul 22, 2009 10:16 @Ravi OnLine is an excellent example of a cloud-based service, yes, although I believe it is being streamed from one source so perhaps closer to utility computing. World of Warcraft is run on a scalable compute utility too, although some of the work is done by the local machine.

    In the future, I expect ever-more services to be delivered over the wire with less and less compute resource at the client-end (like OnLive).

    Perhaps the best example of 'true' cloud computing in the gaming world is Sony's PS3 where the 'host' for some games is the distributed collection of games consoles themselves.
  18. Adrian Smales Jul 22, 2009 17:24 Hi Kate,

    The definitions you have set for the various concepts Grid/Utility/Cloud while appear reasonable do not quite explain the difference in intent of each.

    I agree in the main with your definitions, however as there is no standard defined it is dangerous to create definitions with out the understanding of how you are abstracting the problem.

    I am currently part of an open source pilot:
    http://duraspace.org/duracloud.html

    The way that we abstract the various layers and define the evolution is thus:

    Grid Computing:
    Provisioning of hardware in a virtualised environment to provide the building blocks required to host various applications.

    Utility Computing:
    The ability to dynamically supply or allocate (and bill) elements of a Grid environment on demand.

    Cloud Computing:
    The application of utility computing as a service (SLA’s and QoS), independent of vendor. Interoperability is a key consideration and a major factor.

    The Duracloud project will allow interested organisations to host a cloud environment that will host various distributed applications providing compute and storage services.

    The open source environment that can be used currently is:
    http://www.eucalyptus.com/

    also see:
    http://www.eucalyptus.com/enterprise/info/cloud-myths-dispelled/

    Best regards.
  19. Kate Craig-Wood Jul 22, 2009 22:17 @Adrian Smales: Thank you for the intelligent response. I am merely trying to define one aspect of the undefined mess that is "Cloud". In this article I am specifically talking about compute & storage resources (hence 'Cloud Computing') and am not attempting to define our contain the other areas to which many apply the same term.

    I believe that when most people talk about "Cloud" they are referring to the phenomenon of increasing centralisation and commoditisation of ICT services - "everything over the wire".

    We need more terms; what I describe here is the mass-market for utility compute resources - the "power grid" of computing, if you will. What you are talking about could be called "Cloud Services" perhaps - services run no a compute utility and themselves delivered as a utility in a standardised manner. The problem I have with that is that while compute resources are interoperable, services are generally not (my compute and storage is directly comparable/interchangeable with Amazon's, but Kashflow.co.uk is not so easily interchangeable with Xero.com).

    As for Eucalyptus, we are thinking of using that for our own EC2-like service. Personally I think Amazon have got it a bit wrong though, and we are going to roll out something a little different most likely as well.

    DuraCloud looks interesting - probably ideal for folks that are not too worried about security / locality.
  20. Dakshayani B S Dec 24, 2009 08:41 confusing terms are grid, utility & cloud computing. Now i have understood little bit.But still some materials tells that grid is sub set of distributed computing. Is this cloud computing is also true?

    I heard different computing models are now emerging technology like grid,utility,cloud,parallel, distributed,soft,pervasive,computing 2008,cluster computing etc.. Can you give me the clear picturization of these models & how these models are inter-linked?
  21. DavidW Feb 1, 2010 16:44 Interesting though I would say that your definition of grid is wrong, Grid currently is inherently crossing administrative domains, EGEE, TeraGrid, OSG are all effectively a set of different resource providers that all run the same platform.
  22. Kate Craig-Wood Feb 10, 2010 19:27 @DavidW Good point actually; since I wrote that post (and I'm working on an updated version) about 18 months ago. At the time I meant "one administrative domain" to mean within one domain of logical control, rather than one domain of physical control (eg. a bunch of Universities), but since then the term "administrative domain" seems to have transmogrified to mean a physical domain of control.
  23. source link Aug 8, 2012 14:43 Thanks Great

Add your comment

Page optimized by WP Minify WordPress Plugin