This writeup is an attempt to throw some light on the concept of cloud computing , which is turning out to be quite a buzzword these days ..
You all remember the matrix movie .. don't you ?? lets run our imagination wild and travel with Mr Reeves for a while …
Remember that scene where Mr Reeves walks into a place swarming with security guards wearing a trench coat and those stylish glasses .. He is in a situation where he needs to get through that maze of security systems and people armed with weapons .. unfortunately his charms , intelligence or super-natural powers don't work and his only respite is to use brute force to break through .. so what next ?
He needs the tools and some powerful ones that ! Now..just as he opens his trench coat , he figures out that he wore the wrong one that day .. instead of the one which has all the guns and bombs in the movie , he finds that he only has a pair of shaving scissors in that .. bummer !! so what next ? He goes back ? he tries to run in and get shot ??? No.. not that boring…
Now, lets imagine he has a system where he can request for weapons in real time ? Say he has access to a store of weapons , the catalog of which he can view through his glasses (remember MI ? ) , order the ones he want and they immediately appear in his trench coat ..isnt that awesome ? Wont that make more sense than carrying all these heavy weapons wherever he goes ? Isn't it good that he can choose the weapons according to the enemy he is against ? .. now with that , lets leave Mr Reeves to do his job and lets get a bit more realistic with another example ..
Lets talk about a mobile company who has to generate bills for all its customers on say the 23rd of every month . The IT team of the company finds that this is getting increasingly difficult as the load on the servers during the peak 2 days of the month is 15 times the normal workload. So they put forward a proposal to increase the capacity of the infrastructure by 15 times . The proposal sails happily through the hierarchy until the CEO asks the question .. whats my RoI? Why should I spend so much money just for supporting 2 days every month ? and there, the proposal dies a natural death ..
Now, looking at the above problem , what do you think would be a realistic solution ? Would it work if I am able to hire some computing power just for 3 days and pay only for those three days ? Yes , it would !! and with that we get into the fundamentals of cloud computing …
Lets start with a couple of angles at which we can look at the whole concept..
Lets think from a user or a business point of view..Here , we talk about a set of standard services, which a user can get on demand , pay for what they use and the pricing for which is flexible depending on the usage
From a technical point of view , we see a pool of resources, which can be cut into smaller chunks and distributed across different customers, which can be managed centrally as a single resource and can be scaled according to demand .
Now, lets cut a cloud open and see whats inside ..
So , as always we find the usual suspects in there …going from bottom to top..
1) At the heart of it lies the technology which enables the whole extravaganza . There we find massive pools of storage, network and computing resources , all ready to be split and cut into chunks as desired by the admin and ready to put to service to whoever pays for it. The key feature of this pool of resources would be the seamless integration between the three boxes in the diagram , which has got its own challenges . One feature which is absolutely critical for the success of this model is , the ability to scale and scale rapidly .
2) Then we have the middleware / application stack , which basically allows us to convert the computing power at our disposal into something tangible for the user. This could be as simple as a set of tools which allows a user to tap into the raw computing capabilities of the layer below, to a complex software , which the user can access in a pay per use model.
3) Services Layer : This is how we expose the service we have at our disposal to a user. A real life analogy to this are the items in the menu at a hotel . It would essentially be the list of capabilities that we offer as a service, helping the user choose what service he wants according to his requirements.
Now, looking right from the top to bottom , a user (or a Company who are consuming these services) is completely unaware or blind to how the underlying stuff operate. He doesnt have to worry about maintaining the environment , he doesn't have to have huge IT team supporting him .. all he has to do is .. use as much of it as you want and pay the bills .. isn't that easy ?? but yes, for IT professionals like us .. its a bit worrying considering the lesser number of people required to maintain systems 😉 ..
Now, lets quickly look at three different manifestations of how this is implemented in a real business scenario ..
a) IaaS (Infrastructure as a Service ) : Its simple. A user finds out one day morning that he needs an additional PC for a day to install a new software which he cannot test in his PC . He logs onto a portal , fills in the specs of the PC he wants and bingo .. He has a PC, which he can access through a web browser or a small client , exactly matching his specifications and all this within a few minutes. Add to the convenience factor , the fact that he has to pay only for a day's usage !
A real life example : Check out the Ubuntu website and the way they have set it up for users to try out their latest OS
b) PaaS (Platform as a Service ) : Its simple too , A team of developers wants 15 PCs. all with the same configurations , with the exact set of software installed , all in the same way and at times, they would require more than the initial 15. Its basically providing a computing platform, with or without a solution stack as a Service .
c) SaaS Software as a Service : Google Docs ! (find out for yourself how it works 🙂 ) . The only difference being that you don't have to pay !!
There are further ways in which we can classify the cloud depending on how the service is provided ,viz , public, private or a hybrid cloud .. but I would reserve that for another time .. .