Saturday, October 23, 2010

Is cloud the next big thing?

Cloud: Let me start with two simple stories.

Story 1:

Kumar is a student and he wants to write an article for his college magazine. Unlike olden days the publishers now accepts data in many formats like PDF/DOC/DOCX etc, Kumar ought to collect information on his topic and use word processing software. The most popular word processing application is Microsoft word. Kumar needs to purchase MS-Office package and install it in a computer. The other alternative is to use open source software like OPENOFFICE. Even then Kumar should have a computer to install and run. For writing the article Kumar

1. Purchases a computer with enough memory and computing power

2. Purchases Office utility programs (or use free utility programs)

3. Installs the software

While using the word processing utility Kumar is not comfortable with some aspects of it. Yet he finishes his article and he takes a back up of his file for future references. After some time the Utility provider finds some bugs(that was making Kumar uncomfortable) in the application and releases a patch. Kumar learns about this patch and installs it immediately. After some more time the Utility provider comes up with next version of the utility with all the bugs in the previous version fixed and with little more additional features. Kumar sees the entire community purchasing the new version of the utility and so he buys the new version to stay updated. This new version requires more memory and more computational power. So Kumar upgrades the memory and processor in his computer. Kumar writes articles happily ever after.

Hang on this is not the end of the story. A new version is going to hit the market soon and Kumar is expected to upgrade his software and hardware again. This is a vicious cycle.

Story 2:

Kumar is a student and he wants to write an article for his college magazine. Unlike olden days the publishers now accept data in many formats like PDF/DOC/DOCX etc, Kumar ought to collect information on his topic and use word processing software. Kumar uses Google Docs.

Kumar writes articles happily ever after.

Yes, the software is free online. The article is stored in the Google’s server. The software application need not be installed. Google handles your data availability with regular back up programs. Google upgrades its software as and when required. All Kumar needs is a console with a web browser.

At this point I would like to mention this: I am NOT paid by Google for this article.

What is cloud computing?

It is an IT services delivery model where resources are consumed and accessed over a network. We can save lots of money by avoiding the CapEX (capital expenditure) on hardware, software and services when we pay for the provider only for what we use. This is an evolutionary model where applications, software platforms and infrastructure are provided and consumed as on demand utility services accessed over a network.

There are three delivery models in cloud computing.

Software as a service(Saas) - a model whereby a provider licenses an application to customers for use as a service on demand. Saas software vendors may host their application on web servers or download the application to the consumer device, disabling it after use, or after the on-demand contract expires.

In the initial days the enterprise installs the software and maintains a team to maintain the software. They nowadays open an account on servers owned and operated by the software service providing companies. Subscribers use and pay for the time used or monthly subscription. Almost any software can be offered as a service. Based on a multi-tenanted architecture where the provider runs a single big instance of the software used by all the customers. In this case the service provider can easily push an upgrade/bug fixes to all the customers instantly saving time. The customers can modify and customize the software individually.

Infrastructure as a service(Iaas) – a model where the provider delivers computer infrastructure as a service. Rather than purchasing servers, software, data center space or network equipment, clients instead buy those resources as a fully outsourced device.

You host a site which allows users to buy your products online (exchange of data takes place). Initially the number of users is less which your server can manage. But when the popularity of your website increases the number of users increase proportionally. The demand for the website grows and suddenly you identify that your system could not handle the huge throughput. In order to satisfy all your customers you buy lots and lots of servers which costs lot of money and lot of resources. You need to pay for these services to keep your website up and running. You keep paying for the maintenance of the servers always even when you are not using it. During festival season/year end the system reaches its peak load due to a spike in increase in customers. In order to satiate this request you again increase your infrastructure to support peak loads during holiday seasons. The solution for this is CLOUD COMPUTING. You just need to put your website in a cloud server similar to your dedicated server. As the number of users grow you can increase the computing power instantly. As and when you need it you can scale up or scale down the computing power instantly from the cloud. The billing is very similar to gas or power. You pay for your use. You save a lot of money. Cloud computing lets you to focus on our business/website and not on your infrastructure.

Advantages

1.Scalability - The computing power can be scaled up or down.

2.Instant - Whenever you need you can get it.

3.Save money - Need to buy and maintain servers for 'what if' scenarios.

Platform as a service(Paas) – is delivery of computer platform and solution stack(put another way, a cloud based workspace) as a service without buying and managing underlying layers(hardware, software etc..). It can come in various flavors such as application development platforms, business application platforms and special application platforms.

Some of the benefits of cloud computing are:

  • Predictable Capital expenditure and Minimal operational expenditure
  • Efficient utilization of resources
  • Scale as you grow, Pay as you go model
  • Flexibility, Mobility and Anywhere IT
  • Reduced Total Cost of Ownership
  • Shorter Time to Market
  • Business focused IT

Some of the challenges faced are:

  • Security – This is the era of ID thefts. How can we trust these vendors?
  • Standards and Products are still maturing – This concept is still new.
  • New and complex skills and roles have to be created and managed – Man power needs to be trained for these new skills.
  • Evolving Architecture – As said earlier, the concept is still new.