I keep hearing about Cloud technology, although mostly in social networking development, etc. I heard about it today again, and now I'm very curious: what is the 'Cloud' and how does it relate to me (in my case, I guess) as a Web Developer? How do I answer the question I keep getting asked—"is it on the cloud?"—without saying "What you are asking is meaningless?"
|
|
The "Cloud" is a buzzword. It has no definition that doesn't include the word "Cloud" Here is how Dell describes their Cloud:
Oh, so the cloud is IT as a service. Right. I thought the Geek Squad was IT as a service? So, is the cloud the Geek Squad, or is the Geek Squad the cloud? And if the Geek Squad starts offering Cloud services, will a universe ending singularity result? There is no hell hot or deep enough for marketing people. Basically its the logical progression of clusters, virtualization, and faster internet connections. Companies can specialize in providing storage and processing power, and you can host your application in their cluster, and access it over the internet. And, using virtualization, it can exist in an arbitrary environment unrelated to the actual physical hardware it's running on. Very cool. The ability to host an application on third party equipment that can be transparently scaled is very powerful. You can create a web presence without having to over-commit on hardware. The specific hardware implementation doesn't matter to developers, so that's nice as well. The reason they call it the "cloud" is because in traditional network diagrams, the internet, the rest of the world, the WAN, the networking and hardware that is beyond the scope of the immediate diagram, is always represented as a cloud.
The very nature of the cloud as unknown country has persisted to the present day, and is at the root of why no one can satisfactorily describe what the cloud is. The whole point is that you don't know what it is. You don't need to. You just know that you can give your app to Amazon, or IBM, or any other "Cloud" provider, and they'll host it, and bill you based on usage. |
|||||||||||||||||||
|
|
When you hear the term "cloud", it is really a (poor) abstract term that runs the gamut from:
The term "cloud" itself is a really poor description of those three things. In general when people refer to "cloud computing" what they are getting at is the paradigm shift where you have specialized providers where you relinquish control of some (or all) of the non-functional concerns of your software as opposed to both hosting, writing, and managing everything yourself. |
|||
|
|
|
Long before "The Cloud" was a buzzword, people drawing network diagrams would draw all the clients, servers, routers, and switches under their direct control, and the connections between them, but traditionally just draw a cloud for parts of the network they don't control. For some examples do a google image search for PSTN (public switched telephone network). The cloud represents a nebulous thing our wires go into and out of. We don't have to understand how it works because other people take care of that. We just trust the packets to come back out in the right place on the other side. Usually the internet is drawn as a cloud, because once your packets hit your ISP, you trust that it knows how to get them to the right place and don't care what specific routers it travels through. "Cloud computing" in a nutshell refers to services that are hosted inside the cloud on your home or business's network diagram, i.e. the internet. The hardware isn't under your direct control, you just send your data "into the cloud" and trust your vendor to process and store it so it's available for you when you need to pull it back out. The buzz word meaning of it also implies that the things now being handled "in the cloud" were traditionally the domain of a local computer. You might traditionally have had a backup server, but switched to a service like carbonite that does your backups "in the cloud." You previously used MS office on your local desktop, but now use google docs, etc. As a web developer what it means to you is that customers are often looking for ways to replace services traditionally handled by desktop computers with web applications. Being able to replace and not merely supplement desktop software may give you a competitive edge. |
|||
|
|
|
A lot of people have admirably explained what cloud is, So I will try to address what cloud can bring to you (a web developer) in addition to unicorns and golden rainbows: (with shameless plugs to our technology)
There are a lot more at http://aws.amazon.com/. Check it out! Obviously, this is all from AMZN, Others like Google have competitive offerings as well. |
|||
|
|
|
The problem is "Cloud" is a somewhat ambiguous meaning (in scope). The minimum most people think when they hear "Cloud" is virtualized infrastructure and it's benefits:
By the way you don't always get everything in the list, and even if you do it may not be 100%. You can Google for what happened to "AWS US East Outage" for a real world example. People will also sometimes add on other services as part of "Cloud" like Database, Logging, and any other service which kind of straddles the space between "infrastructure" and "application". Some people also use "Cloud" as a synonym for "virtual". Sometimes people also use it to mean "Software and Platform As a Service". |
|||
|
|
|
Cloud is just another word for the internet. It is becoming more buzz now as the internet matures enough for organisations to rely upon it for important software services, so we keep hearing about things like SAAS. |
|||
|
|
