Mycroft mentioned some of the tools built on the platform, but from a development standpoint the way I look at it, cloud computing is a suite of development tools built around making scaling an application out the primary optimization.
That's why many of the cloud platforms have things like NOSQL databases and are web based. Relational databases with strong transactional support are notoriously difficult to distribute so there are many different new models of data storage each of which optimizes a different aspect of the whole scale out problem. There are also different constraints on code management and optimization when it is designed to run as efficiently on one system or one thousand. There are also tools that run horribly on anything under 10 systems but awesome on large clusters.
To further muddy things, Amazon, google and microsoft are selling cloud services based on their particular platforms. But if you have a bunch of systems lying around you can set up your own cloud stack. Some of the systems management for the large installations are mind boggling, with setups of cargo containers full of hardware. They leave the container plugged in and wait for a percentage of the systems to fail in the container and just send the whole thing back to the factory to be rebuilt.
It's a server/client relationship where you are the client, and:
1. You don't own the server or anything installed on it.
2. You have no control over changes to applications installed on the server.
3. The server might be a zillion miles away, and could be routed through a zillion miles of inferior wire or severe bottlenecks at any given time, giving you all the performance of a 386.
4. You can be disconnected from the server and/or services at a moment's notice, for any reason (network problems, billing problems, caffeinated keyboard at the server site problems, the-guy-you-complained-to-on-the-phone-doesn't-like-you problems, etc.) (And don't forget the ubiquitous "computer error" problems.)
5. Your work is accessible to a bunch of people who probably couldn't get jobs as developers, or who barely know what a computer is -- and their secretaries.
6. Anyone with a packet sniffer knows exactly where to put it to access your work, as well as the work of everyone else who uses the same server.
7. Most of your processing power is spent on maintaining contact with the server, up and downloading all manner of unnecessary files, background-installing whatever the server owner decides he wants installed on your local machine, and running background processes for licensing agents, update agents, and secret agents (And that's if you only use a word-processor. If you want spreadsheets as well...)
8. You pay and pay and pay for the above privileges, because the server owners obviously deserve money for nothing.
I wanna be a eunuchs developer! Pass me a bread knife!
Hey, I do enjoy reading your description of cloud computing!
Does anybody remmember the grand idea of "Network Computer"? At that time it was said
that a PC should have all its OS and SW on the network, and it needs neither OS no HD
as network will prvide everything. Pleanty of noise and talks were made about it, with
greatest expections from many. And the result? Total bullshit + nonsense. After a couple
of years, we are all still using PC WITH a OS, and with one or multiple HD.
The present claims about Clouding seems to be repeating that rediculous story. Where
is the common sense? Fortunately no everybody has been carried away by the nonsense!
I have found that the only people excited about Cloud computing is the people trying to sell it (MS, Amazon, etc) and executives / high level managers that are (A) too cheap to buy the necessary hardware themselves, and (B) too dull to understand cloud's limitations. Great examples of the lack of understanding at the executive level: My former CTO drew a network diagram on my desk that had our WAN Routers connecting to the "Cloud" when he truly meant internet / IP connections. This was at a mid-size company making financial software. Now my new CIO is too cheap to buy a single server and is dooming my project to failure by placing it on a Cloud. I say dooming because the network speed, security, and placement of my requested server is extremely important and the Cloud won't provide this.
On a side note, has anyone noticed the Azure commercials from Microsoft that are marketing to the general public? A housewife using the "Cloud" to edit her family photo's. How is the "Cloud" service relevant in this situation, isn't her PC running Windows 7 enough?
I'm an independant developer, and a very bad admin, that is just not my job.
I don't want to spend time and money, buying and installing my own server.
I don't want to spend money on a classic hosted server, because I'm not sure how much resources I need, and I don't want to administrate the things.
I don't want call these stupid guys when the server goes down for whatever reason.
So I just host my app on the cloud. Cheaper, easier, less admin stuff, that's great.
... and you loose control over all the data. I still cannot understand why so many companies want to store vital data outside of their server rooms just because they cannot hire the right boys to guard them. Every single file you are not able to control can compromise your business one day. Remember, there are dozens of organizations which could be interested in all that stuff. It is simply a bad habit to be too promiscous with all the information one can have in his life.
But yes, as all people use gmail and google docs, nobody seems to care for that anymore. The fact that it worked until today is a good argument that it will work in the future, isn´t it?