Thursday, November 3, 2011

The Cloud Concept

In the modern world of the Internet and the World Wide Web, there are thousands upon thousands of computers sitting in data centers, scattered around the world. We use those computers constantly—for chatting with other people, sending email, playing games, and reading and writing blogs. When we’re doing one of these everyday activities, we’re accessing a program running on a server, using our browser as a client.

But where is the program actually running? Where is the data? Where are the servers? They’re somewhere out there, somewhere in some data center, somewhere in the world. You don’t know where, and more importantly, you don’t care; there’s absolutely no reason for you to care. What matters to you is that you can get to the program and the datavwhenever you need to.

Let’s look at a simple example. A few years ago, I started writing a blog.v(The blog has since moved, but it’s still a good example.) When I gotvstarted, I used Google’s Blogger service to write it. Every day, I wouldvopen up my web browser, go to http://goodmath.blogspot.com/admin, andvstart writing. When I finished, I’d click on the Post button, and the blogvpost would appear to all of my readers. From my point of view, it justvworked. All I needed was my web browser and the URL, and I could write my blog.

Behind the scenes, Blogger is a complex piece of software run by Google in one of its data centers. It hosts hundreds of thousands of blogs, and those blogs are read by millions of users every day. When you look at it this way, it’s obvious that the software behind Blogger is running on lots of computers. How many? We don’t know. In fact, it’s probably not even a fixed number—when not many people are accessing it, it doesn’t need to be running on as many machines; when more people start using it, it needs more machines. The number of machines running it varies. But from the user’s point of view—whether that user is a blog author or a blog reader—none of that matters. Blogger is a service, and it works. When I want to write a post, I can go to Blogger and write it, and when people go to my blog’s web page, they can read it.

That’s the fundamental idea of the cloud: programs and data are on a computer somewhere out there, and you neither know nor care where that computer is.

Why call this collection of resources a cloud? A cloud is a huge collection of tiny droplets of water. Some of those droplets fall on my yard, providing the trees and the lawn with water; some run off into the reservoir from which my drinking water comes. And the clouds themselves grow from evaporated water, which comes from all over the place. All I want is enough water in my yard to keep the plants alive and enough in the reservoir so that I have something to drink. I don’t care which cloud brings the rain; it’s all the same to me. I don’t care where on earth that water came from. It’s all just water—the particular drops are pretty much exactly the same, and I can’t tell the difference. As long as I get enough, I’m happy.

So think about the various data centers around the world where companies have swarms of computers—as clouds. Lots of the biggest players in network computing, including Google, Amazon, Microsoft, IBM, and Yahoo, all have thousands of machines connected to networks running all sorts of software. Each of those centers is a cloud, and each processor, each disk drive, is a droplet of water in that cloud. In the cloud world, when you write a program, you don’t know what computer it’s going to run on. You don’t know where the disks that store the data are, and you don’t need to care. You just need to know how many droplets you need.

Source of Information : Pragmatic - Code in the Cloud Programming Google App Engine 2011

No comments: