Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

The company I work at recently hosted a web service in Windows Azure and announced that. Now trade online magazines say lots of meaningless stuff like "company X moves to the cloud", "company X drops desktops for the cloud", etc.

Looks like there're lots of materials out there (starting with Wikipedia) that are very lengthy and talk a lot about "services" and "low entry price" and other stuff but I've read all that and don't see how they could be helpful for a layman in drawing a line between a service in a cloud and Stack Exchange that is also a service but is run on brick-and-mortar servers in a colocation.

Now from my experience with Windows Azure the real difference is the following. With a cloud the service owner rents hardware, network bandwidth and right to use the middleware (Windows 2008 that is used in Azure roles for example) on demand and also there's some maintenance assistance (like if the computer where a role is running crashes another computer is automatically found and the role is redeployed). Without a cloud the service owner will have to deal with all that on his own.

Will that be the right distinction?

share|improve this question

5 Answers 5

up vote 28 down vote accepted

Yes, pretty much.

With the "cloud" (as in "cloud providers"), you are renting the diskspace, bandwidth, CPU and memory owned by the provider and the means to use them from your software. They give you the infrastructure and you don't own the hardware.

There are other forms of cloud computing that don't involve these providers, where you (the organisation) owns the hardware as well.

In either regard, this mostly means that your software is running on a distributed network of computers, available on the Internet.

share|improve this answer
3  
+1 for being clear, concise, and cutting through all the hyped industry BS. –  maple_shaft Nov 10 '11 at 13:39
    
They've also provided the means to pull it all together and make it work. –  JeffO Nov 10 '11 at 13:44
2  
@ThomasOwens - come on. The context of the question is clear that the OP is asking about cloud providers, not the Internet as the "cloud". –  Oded Nov 10 '11 at 13:54
2  
@ThomasOwens you're still renting the resources, only now you're renting them from your internal IT services group rather than a 3rd party (small companies won't have the resources to host private clouds that offer any of the supposed cloud advantages, which all demand physically separated hosting centers). –  jwenting Nov 10 '11 at 14:22
3  
While other answers make some useful and meaningful points regarding cloud computing, this answer cuts straight to the practical, pragmatic heart of what people are generally talking about when they use that desperately over-loaded term, cloud computing. +1 –  Adam Crossland Nov 10 '11 at 14:38

Cloud computing says absolutely nothing about who owns the resources. Cloud computing is an architecture for developing distributed, network-based applications. There are a number of cloud computing service providers out there, such as Azure Services Platform, Amazon Web Services, Google App Engine, and a number of others. However, using someone else's service is not a prerequisite for developing a cloud computing infrastructure.

The idea behind cloud computing is that you put services and applications on networked devices. You could utilize a hosting service, which would shift maintenance and support to other entities. You could also create your own infrastructure for cloud computing. In addition, there is nothing that says that cloud computing must be public. Yes, you can put your applications and services on the public Internet (with the appropraite security for your applications), but you can also create private clouds within your organization.

In the end, with cloud computing, you don't know where or what you are accessing. You see a service or application without any knowledge of what is behind that service or application. The entire cloud is of no consequence to clients - you know that things that you can use exist, are accessible, and use them. They could be in a "server room", or you could be accessing a distributed grid of sensors and workstations. It really doesn't matter.

share|improve this answer
    
what is the difference between a private cloud and "the server room"? –  Bob Nov 10 '11 at 14:20
    
@Bob Typically, location, but that isn't a requirement for cloud computing. You might have several distributed server farms. Or you might have individual devices located around a building, city, country, globally, or in some cases extraterrestially. However, you can still create a cloud platform with a single "server room" by producing systems (applications and services) that are consumed by distribued clients via some network connection. The driving factor is that services and applications (and associated data) are available for consumption/use over a network. –  Thomas Owens Nov 10 '11 at 14:44
    
You have just stated that they are the same, (save location) and have not provided any differences. "cloud computing" does not mean the same thing "have access to a server". It's more about having access to a server which you have reduced responsibility in. –  Bob Nov 10 '11 at 14:53
    
@Bob Only the rented cloud computing services lead to reduced responsibility. I was actually part of a team that was working on developing and maintaining a private and secure cloud computing platform for the US Department of Defense and services/applications that run on this cloud. The goal was to not reduce responsibility, but to improve access to data, services, and applications. What was accomplished was breaking down information silos and producing a number of services and applications accessible to any clients with access to the cloud. –  Thomas Owens Nov 10 '11 at 15:03
2  
@Bob: A private cloud can span multiple server rooms, and can use all or only some of the machines in any given room. All the resources are aggregated and exposed as "services", so you don't know whether your app is running in your building or across campus or in another state. But you can't just go home and connect to it, you need a VPN or some other way to join the network the private cloud is on. –  TMN Nov 10 '11 at 15:41

No. Cloud computing is not merely a way to rent resources.

Cloud is all about services that:

  • are delivered over the network (possibly the Internet)
  • are fully controlled by API
  • are fully automatable and automated
  • require no human interaction for control
  • are delivered as a commodity
  • are billed like a utility: for measured usage
  • require no capital expenditure or up-front payment
  • have seemingly infinite capacity
  • permit at-will immediate allocation of arbitrarily many units of the service
  • permit at-will immediate disposal of arbitrarily many units of the service

NIST has a full definition of what a cloud service is.

share|improve this answer
    
"Billed like a utility" and "require no capital expenditure or up-front payment" only apply to services that you are purchasing from a provider, not when you are establishing a private cloud or creating a self-managed cloud infrastructure. However, I generally agree with how NIST defines cloud computing. –  Thomas Owens Nov 10 '11 at 14:13
    
@ThomasOwens, even if the organization that owns the service(s) also maintains the hardware, there's usually some form of accounting for usage. Real money doesn't have to change hands, but you do have to keep track of who is using what resources so that you know when to by more machines, what services are most popular, and so on. –  Caleb Nov 10 '11 at 15:37
    
@Caleb That would account for billing like a utility, but not "no capital expenditure or up-front payment" since the company is incurring the cost, up-front, of establishing the infrastructure. –  Thomas Owens Nov 10 '11 at 16:12
    
@ThomasOwens, That's a fair point, but OTOH if you already have cloud infrastructure there's no additional expenditure to add a new service. If you work for Amazon, say, and deploy a new service you don't have to worry about procuring servers and all that. I'm sure we agree here -- I'm just pointing out that even when an org is its own cloud provider, service owners will tend to see the cloud as a utility, something that's always there. Building a cloud is a whole other thing. –  Caleb Nov 10 '11 at 16:27
    
When an org is its own provider, the provider wing of the org incurs capital expenditures to build the cloud service. However, usage of the cloud service requires no capital expenditure. Orgs often do internal billing, where if division A wants services from division B, division A pays division B for it internally. The phrase "billed like a utility" applies to these orgs. Orgs which provide free cloud services to user divisions do not bill, so that item applies but is overridden by "services which are free"). –  yfeldblum Nov 10 '11 at 17:04

