Someone extremely nontechnical asked me to explain the cloud the other day. Pretty much anything you say sounds like the Internet or a shared mainframe. And while those explanations may not be too far off, I eventually came up with the analogy of a cargo ship loaded with containers, all packed the same way on the ship regardless of the content.
As long as you put your cargo into a container (or on EC2, an AMI) the ship (or system) doesn't really care what's inside provided it's not illegal or a risk to the rest of the cargos.
This got me thinking about whether Amazon.com's white-box cloud is the first step or the complete cloud evolution all in one fell swoop.
Let's assume that the issues around security, backups, etc., will all be solved. What EC2 provides is the ability to do basically anything as long as you adhere to the Amazon APIs and terms of service.
There are certain aspects, such as automatic scaling, that require configuration and coding, but presumably Amazon will get there sooner rather than later.
I also wonder about testing and production environments with the lack of cloud portability. With the exception of the very early Eucalyptus open-source project, there is no way that you can run a replicated environment outside of Amazon.
You're not so much locked-in as you are just plain stuck.
I'm trying to figure out why you would choose an EC2 add-on path beyond the convenience factor. And specifically I'm looking at why enterprises would charge providers an additional fee on top of the EC2 charges.
For example, 3Tera has a nice UI for designing application stacks and Rightscale offers MySQL management. But are those features or do they solve actual problems? I think it's a bit of both but could use some other input.