There are thousands of docu¬ments which explain what Cloud Computing is, and it is such a vast topic that understanding it in great detail requires a lot of effort. But for those IT Managers and CIOs.
I who don't have that much of time to invest for learning, we can ex¬plain it in a nutshell as 'a cluster of Virtualization Servers.' The easiest way of understand¬ing cloud is by understanding why is a cloud required in the first place. The emergence of cloud corn'Peting has'l'tappehed in data centers because of the inherent drawback in virtualization infrastructure. There's a need for true on the fly, on-demand scalability which no virtualization platform can provide today. You might disagree with me on this statement because generally virtualization is supposed to be a great enabler for on the fly resource allocation. But the point to note over here is that a Virtual machine (VM) cannot be scaled beyond the resources available on the Host machine.
In case the resource requirement of a VM increases beyond the resources available on the host machine, one needs to migrate it on another virtual machine with requisite resources. And to top it of, if the resource requirement of the VM was temporary, then there is no proactive mechanism which can throw back the VM to the old Host machine, thus saving the re-sources of the new Host machine.
And this is where Cloud Computing comes to light. It is also sometimes referred to as Eclectic Computing because it gives the ability to acquire and release re¬sources from a unified pool of hardware depending on requirement. To understand it in detail, let's imagine a scenario where you need to build a web server which will receive 1000 hits per day for 25 days in a month and 1,00,000 hits for the other five days.
Now if you want to get this server, you have to make sure that the server can take the maximum possible load. So if you want to host this server elsewhere, you have to sign an service level agreement (SLA) for 1,00,000 hits per day, whereas your actual average requirement is far lesser than this. So you end up paying for some¬thing which you don't actually need.
Even if you want to run this can take the load of 1,00,000 hits per day and not the one which can only take a load of 1000 hits per day, which would be a waste of money. Just imagine a scenario where each and every server in your data center is connected via a singlemiddleware which converts it into a huge pool of unified resources in terms of processors and RAM, etc and you run your servers as virtual machines on top of it. And depending upon load at a given point of time, VMs can just acquire the available resources in the pool (to a certain defined max limit), use it and release it when the job is done.
That's what Elastic Computing is all about. And let's say the complete cloud is utilized to its max, then all you have to do is to plug in one or more new free servers depending on the resource requirement and it will automatically add up to the pool of existing resources. So, with this thought, we are going to deploy our own Cloud Computing Infrastructure and run some VMs on top of it. We will be using Amazon's EC2 client for connecting and using the Cloud we create. In other words, we can even say that we are going to build an EC2 compatiJ1Je cloud.