After seeing the Azure cloud hosting in action for Be A Martian (launched at PDC) I thought it would be an interesting experiment to take a small project that I was currently hosting on a traditional virtual server and see how easy it was to deploy to the cloud and what the results were.
Rather than detail the steps here I’d recommend you have a look at this great tutorial that outlines exactly what you need to do to get from File | New to opening the site in IE and seeing it run in the cloud.
While it’s not as easy as taking your existing .Net files and just uploading them to a server (and the SQL Azure process is a little complex compared to a normal SQL at the moment) but once you’ve gone through the process once I suspect, like a lot of things, it’s less challenging.
From a very quick play with the three main players I think Google’s App Engine is an interesting place to play but with fairly restricted language and database choices you do need to be comfortable with their offering to dive in and although it’s been around for a while I don’t know of any large projects deployed for real with it.
Amazon’s AWS has been around for a while and offers familiar environments to both .Net and open source developers and there are many real world examples of sites using EC2 and S3 to help them scale. While more flexible in environment than App Engine the Windows and SQL Server options offered in EC2 are pretty outdated at the moment.
Azure is very much the new kid on the block and is certainly still a little rougher around the edges than the others (for instance some of the database functionality doesn’t work with the current RTM SQL Server Manager tools, and there is no option for automatic scaling, you have to manually request new instances – which while great for managing costs isn’t so good for dealing with unexpected spikes). It’s certainly aimed more squarely at the professional developer rather than a hobbyist but it’s also very flexible – supporting both Visual Studio (as you’d expect) and Eclipse for development, and languages such as PHP and Java in addition to the .Net staples.
I suspect that whichever flavor you end up trying (and I’d recommend trying all three to get a feel for the options available and what features you might need to make your project shine) a lot of websites from simple blogs to enterprise critical projects are going to end up running as virtual instances in a robust, scalable and distributable environment.