Sunday, October 9, 2011

Cloud Computing

Today, the condition of the economy is such that, almost every organization wants to cut down the cost and increase the profit. For Non IT Organizations like banks and insurance companies one area to focus to cut down the cost is IT. Of course they understand the significant of IT in automating their business functions. But that’s not their primary business and they would definitely prefer to focus on their core business goals rather than on IT or Software Development.

Furthermore they are also realizing that maintaining an in house IT infrastructure along with the Software is an expensive affaire. Hardware has its own cost which is repetitive. As soon as en employee joins in, you have to get a new machine. Software, be it custom or third party, add to the cost. Maintaining them is also a headache. And then it’s not only about cost. It’s about time also. Every time an employee joins in, you have to look for a new machine with the S/W installation.

What you would want is making these services available to your employees quickly and cost effectively. Solution?

Look to the cloud...

Instead of getting a powerful machine and installing a suite of software on it, you'd buy a basic machine with a simple application on it. That application would allow employees to log into a Web-based service which hosts all the resources needed by the employees.

The service provides all the software needed by the employee.
This is called as cloud computing and it is gaining more and more popularity because of the lower cost and quick provisioning.

Let’s try to understand the basic concept of Cloud and Cloud Computing further. So you know what, I have been doing a lot of googling trying to find the real definition of cloud after an year of study I derived the best definition of the cloud which I would like to share with you.

“Cloud is the cloudiest term which is used by anybody in any way.”

Almost everybody on the earth seems to have a different understanding of the cloud. So then finally I thought of understanding the meaning of all the definitions and deriving my own. I will put that in a moment. At the moment let’s understand some basic concepts.

Let’s begin with a cluster. You know a cluster which is normally a small group of computers connected with LAN. You deploy your web applications across this cluster typically to get performance and availability as there is no single point of failure. So this is what generally you yourself form at your premises.

Then there comes a grid which in simple terms is a bigger cluster. It involves many interconnected computers which are loosely coupled and geographically dispersed. Here the network connecting them can be Internet also.Typically you use a grid for complex jobs processing like Satellite signals. If we talk about web hosting then maybe you deploy a portal for thousands of users on a grid. If you have big amount of money you can form a grid for your need else what is also possible is that there is a grid available for public and typically you rent it or a part of it.

When computing resources like grid or grid with some required pre-installed software are made available to public like a metered utility, it is called as utility computing.

Now some of you might be getting furious at me thinking what is cloud computing then. So cloud computing is a little more. It use Grid as infrastructure and provides computing over it as a utility also. What differentiates it from Grid Commuting and Utility computing is On-Demand, Automated Provisioning of the Computing Resources over a Network as an Abstract Service. So I define Cloud Computing as:

“On-Demand, Automated Provisioning of the Computing Resources over a Network as an Abstract Service.”

Let’s try to understand this definition word by word.

By computing resources I mean Hardware and software both.

By On-Demand, Automated Provisioning over a Network as an Abstract Service I mean you ask for these resources and you get them in real time and there is an automated system which makes this provisioning possible. Moreover all the resources are provisioned as a web based service over a network, typically Internet and the service is very abstract which means you never know how this service has been provided. You don’t know what’s happening inside the infrastructure to make it possible. The internal details are always hidden.
So for ex when you get any resource you don’t need to worry about its maintenance or management. You also don’t know the physical location of the resources.

“The Grid used for cloud computing is called as cloud.”

Clouds typically follow pay-per-use model or pay-as-you-go model which means you pay for all what you use. This is interesting. As I mentioned Cloud Computing is provisioning resources On-Demand so when you want a resource, just grab it, use it and then release it. Pay for the usage. "So you use you pay, if you don’t use you don’t pay opposed to grids where even if you don’t use you pay.

Clouds are considered to be primarily of two types:

Public clouds
These are available for all, organizations s and individual users.

Private clouds
These are used within the organizations and the organization’s IT people manage them.

Hybrid Clouds & Cloud bursting
Cloud Bursting is an application deployment model in which an application uses both, public and private cloud. Normally the application runs in a private cloud or data centre but when the demand for computing capacity spikes, it bursts into the public cloud. The cloud formed by the combination of the private and a public cloud is called as hybrid cloud.The advantage of such a hybrid cloud deployment is that an organization only pays for extra compute resources when they are needed.