QUOTE (kmhussain @ Feb 8 2010, 05:53 PM)

If possible can you please give me a brief description on cloud concept used by eucalyptus, azure and app engine.. ???
*IMHO* (and a very high level view of those systems):
1) Virtual Machine vs. Runtime Environment
Eucalyptus is sort of a hypervisor for virtual machines like the v-sphere of VMware. You basically upload a complete virtual (linux)environment aka virtual machine (not sure if windows is possible!) to the cloud environment and the cloud allocates the hardware for the complete virtual machine. If one real hardware system should fail, your virtual machine can run on another system.
Azure and app engine give you a run-time environment for a "program" / "application". If your application needs to scale depending on the number of requests per time unit, additional instances can be generated (or removed). With app engine you get the power of Google: many load balancers and servers, which also can optimize their load based on the origin of the request. I am not sure how good Azure is at this.
2) Pros and Cons... sort of...
With the virtual machine environment you can do whatever you want (within the limits "allocated"/"bought". eg. memory, virtual hard disk space, CPUs, process load), especially there is not limit to the programming language or servers you use in your environment. I have seen VMware's vSphere in action: we dragged a virtual machine from one host to the other while it was running and you almost couldn't "see" a performance hit while it was moved (the virtual system was up and running during this move)... very amazing.
Azure and app engine limits and controls the resources you get through their runtime, so you don't see a complete "computer" like in the virtual machine setting and you are limited by the languages you can use for programming (Azure: all .Net languages / App Engine: Python and Java & more to come... maybe). Also the run-time/library you are allowed to use is more limited compared to "normal programming". This is because you're not allowed to directly access files or databases... there are other special features to compensate those restrictions.
So the main difference between Azure and app engine is the languages and development environment you use. Azure is Microsoft. Well, maybe some day the Mono people will have more "access" to this technology, but the whole ecosystem of Microsoft tools is "optimized" for Azure: .Net, Visual Studio, Expression (I don't count in the VS Express products). Google on the other hand is very "open": the languages, the editors, the SDK, everything is free and the SDK supports Windows, Linux and Mac OS X.
3) All have in common, that one can control the environment at various levels. Not only control, but also to turn every CPU cycle, every storage access, etc into numbers, which in turn can not only produce nice charts...
I think this should give a very very very basic idea of those technologies... also I may be wrong on some details.