Cloud Computing Defined #1

Cloud Computing 101

From the ESM blog:

IMO, A the holy grail cloud has only two primary characteristics and five secondary add-ons.

Primary

1) It uses commodity based hardware as it’s base. Hardware can be replaced at anytime and have no effect on the cloud.
2) It uses commodity based software containers. For example an image should be able to be pulled from one cloud provider to any other cloud provider.

Some secondary characteristics are:

1) Virtualization
2) Abstraction layer for the hardware, software, and configuration of systems.
3) Pay as you go with no lock-in
4) Dynamic horizontal and vertical scaling
5) Flexible migration and restart capabilities

What’s your definition of Cloud Computing?

If you are curious about Cloud Computing and security, don’t miss out on future posts: subscribe by RSS or subscribe by email.

12 Responses to “Cloud Computing Defined #1”

  1. Good stuff Craig. Great topical idea for a blog…looking forward to following it.

  2. @G: Thanks G! Let me know if there is anything you would like to see covered. I have a stack of ideas but always welcome input.

  3. IBM might disagree… They’re pushing for using things like their Blue-Gene computer as the basis for a Cloud. I suppose their approach is all about economies of scale, which kind of fits with the cloud ethos. Their argument about less watts-per-FLOP is compelling, what with the rising energy costs and all…

    Don’t know how the storage side of the equation fits in though.

  4. There is a name for that Cloud… it’s google :P

  5. As a follow-up question: what are the biggest security concerns of cloud computing? (What needs to be fixed first?)

  6. @foo fighter: Thats the money shot question :-). I’m not sure anyone actually *knows* what the biggest security concerns are - and really that comes back to why I’ve started this blog - to try and figure this stuff out. This won’t be a one man effort, although I will be posting (very shortly) some of the security concerns I have. Thanks for your comment and keep coming back.

    @Alex: I agree with you - IBM wouldn’t agree with the definition given - it wouldn’t make sense for them with such an investment in big iron. Incidentally, they have made 3 storage acquisitions in the last few months. They just announced purchasing a company that specializes in data “de-duplication”. Although they are positioning that as a enterprise customer data center play to reduce storage requirements (amongst other things), it would make perfect sense for them to use the technology in an IBM flavour cloud. I should add that I’m unable to find a consensus view for “Cloud Computing”. So doing ’security in the cloud’ gets kind of difficult as it normally helps to know what you’re meant to be securing ;-). Watch for future updates to the definition - I intentionally labelled it #1 so I could flip it to 2…3…n later on :-). Thanks - good comment.

    @mokum: hey, you may be right but its maybe got a blue tinge to it (IBM and google co-invested in a large data center for ‘research and training’ reasons). But yeah, Google definitely has the mindshare and marketshare but there are quite a few players emerging that will excel in areas that Google gets a bad rap for (e.g. customer service). Thanks for dropping by - good to hear from you.

  7. I recently posted a what is cloud computing post on my blog that might be of some interest as a response to your question. I said, “cloud computing is a commercial extension of utility computing that enables scalable, elastic, highly available deployment of software applications while minimizing the level of detailed interaction with the underlying technology stack itself.” but the entire article has more information of course.

    http://www.productionscale.com/home/2008/4/24/cloud-computing-get-your-head-in-the-clouds.html

  8. I’m building a small scale grid system for the govt. I’m on the second version (third ones the charm, as we all know), early on in development though the high level design is complete - except for details on security. There are various layers of authentication and authorization built in, in both synchronous (WS-based) and asynchronous messaging. But I’m not a security expert so I’m curious what others feel are important aspects to having secure system (aside from the typical buffer overflow class of problems). FWIW, we don’t offer a web based interface to the grid. We use standalone thin clients (which, as it turns out and IMHO, are not particularly thin).

    Also, my bet here is that cloud computing topics are too large scale and that we’re missing the boat on the concept that *anyone* can be a provider of resources for the cloud. The electric company analogy often used with cloud computing implies one large provider with lots of users. I’m betting with the Internet that any business can be a provider (there will, of course, be some kind of coordinating force for users to find those resources) using smaller scale grid solutions, often peered together to provider larger collections of resources under various “communities”.

    As to your definition, I have some questions (I’m a technologist, not a business person, so these are tech related):

    1. Primary #2 - by “image” do you refer to a graphic image or a software image? If the former, it’s a no brainer though standards for storage migration (file sharing) need to be developed (re: adopted) to make it seamless. If the latter, then you’re talking about a cloud API, like POSIX for the grid. I don’t see that anytime soon, but we can hope.

    2. Does virtualization refer to hardware, operating system, memory, storage or process space virtualization? Each of these has it’s own set of problems to solve. Clustering (I believe) attacks process space virtualization (along with memory and perhaps storage). Tools like Xen and VMWare address hardware and OS virtualization. Supporting the various types inside the cloud will require unrelated cloud internals.

    3. What kind of migration are you looking for? Obviously migrating between different OS types is a pain (even Java doesn’t help that much). Migration of a task between distinct OS platforms with each running a version of the same application is another possibility. Do you need realtime migration (immediate switch over) or scheduled migration? Application restarting is easy if all applications in the cloud adhere to some minimal communication requirements. Those that don’t can be wrapped by tools that do, though it’s not always easy to snapshot the application and then start it up again when it’s wrapped in this manner. There is a trade off here between writing new code and modifying existing code to fit into the cloud.

    Anyway, nice to find your blog (via NPR). I’ll check back from time to time to see what you uncover in the security area.

  9. I have a different take on the broader definition of cloud computing entirely. First, many of us that have been blogging about this topic for a while have concluded that cloud computing involves a variety of services that can be gotten from the “cloud”, not just base level virtualized hardware (computing, storage, etc.). So, salesforce.com is a form of cloud computing (SaaS - Software as a Service), Google AppEngine is a form of cloud computing (PaaS - Platform as a Service) and Amazon EC2/S3 is a form of cloud computing (HaaS - Hardware as a Service, or Capacity-On-Demand).

    To me, this definition is much simpler than one tied to grid or utility computing. Grid is a form of infrastructure that may or may not be deployed in the cloud (or, more realistically, *a* cloud). Utility computing is a business model, in which computing services are billed much like other utilities on an as used basis. Both of these concepts may or may not be used in a cloud, as I see it.

    I have a slightly outdated version of my view of cloud computing (which I need to update soon) at http://blog.jamesurquhart.com/2008/03/ah-yes-how-to-define-cloud-computing.html

    Let me join the chorus of folks that welcome this blog topic, however. I see this as the biggest reason why large enterprises today should choose to build their own internal “clouds” first, while the security story sorts itself out a bit. See http://blog.jamesurquhart.com/2007/11/beating-utility-computing-lockdown-part_25.html

  10. @James Urquhart: Thanks for the comment. Believe it or not, my view of what Cloud Computing “is” is very similar to yours - check my ‘about’ page - I think you’ll see more similarities than differences. The “Cloud Computing Defined” post was a stab at looking at what other people thought it should be defined as. I’ve got a lot from reading John’s ESM blog and felt his definition was interesting as it tried to tap a bit more into the implementation aspects rather than the ’set of technologies’ that I’d been looking at it.

    I will definitely check out your blog and appreciate you stopping by.

    Thanks for your welcome, Craig

  11. @Michael:

    Would love to hear more on the grid your building. Feel free to email me (craig.balding@gmail.com).

    Good observation around the limits of the electric company analogy - I’ll make mental note to emphasis that in future.

    To your questions:
    1. Virtual Machine Image - as in, today you can have an Amazon Machine Image (AMI) that encapsulates the OS and application
    2. Virtualization to me in this context is referring to emulating the hardware of a computer in the same way that VMware does. There will need to be ways to convert VMs from one type to another (some tools already exist today)
    3. Flexible migration: for me it would mean being able to migrate my compute instance from one provider to another. However, to be fair, its not my definition - credit to this is from John over at the ESM blog (worth a read): http://www.johnmwillis.com/ibm/what-is-a-cloud/

    Thanks for taking the time to comment.

  12. @Kent: coming to this comment a bit late - apologies. Excellent post - I will read it again to make sure I’ve understood it all :-). Thanks for this.

Leave a Reply

You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>