While it's hyped as something new, cloud computing really a new marketing twist on the time-sharing distributed computing model emerged in the mid-to-late 1960's. Of course, there are huge technical improvements but, when you look at it closely, it's not too much different from hooking up to a mainframe via an acoustic coupler and a teletype terminal to access applications and data. These systems were huge moneymakers back in their day but the Apple II and IBM PC put an end to it. Now, through cloud computing, this business model is seeing a renaissance.

share|improve this answer

Cloud computing begins with Renting hard disks to servers. However, it goes beyond that much more. This is not to say that there isn't any hype about it; but i am trying to define what is the key difference between being in cloud and not so!

In my office we have a set of servers, which i can access from anywhere. Does this qualify to be a cloud? NO! And so is true for many data centers as is.

The core element that forms cloud computing is of course, the hardware infrastructure (servers and disk space) used exclusively through public internet. However, what is important is how this being managed. A critical infrastructure element (though i doubt if people would disagree if you say must) is the visualization.

In, (what i think) a real cloud, all these servers are combined to become pool of resources tied together over a framework where virtual machines are created. One can create, archive and delete machines. Transfer hard disk space from one machine to another like how you mount them in real machines. These technologies allows that one can shift the data and OS of these machines to move from one physical server to another seamlessly and it comes with various redundancy options and management consoles for services.

Understand, in good old days (as well as today), one used to get personal homepages and company websites - on hosting space. This isn't quite a cloud.

Though, i agree that now-a-days anyone who got a static ip - think he has created a cloud- and indeed the word cloud has been misused to an extent that there is no real definition to it now!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.