Tuesday, October 14, 2008

Cloud Computing

Cloud Computing is a computing paradigm in which tasks are assigned to a combination of connections, software and services accessed over a network. This network of servers and connections is collectively known as "the cloud." Computing at the scale of the cloud allows users to access supercomputer-level power. Using a thin client or other access point, like an iPhone, BlackBerry or laptop, users can reach into the cloud for resources as they need them. For this reason, cloud computing has also been described as "on demand computing"

Cloud Computing is a general concept that incorporates software as a service (SaaS), Web 2.0 and other recent, well-known technology trends, in which the common theme is reliance on the Internet for satisfying the computing needs of the users. For example,Google Apps provides common business applications online that are accessed from a web browser, while the software and data are stored on the servers. Also Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. It is designed to make web-scale computing easier for developers.

Lets delve into a better understanding of what actually Cloud Computing means, I believe that people always get a better understanding of a particular topic by comparing or thinking along the same lines with the similar concepts they know, so lets first talk about the differences between Cloud Computing and lets say Grid Computing.

Many a times people get confuse that Cloud Computing is just a new "buzzword" that vendors are putting forth and its same as grid computing. But actually the whole concept of cloud computing is far from same as the grid computing, yes both talk about the resources on the network and job scheduling but the main difference that is to be taken into account is that on the grid users can put few but large allocation requests. For example, a lab may have a 1000 node cluster and users make allocations for all 1000, or 500, or 200, etc. So only a few of these allocations can be serviced at a time and others need to be scheduled for when resources are released. This results in sophisticated batch job scheduling algorithms of parallel computations.

Whereas Cloud Computing really is about lots of small allocation requests. The Amazon EC2 accounts are limited to 20 servers each by default and lots and lots of users allocate up to 20 servers out of the pool of many thousands of servers at Amazon. The allocations are real-time and in fact there is no provision for queuing allocations until someone else releases resources. This is a completely different resource allocation paradigm, a completely different usage pattern, and all this results in completely different method of using compute resources and if you fail to provide resources when they are needed, the whole paradigm falls apart and users will start hoarding servers, allocating for peak usage instead of current usage, and so forth.

Again there is a perception among people that Cloud Computing is same as SaaS (software as a service), yes SaaS is great first step towards Cloud Computing, but it also has an important drawback i.e. control , what exactly control means is that since we are using services as software, all the data will be stored on the service provider system. This generally is not a problem with user like us who user Google docs for storing almost any kind of data but at a enterprise level its a huge risk , what if the service provider tampers with the data, what if he locks the data. All these issues are taken care with cloud computing, the data and the application sits on the server that is controlled not by the vendor (Cloud Infrastructure Provider ) but by the user so there are no restrictions on moving data into or off the Cloud Infrastructure. Enterprises can view cloud infrastructures as their data centers



References
1.http://www.ibm.com/developerworks/blogs/page/woolf?entry=intro_to_cloud_computing
2.http://en.wikipedia.org/wiki/Cloud_computing

3.http://searchsoa.techtarget.com/sDefinition/0,,sid26_gci1287881,00.html
4.http://blog.rightscale.com/2008/07/07/cloud-computing-vs-grid-computing/





















No comments: