The cloud, in its modern form, is relatively new to me. I've been doing some research and exploration in this space and "trying on" a few of the offerings in Windows Azure and gained some insight into AWS. Here are a few of the things I learned along the way - some of the luster and myth of cloud platforms appear to be either marketing fluff or misunderstandings. Following is my take on it. I'll be stating what I found to be benefits, costs, and myths.
IAAS and PAAS benefits
environment setup - this is extremely simplified, especially when you need something that is readily available as a pre-packaged vm. Otherwise, you still need to set up your own vm and manage it like any other vm environment. From a PAAS perspective, the infrastructure is generally ready to go. Developers targeting PAAS need to build the software in a way that can take advantage of the scalability in PAAS. There may be some learning curve, bit overall not much.
scalability - this is the big sell, IMO. If the app is built in a way that can scale nicely (see Reactive Manifesto and dig further for more details), then the cloud and particularly PAAS truly has value!
built in management and monitoring - there are some great tools built into the platforms for monitoring applications running on them. Although, it seems to me that you get what you get, perhaps it is possible to develop your own custom tools to extend the dashboard - haven't dug in yet.
cost - this is the big sell to the business from a financial standpoint. Arguably a bigger sell than scalability. Not much to say other than pay for what you use. You may have to manage your scaling actively to really benefit though, depending on a number of factors that you can probably sort out so I won't dive in just now.
IAAS and PAAS drawbacks
less customization - PAAS especially.
relies on public space - availability, security. A recent conversation with a colleague mentioned shared drives and data and privacy rights of clients. The bottom line was, what if the FED has to confiscate the disks for some other tenant and your clients' data is on there? Good point. Hybrid solutions may be the answer there, but then you're really considering added complexity of data management.
maturity - knowledge, resources, help. This is becoming less of an issue as cloud technologies mature, but still worth consideration - else this blog post would have no value and I wouldn't be doing it besides.
configuration and management - it's not a simple as some would have you believe. This seems to be the main myth from the technical standpoint.
patches and breaking changes - so, if patches are automatically applied in PAAS and we don't have control of when and how. Breaking changes automatically break my apps. Is this a real problem or am I making this up?
cost - cost savings may not be guaranteed. Cost of hardware is always on the decline. Reduced staff may not be as simple as claimed due to management of cloud resources concerns. Usage may be less than optimized by poorly written code, or poorly managed cloud resources.
So, the story I've told is that the cloud is great what it does. That cloud vendors boast about who is using it does not support any specific need to use it. Cost savings and ease of use depends on your own parameters. The decision, like any major decision, should be based on understanding and analysis of costs and benefits for your own organization. It is important to understand the marketing so that it does not misinform the decision to go to the cloud, particularly if you already have infrastructure in place. If you are a developer or technical person, use the cloud in any way you can because that is the way to be truly informed - through experience.