Skip to main content

What is Cloud Computing ?

What is Cloud Computing ?
You are probably using cloud computing right now, even if you don’t realise it. If you use an online service to send email, edit documents, watch movies or TV, listen to music, play games or store pictures and other files, it is likely that cloud computing is making it all possible behind the scenes. The first cloud computing services are barely a decade old, but already a variety of organisations—from tiny startups to global corporations, government agencies to non-profits—are embracing the technology for all sorts of reasons. Here are a few of the things you can do with the cloud:
  • Create new apps and services
  • Store, back up and recover data
  • Host websites and blogs
  • Stream audio and video
  • Deliver software on demand
  • Analyse data for patterns and make predictions

 What is the cloud? How is it different from desktop computing or old-fashioned client-server computing? And most importantly, why should you, as a software developer, care about the cloud? When should you use it, and what should you use it for?
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 data whenever you need to.

When I am writing this blog using the Google's blogger Service, I would open up my browser , go to akasofttechnologies.blogspot.com and start writing my blog. But 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.

If you are a user to the cloud, you buy access to the cloud services from a cloud service provider, buy access to an application you want and then , connect it from anywhere.
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.

Cloud versus Client-Server 
In many ways, the basic style of development for cloud-based software is similar to programming for client-server computing. Both are based on the idea that you don’t really run programs on your own computer. Your computer provides a window into an application, but it doesn’t run the application itself. Instead of running the program on your computer, all you do on your own computer is run some kind of user interface. The real program is running somewhere else on a computer called a server. You use the server because, for whatever reason, the resources necessary to run the program aren’t available on your local computer: it’s cheaper, faster, or more convenient to run the program somewhere else where the necessary resources are easy to obtain.
The big difference between cloud and client-server development is in what you know: in traditional client-server systems, you might have a specific computer that is your server, and that’s where your stuff is running. The computer may not be sitting on your desk in front of you, but you know where it is. 
In the cloud, you aren’t confined to a specific server. You have computing resources—that is, someone is renting you a certain amount of computation on some collection of computers somewhere. You don’t know where they are; you don’t know what kind of computers they are. You could have two massive machines with 32 processors each and 64 gigabytes of memory; or they could be 64 dinky little single-processor machines with 2 gigabytes of memory. The computers where you run your program could have great big disks of their own, or they could be diskless machines accessing storage on dedicated storage servers. To you, as a user of the cloud, that doesn’t matter. You’ve got the resources you pay for, and where they are makes no difference as long as you get what you need.


Comments