Sunday, November 7, 2010

Cloud Computing – Overview


The latest buzz word in IT world is ‘cloud computing’ and it’s been hailed as the paradigm shift for the industry. Before I elaborate further about cloud computing, let me clarify for those who aren’t familiar with IT industry, ‘cloud computing’ hasn’t got to do anything with either ‘clouds’ or a new form of ‘computing’. As you know, IT folks have a habit of adding fancy words to their computer vocabulary, apparently ‘cloud computing’ happens to be the latest. The word ‘cloud’ is being used here to refer ‘internet’ and the term ‘cloud computing’ means ‘computing services delivered via internet’.

‘Cloud computing’ is neither a new invention nor something unknown to IT industry. Ever since internet came into existence, it has existed; it’s just that we know it with other names. Yahoo Mail & Messenger, Hotmail, Gmail, Facebook, etc. are all examples of cloud computing. In fact, every internet application can be considered as an example of ‘cloud computing’. You might ask, then, why is it being considered as the next big thing? The answer has to do with something called ‘marketing’. In recent times, most of the software giants have realized that, small companies (both IT and non-IT) are unable to afford and maintain IT infrastructure for their online applications. This is due to increasing costs of reliable software, maintenance and administration costs along with additional costs such as space, electricity and high speed LAN connection. Note, here IT infrastructure refers to the datacenter, not to be confused with physical client computers.

As a solution to this crisis, several software giants such as Microsoft, Amazon, Google, VMWare, IBM, etc. have proposed the idea of renting IT infrastructure to companies on pay per use basis. However, unlike traditional renting of physical assets, IT infrastructure renting is slightly different. Here, companies don’t pay for the IT infrastructure per se; they pay for the processing capabilities of IT infrastructure. Here’s how it works. Company engages a service provider to host their web based application. Depending on the request, service provider allocates servers (computational resources) to the subscriber in the data center, while taking the entire responsibility of maintaining servers with latest software, data security and energy needs. Also, the subscriber is provided with the flexibility to reduce or increase the servers on the fly. Depending on the usage of the servers, subscribers pay to the service providers.

clip_image002For example, Microsoft’s cloud computing model is referred as ‘Microsoft Azure’. Azure allows companies to host their applications on Microsoft datacenters on pay-per-use basis. A company subscribing to Azure need not own IT infrastructure to host their application, all it needs to do is… specify Microsoft about their IT infrastructure needs and Microsoft would be providing the same. The responsibility of maintaining the IT infrastructure, software upgrades, reliability, security and legal compliance of servers rests with Microsoft. This gives a good deal to subscribing companies, as they just have to take care about their application rather than all their IT infrastructure needs. Similar models have been proposed by Amazon, Google, VMware and IBM.

If you still don’t understand the model, let me give you another example. Let’s say, you along with your friends want to play Cricket. Logistically, you would need a cricket kit and a cricket ground. Of course, you can purchase a cricket kit as it is affordable but what about a cricket ground? Would you purchase a land, hire a curator and create a cricket pitch or just rent a slot in a nearby cricket ground? Unless you have lot of money, purchasing a land, hiring a curator, and creating a cricket pitch for playing cricket doesn’t make sense. It’s just common sense to rent a cricket ground for playing cricket and pay for the time-duration you use. Similarly, for a company (IT and non-IT) to host its applications over internet, it’s just common sense to take IT infrastructure on rent for hosting their applications and pay for the processing capabilities they want.

If you look at the cloud computing scenario, you might question, why isn’t this option available right from the beginning? It makes no sense for non-IT companies, who want to host web based applications to purchase and maintain IT infrastructure. Why wasn’t this idea of renting IT infrastructure thought earlier? The answer to all these questions has to do with ‘dependence’. Just like, playing cricket on rented ground makes the game dependent on the pitch conditions, hosting their applications on the rented datacenters make the companies dependent on service providers. Each service provider of cloud computing model will have its own limitations and the subscribers have to comply with those limitations. Another reason that I see has played an important role in delaying the entry of cloud services in the industry is ‘data security’. What if the sensitive information stored on IT infrastructure owned by service provider gets compromised? Does the service provider give the guarantee of data security? These questions often play a major role in deciding on whether a company has to subscribe for cloud computing services or not.

In the end, I want to say, cloud computing (or whatever other name we used to refer it) is here to stay and there is nothing too special about it. If implemented properly, it will be beneficial to everyone.

No comments: