25 December 2008

Cloud Computing - Redefining Internet (Part 1)

Cloud, often used synonymously for network is getting a traction. Cloud computing is a buzz word today and the technology is quite progressing in terms of deployment and communities are getting together to build technology and also suitable business model around cloud computing. Few days back, I happen to visit a youtube video quite accidentally and started to dig about cloud computing. In the next series of posts, I am planning to log my understanding about cloud computing from different perspectives - technology, bottlenecks, examples, related technologies, enterprise cloud, infrastructure and business model. Though my knowledge on cloud computing is very limited and experience is no more than just few days. However, I would like to post my understanding both from a layman's and software engineer perspective. If you want to explore further, kindly go through links and materials given in references section.
Cloud refers to network. It is a convention to represent network as cloud. Cloud Computing is a technology which enables the delivery of computing resources over Internet. Before discussing further on Cloud computing, let us quickly see few examples.

Example 1: Google Docs
How does Google Docs work? I am honest to say, "I do not know". Google provides software over Internet to its customers and the users of the software are not required to bother about how it works, where the files are stored, who manages it, what format it is stored. Also, you don't need install a piece of software in your laptop. It works across world and also in Moon. You can read your documents whereever you have internet. Isn't it?

Example 2: Web Hosting
Let us assume that you are hosting a website. In order to host a website, you need web server, storage (hard disk and databases), IP address, Domain name. You go to a web hosting provider and buy a package that fits your purse. The web hosting provider just gives a web user interface to manage your account such as host files/services. For you and your users it is still a website. However, your hosting provider may choose to run the servers/software on totally different physical systems but yet he is able to give you the flexibility of running in a single system. You are happy with your provider and so is he.

Example 3: Online bookstore
Assume that you are starting up a company like Amazon and you want an infrastructure to run your business. And you also know that building your own infrastructure is going to cost you more. You feel that you want to customize your business based on demographics which requires quite a churn in the infrastructure. You need to spend big bucks for IT infrastructure.

In the case of first example, you can see a lot of flexibility to the users in providing software as service. The users prefer software being provided as service. The first example need to necessarily be "Cloud Computing". It is just software that is being given to you over network. If you look at the example 2, you can call it "Cloud Computing" if you have all hardware/software being provided by Web hosting provider. In the third example, you want an infrastruture as service or computing as service. When you go for "Cloud Computing", your computing happens on Internet and the benefit for you is "Peace of Mind". If your core strengths are online publishing or running a bookstore, you can just do it. You don't need to have a big IT force. The "Cloud Computing" folks will take care of building networks, equipping your network with devices, install servers and software with accepted service level agreements.

So, in short, "Cloud Computing" is delivering computing over Internet/network without needing to know about anything about resources.