I'm a new addition to this list, so I may have missed some of the
discussion, but I don't feel that things are as clear as I would like
them. I'm eager for them to get clearer and for some of the
definitions to become standards, de facto or not.
> One thing that seems to be confusing a lot of different people are
> some of the definitions regarding cloud computing, specifically
> regarding the difference between, cloud, grid, rapid provisioning, and
> cloud storage.
Yes. I took a stab at it here:
http://neotactics.com/blog/technology/short-sighted-about-cloud-computing
In looking at a number of the responses, I'm less inclined to 'stick
to my guns' on some of my stance in that posting. I think I could be
swayed, but I have a couple of major concerns.
The first is that using SaaS as the model for cloud services doesn't
really make sense. The end-user is a non-technical user and the
'Software' in SaaS is generally a vertical app. Just about any
product offering on the Internet is a 'service' by definition. I
don't know that throwing 'aaS' on the end clarifies or confuses. aaS
in relation to software makes sense because historically software is
sold as a shrink wrapped package. So, juxtaposing Software with
Service makes a lot of sense. But some other places I think it just
confuses.
Second, the 'computing' part of 'cloud computing' bugs me as it
implies computation/cpu cycles. I've seen folks try to carve out
servers on-demand as 'cloud processing', but that's not any clearer.
'Cloud computing is being hijacked, a lot like the term 'hacker' was
back in the day. It may be that 'cloud computing' is already too
embedded into the mainstream, but I still feel that 'cloud services'
makes more sense as the general umbrella with 'cloud computing' being
servers on-demand.
> I would define Cloud Computing as the overarching concept of all of
> the outsourced,rapid provisioning,pay-per-use services that exist
> today - Ideally with a low barrier to entry and the ability to
> automate your environment.
I like Cloud Services better, but I can live with Cloud Computing if
this is the generally accepted terminology. I think an important
notion is that they are 'self-service'.
> Grid Computing seems to be services that are extremely granular or
> 'lightweight clouds'. Pay per usage on a per request model, rather
> than an hourly model. Eg: AppEngine
I think Grid Computing is already pretty much defined, isn't it?
Grids are HPC clusters for homogeneous massively parallel problems,
right? I see grid technology as something that powers clouds and
cloud services, not as a 'lightweight cloud'.
> Rapid Provisioning would be services that are more 'heavyweight'. Pay
> per usage on a time model, with the real benefit being getting your
> service online quickly, and being able to turn it off when possible.
> Eg: EC2.
This is the first time I have heard this term.
> Many providers fall in between these or combine each of their
> elements. Do we attempt to define this scale, or simply keep
> everything abstracted as a 'cloud'?
I'm still stuck on drawing a line in the sand saying that 'cloud'
services are small point services designed for developers to consume.
Witness Google I/O, AWS marketing efforts, CloudCamp, Force.com, etc.
It's all targeted at developers. The attempts to re-define SaaS as
cloud or otherwise jump on the cloud bandwagon are just confusing to
most folks.
Thanks,
--Randy
Randy Bias, chief tactician, neoTactics, Inc.
(877) NEO-TKTX, ran...@neotactics.com
Liked this one:
http://www.joyeur.com/2008/05/08/cloud-nine-specification-for-a-cloud-co
mputer-a-call-to-action
Hated this one:
http://direct2dell.com/cloudcomputing/archive/2008/04/10/cloud-computing
-model.aspx
I called it the 'Spinal Tap Model for Cloud Computing' It's got twelve
layers and vertical slices too.
More here if you're interested... http://blog.snaplogic.org/?p=189
CM
I think one of the problems here is that some cloud-based web services, particularly very scalable ones, such as databases are essentially defined by their limitations in material ways. Any standard that could be consistently and properly supported across most services may necessarily be so constrained that you lose most of your functionality or so broad that no one can reasonably implement the spec for fundamental architectural reasons. Finding a balance that people are happy with will be difficult, and at this stage in the game I think many types of services (like cloud database services) are so limited that it might be premature to define standards derived from the current weak implementations if the market is moving quickly -- you may lock out better ways.
Of course, standardization of interfaces does not imply practical portability, though it helps. There are plenty of examples where architectures behind the standard interface vary sufficiently that you end up writing for a specific architecture through the standard interface. (See: portability of SQL-based apps across databases that use different concurrency control models.) On the other hand, a lot of services should be effectively standardizable and it should be encouraged, but I think for some core services this will be harder than it sounds. Transparency of switching between cloud providers may be hard to come by even if the interfaces are the same.
Cheers,
Andrew
I don't think clouds came about because of REST or BitTorrent. I think
clouds are just a logical extension of computing, in general. From stand
alone, single application systems (aka DOS/360) to time sharing
(Whirlwind, etc) to cluster, grids and now the amorphic idea of generic
"clouds". Remember with Sun it was the network was the computer? Isn't
that a cloud?
Chuck Wegrzyn
Very interesting topic and many thanks for the inspiring discussion.
If you have not seen Ian Foster's blog on this topic, it definitely worth looking.
http://ianfoster.typepad.com/blog/2008/01/theres-grid-in.html
He was my guest in Feb. and this topic came up during his discussion with one of my students and he gave us some of his insights.
Generally, my understanding so far is that grid is "free" and encourages the use of "open standards", but cloud is for commercial purposes and approaches are mostly proprietary. They share several common challenges and problems.
I can be totally wrong and would be happy to learn more. Let me know if you think differently.
I am still catching up with all the discussion during the past few days that I have join this group.
Best,
Masoud
------------------------------------------------------------------
Masoud Sadjadi, PhD
Assistant Professor
School of Computing and Information Sciences
Florida International University
University Park, ECS 212C
11200 SW 8th St., Miami, FL 33199
Email: sad...@cs.fiu.edu
Web: www.cs.fiu.edu/~sadjadi
Tel: 305-348-1835
Fax: 305-348-2336
------------------------------------------------------------------
As software transitions from a traditional desktop deployment model to
that of the a network & data centric one, "the cloud" will be the key
way in which you develop, deploy and manage applications in this new
computing paradigm.
Reuven
www.elasticvapor.com
--
--
Reuven Cohen
Founder & Chief Technologist, Enomaly Inc.
www.enomaly.com :: 416 848 6036 x 1
skype: ruv.net // aol: ruv6
blog > www.elasticvapor.com
-
Get Linked in> http://linkedin.com/pub/0/b72/7b4
Thanks Reuven. I like this tack. It's interesting to think about
cloud services as 'internet centric software'. I don't really think I
agree that it's software, but maybe it's an 'internet centric software
*process*'?
> As software transitions from a traditional desktop deployment model to
> that of the a network & data centric one, "the cloud" will be the key
> way in which you develop, deploy and manage applications in this new
> computing paradigm.
Absolutely, although I feel like there is too much emphasis on 'scale'
in the general community. I'm just as guilty as everyone else on this
historically, I just see a lot more use cases with my current clients
than 'scalability' and I think the 'scale' discussion masks a lot of
other very interesting uses.
More here.
http://neotactics.com/blog/technology/cloud-values/
Best,
--Randy
http://neotactics.com/blog
reuven
--
I think the emphasis on 'scale' is largely because we've already invested a lot in that aspect of the cloud and are starting to become good at it, in part because that was one of the major problems cloud-like technologies were invented to solve. But I very much agree that over the long term much of the value of the cloud will come from elsewhere as other aspects are more fully developed.
For me, I see the seamless and secure integration of data, service, apps, components, and analytics through market mechanisms inside and across the clouds as long term value of the cloud ecosystem, which has relatively little to do with 'scale' when you get down to it. Clouds will fundamentally change the basic architecture of the Internet, given time and development, and what we see at these nascent stages reflect their history and genesis rather than their direction.
Andrew
In theory yes, and even in practice for many types of cloud services. However, for some types of performance/efficiency sensitive applications the result may vary by integer factors depending on whether or not the application is designed for that specific implementation even if using the standard interfaces. Even with standard interfaces, internal architectural design decisions will be reflected in the compute cloud behavior while running applications.
Conventional databases are a common example of this. The interface may be standard SQL, but how you write your queries and design your system will adversely impact performance depending on the internals of the database engine selected. The fast design on one database may be an order of magnitude slower on another, not due to intrinsic differences in performance capability but simply implementation tradeoffs, and app designers will internalize the tradeoffs implicit in the implementation even though they access it using standard interfaces.
In short, sometimes implementation matters regardless of interface standardization, other times it does not.
Andrew
Reuven, I don't agree. Cloud computing is useful for much more than
scale. For example, I have a client who is leveraging EC2 for QA &
testing. They need 100 servers for 24 hours a few times a month.
This is a purely elastic use case. They don't grow the servers to a
demand curve. Instead, they periodically bring up the 100 servers
they need, run the task to completion, gather the results, and shut
them down.
I am aware of many use cases like this. The Internet Archive has a
similar situation, using 300+ servers every few months to crunch a
large data set then turning them off. This is an extremely compelling
set of use cases that is largely a greenfield. It's also impractical
or impossible using VPS or dedicated hosting.
My interpretation is that you are using scale in the broadest sense
possible, but I think that waters the meaning down too much. The very
first sentence on Scalability in Wikipedia is exactly my meaning (http://en.wikipedia.org/wiki/Scalability
):
"In telecommunications and software engineering, scalability
is a desirable property of a system, a network, or a process,
which indicates its ability to either handle growing amounts
of work in a graceful manner, or to be readily enlarged."
There are more use cases for clouds than just the ability to grow to
meet a given workload. My example of a static no growth application
that is simply turned on for 24 hours for the purposes of testing
shows this. The customer in question has estimated they will save
hundreds of thousands of dollars over a few years in OpEx and CapEx.
As I mentioned in the blog posting, there are a number of use cases
that are not directly related to scalability. They are also not
necessarily specific to cloud technology. For example, the cost
savings are related to the utility charge model, not clouds
themselves. It just so happens that most current clouds use the
utility charge model; however, there is no guarantee it will stay this
way in the future.
In the case of speed, it's a question of getting a server provisioned
and running *now* so you can complete a project in the short term
rather than waiting for corporate IT to complete a request. Signing a
contract for a VPS or dedicated server is largely undesirable in these
cases and likely to result in a delay.
Reach, the final use case, has yet to be seen as clouds are largely a
U.S. phenomena, but I am aware of quite a few folks outside the U.S.
using EC2 as a platform for delivering services to U.S.-based
customers. The most obvious example being Morph (http://www.mor.ph/),
who provide a management layer on top of EC2, but are based in the
Philippines. As more clouds appear globally, the mobility of
infrastructure will not only become important, but critical to
competing effectively.
IMO, the most important feature of clouds are the on-demand and rental
nature, not enabling a particular application to scale.
Thanks,
ruv
--
From my experience in discussions with people from the grid community
it does not lead anywhere to discuss about the definition of the cloud
(as they will always tell you that it is only a relabeling of Ian
Fosters original definition of grid computing).
"Scalability being *resilience* of the software to the increasing
number of CPUs" (c) not mine.
Sassa