Friday, 5 August 2011

Cloud-An Introduction

It was just last week that one of friends, who is studying mechanical engineering, asked me a question- “Hey what is this cloud computing and why everyone is talking about this these days?”. Without going into many details I simply told him that cloud is nothing but big servers where you can store your large amounts of data. His next question, which made me laugh all the day through- “Hey in that case, what will happen to our data if the sun continuously shines and cloud does not appear at all!”

Hmm…So I dedicate this blog post to this friend of mine. In this article, I introduce you to the 3 types of cloud- Infrastructure as a service (IAAS), Software as a service (SAAS) and Platform as a service (PAAS) by providing some of their features, their examples from real world and their key advantages/ disadvantages.

Consider a road from Delhi to Mumbai. Our ultimate goal is to transfer goods/ people/ animals from Delhi to Mumbai using this road. This road alone is analogous to IAAS. Now, consider a truck which runs from Delhi to Mumbai on this road. This road along with the truck is analogous to PAAS. And now, consider the same truck carrying people from Delhi to Mumbai, running on this road. This road along with the truck carrying people from Delhi to Mumbai is analogous to SAAS.

To speak technically, if one uses Infrastructure as a service model, he rents out some space on the servers of large organizations which have huge datacenters consisting of thousands of servers. Some of these organizations are Rackspace or Amazon.com. Coming back to our analogy of a road from Delhi to Mumbai- we simply have the infrastructure (the road). We don’t think about what we’ll put into it. IIIT-D too uses this model since we’re using our own in-house servers! IAAS is quite a traditional cloud model. The main disadvantage of this model is that every time we do some kind of modifications to our applications and data, then we need to inform the server-providers to increase/decrease our rented space. Similarly, for eg: If IIIT-D thinks of taking more students this time or creating more applications and hosting them on local servers, then there might be a need of more servers.

SAAS, or Software as a service on the other hand, are the generic software solutions provided by third-party organizations. I am sure most of us use them on a daily basis. For example: Google Apps (Google docs, Google spreadsheets etc), Microsoft Office 365, SAP ERP etc. I stated it to be analogous to a road along with a truck carrying people from Delhi to Mumbai. It provides both the infrastructure (eg: Google docs saved on Google servers) as discussed above, as well as it provides a generic application (carrying people from Delhi to Mumbai on the truck, analogous to editing/saving/sharing documents using Google docs). But, consider that I don’t want people to be carried on the truck from Delhi to Mumbai, but rather I want goods to be carried. Here comes the disadvantage of SAAS model. One cannot modify the applications provided by third-party SAAS providers.

PAAS, or Platform as a service is the most recent cloud model. Microsoft Azure, Google App Engine and Salesforce’s force.com are some of the leading PAAS providers. It allows you to manage your applications offline and then migrate to the cloud (Microsoft or Google datacenters). It is like an OS, where you manage your applications and data, without caring about installing latest versions of applications and antivirus applications. You create an account in this case, for eg with Microsoft Azure, which allows you to scale up/down your database size. These products follow pay-as-you-go model, which allows you to only pay for the computational/ data which is actually used. As I mentioned, a road along with a truck is analogous to PAAS- truck is like a platform where you can fill in people/ animals/ goods and only pay for the number you fill in. In this way, you customize/ manage your applications on your own without getting bothered about contacting Microsoft datacenters for increasing your server space size every time you modify your application. You are assured of security of your application and since Microsoft/Google’s data centers are spread across the entire world, an application on cloud being run from any part of the world gets cached onto the nearest datacenter, which gives a good end user experience by reducing latency.

If you want to see the performance of an application hosted on Windows Azure, you can visit this site- www.ndtv.com/cloud . This is a TV broadcast, which was hosted onto Microsoft Windows Azure cloud. It takes few seconds to buffer before it starts, and then it runs as if one is watching a CD/DVD playing.

I hope that this blog post gives you a basic idea of the three main types of cloud models. Atleast you know now that data and applications inside cloud are not affected by sunshineJ .

References: My notes from Microsoft Azure Cloud Computing Workshop held at IIIT-D in January, 2011.

1 comment:

  1. Beautiful post explaining a whole set of concepts with wonderful analogies. It is also timely since I also briefly talked about how SM course a few years down the line may completely change with many things moved to cloud than on our personal machines.
    This is a perfect example of how the posts on this blog should be written and has really set the right standards (though really hard to match) for the posts that should come on the blog.

    ReplyDelete