Question: 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](http://en.wikipedia.org/w/index.php?title=Cloud_computing&oldid=459932705)) 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?

Answer: 
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.
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.