what advantages does cloud hosting have over dedicated server hosting?
There is no answer to that in the abstract; or the general answer to that is at least too long to type up here. You need to start with a picture of which architecture you desire and which load you forecast, and then evaluate the hosting architecture on that basis. Just for a beginning, which programming language you're using matters a great deal, and you didn't say.
To give you a partial answer, in short form:
- Understand the CAP theorem. Cloud hosting usually offers storage APIs that lean to the A-P side of CAP, such as Amazon SimpleDB and S3.
- Cloud hosting implies that scaling out will not be a problem, i.e. you can spool up 100 new servers without prior warning, and you will get them.
- Cloud hosting should have some network-centric and monitoring-centric addons that make managing a fleet of servers easier, fx HTTP load balancing, monitoring, auto-scaling.
Please note that:
- If you're just using a few servers, then cloud computing isn't really that different from traditional VPS hosting.
- If you use those highly scalable storage APIs (like SimpleDB), then you do of course gain a platform to handle lots of growth. On the flip side, you're also strongly locked in by the cloud computing vendor.
I need a reliable service above all else
That IMHO points to either:
- A fully managed VPS or dedicated server provider like Rackspace, Engine Yard, Joyent and others.
- A 'full-stack' cloud computing provider like Google App Engine or Windows Azure (as opposed to Amazon EC2, which requires you to manage the operating system, backups, security patching etc yourself).
Either of the above would be good starting points -- but again, it comes down to the specifics of your architecture, and your growth expectations.